6 puan yazan GN⁺ 2025-03-12 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 625 Terraform workspace ve 38 AWS hesabı üzerinde 165.000'den fazla bulut kaynağı yönetiliyor
    • 170 mühendisin 40'ı altyapı uzmanı
    • Her gün 225 altyapı sürümü (terraform apply) ve 723 plan (terraform plan) çalıştırılıyor
  • Bunun için Terraform Cloud devreye alınarak altyapı sürüm süreci otomatikleştirildi ve geliştiricilerin manuel işleri ile hataları azaltıldı

Terraform Cloud devreye alınmadan önceki sorunlar

  • Yüksek AWS erişim yetkisi gereksinimi: Altyapı ekibinin yüksek seviyede AWS erişim yetkisine sahip olması gerekiyordu
  • Zaman alıcı işler: Her dizinde terraform apply çalıştırmak, inceleme ve onayı tekrar tekrar yapmak gerekiyordu; tek bir değişiklik 120'den fazla workspace'i etkileyebiliyordu
  • Infrastructure drift oluşması: Beklenmeyen değişiklikler birikiyor, uygulama sırasında ek inceleme ve müdahale gerektiriyordu

Terraform Cloud'un devreye alınması ve etkileri

  • Drift'in ortadan kaldırılması → Infrastructure drift ortadan kaldırılarak risk ve geliştirici yükü azaltıldı
  • Geliştirici zamanından tasarruf → Yıllık yaklaşık 8.000 saat geliştirici zamanı tasarrufu sağlandı (4 geliştiricinin iş yüküne eşdeğer)
  • Değişikliklerin izlenebilir olması → Denetim günlükleri sayesinde değişiklikler izlenebiliyor ve hata ayıklama kolaylaşıyor
  • Speculative plan desteği → Değişiklikler otomatik olarak test ediliyor ve sonuçlar doğrudan GitHub CI içinde görülebiliyor

Terraform Cloud'un şu anki işletim şekli

  • Self-hosted: Terraform Cloud for Business şirket içinde kuruldu ve AWS hesabı içindeki ECS kümesinde TFC agent'ları çalıştırılıyor
  • Agent pool yapısı: 120 agent, geliştirme ortamı (40) ve prodüksiyon ortamı (80) olarak bölünerek yüksek eşzamanlılık sağlanıyor

Özellikle izlenen metrikler

  1. Agent tükenmesi ve eşzamanlılık sınırı → Agent yetersiz kaldığında nöbetçi mühendise bildirim gidiyor
  2. Plan süresi → Geliştirme ortamında plan süresi 4 dakikayı aşarsa ekibe bildirim gidiyor
  3. Infrastructure drift → Şu anda ölçülmüyor (drift neredeyse hiç oluşmuyor)

Kaliteyi artırmak için yapılan optimizasyonlar

  • TFC CLI geliştirilmesi: Birden fazla workspace'teki değişikliklerin CLI üzerinden otomatik incelenip onaylanabilmesi sağlandı
  • Bildirim sistemi kurulması: Terraform apply işlemlerinin atlanmaması için Slack bildirimleriyle otomasyon kuruldu
  • Workspace'lerin otomatik yönetimi: Terraform kullanılarak 625 workspace yönetiliyor ve etiketler uygulanarak sahip ekipler ayrıştırılıyor
  • Terraform Cloud kullanım analizi: TFC API kullanılarak state version verileri toplanıyor, kaynak kullanımı ve büyüme eğilimleri izleniyor
  • Terraform State yedekleme: State dosyaları otomatik olarak S3 bucket'a yedeklenerek arıza durumunda geri yükleme mümkün hale getirildi
  • Workspace bağımlılık yönetimi: Modül bağımlılık ağacı oluşturularak workspace'lerin izlemesi gereken dizinler otomatik ayarlanıyor
  • Provider upgrade otomasyonu: Dependabot kullanılarak provider'lar aylık periyotlarla yükseltiliyor ve otomasyon sayesinde yönetim yükü azaltılıyor

Gelecekteki iyileştirmeler

  • Aşamalı rollout: main branch tabanlı sürüm modelinden çok aşamalı dağıtıma (geliştirme → staging → prodüksiyon) geçilecek
  • Büyük workspace'lerin bölünmesi: Mevcut 625 workspace'in 1500'ün üzerine çıkarılacak şekilde parçalanmasıyla plan ve apply sürelerinin kısaltılması ve değişiklik etki alanının küçültülmesi hedefleniyor
  • Bildirim özelliklerinin geliştirilmesi: Slack bildirimlerine yeniden atama özelliği eklenecek ve tfc review komutunu otomatik üretme özelliği getirilecek
  • Agent auto-scaling: EKS tabanlı bir otomatik ölçeklendirme sistemi devreye alınarak değişken iş yüklerinin verimli şekilde işlenmesi planlanıyor
  • Şirket içinde geliştirilen araçların open source yapılması: Dahili olarak geliştirilen çeşitli araçlar açık kaynak olarak yayımlanacak, böylece diğer ekipler de kullanabilecek

Henüz yorum yok.

Henüz yorum yok.