Mert Tosun
← Yazılar
Progressive Delivery: Blue-Green ve Canary Stratejileri

Progressive Delivery: Blue-Green ve Canary Stratejileri

Blog Yazarı3 dk okumaDevOps

Yayın stratejisi, yazılım kalitesinin görünmeyen ama en etkili bileşenlerinden biridir. Sık deploy yapan ekiplerde hedef sadece yeni sürümü üretime çıkarmak değil; bunu kontrollü riskle yapmak, geri dönüş yolunu açık tutmak ve kullanıcı etkisini minimumda tutmaktır. Bu noktada en çok kullanılan iki yaklaşım Blue-Green ve Canary'dir. İkisi de klasik "yerinde güncelleme" modeline göre daha güvenlidir ancak operasyonel olarak farklı ihtiyaçlara hitap eder.

Blue-Green yaklaşımında iki ayrı ama eşdeğer üretim ortamı tutulur: aktif ortam (Blue) ve yeni sürümün hazırlandığı ortam (Green). Trafik tek hamlede yeni ortama alınır; sorun olursa eski ortama dönülür. Canary yaklaşımında ise trafik kademeli artırılır; önce küçük bir kullanıcı yüzdesi yeni sürümü görür, metrikler sağlıklıysa oran büyütülür.

Doğru seçim, sadece teknik tercihe değil; gözlemlenebilirlik olgunluğu, maliyet toleransı, ekip refleksi ve sistemin risk profilinə bağlıdır.

Blue-Green'in güçlü yönleri

Blue-Green modelinin en belirgin avantajı hızlı rollback kabiliyetidir. Trafiği eski ortama almak çoğu durumda dakikalar içinde mümkün olur. Ayrıca çevre ayrımı net olduğundan incident anında hangi sürümün problem çıkardığını izlemek daha kolaydır.

Avantajlar:

  • Trafik anahtarıyla çok hızlı geri dönüş.
  • Eski/yeni ortam sınırlarının netliği.
  • Canlıya yakın doğrulama senaryolarının kolay test edilmesi.
  • Operasyonel iletişimde sade bir model.

Sınırlamalar:

  • İki tam ortam maliyeti nedeniyle altyapı yükü.
  • Veritabanı şema uyumluluğu iyi yönetilmezse geçiş riski.
  • Trafik tek seferde değiştiği için ısınma problemi oluşabilmesi.

Blue-Green, özellikle rollback hızının kritik olduğu servislerde güçlü bir seçenektir.

Canary'nin güçlü yönleri

Canary modeli, riski tek adımda almak yerine kontrollü parçalar halinde alır. Örneğin %1 trafikle başlanır, hata oranı ve latency sağlıklıysa %5, %20, %50 ve %100'e geçilir. Bu yaklaşım yüksek frekanslı release yapan ekiplerde gerçek kullanıcı davranışıyla doğrulama imkanı verir.

Avantajlar:

  • İlk aşamada çok düşük blast radius.
  • Tam geçişten önce gerçek üretim sinyali elde edilmesi.
  • Bölge, tenant veya kullanıcı segmentine göre kademeli rollout.
  • SLO ve error budget yaklaşımıyla yüksek uyumluluk.

Sınırlamalar:

  • Güçlü observability ve otomatik koruma mekanizması gerektirir.
  • Rollback süreci Blue-Green kadar tek hamlede olmayabilir.
  • Sıkı kapı koşullarında release süresi uzayabilir.

Canary, hızlı iterasyon yapan ürün ekiplerinde güvenli hız sağlamak için çok etkilidir.

Veri ve şema geçişleri

Yayın kazalarının önemli bölümü binary değişiminden değil, veri sözleşmesi kırılmasından kaynaklanır. Bu nedenle hangi strateji seçilirse seçilsin backward-compatible migration prensibi uygulanmalıdır:

  1. Önce ekleyici (additive) şema değişikliği.
  2. Hem eski hem yeni şemayı okuyabilen kod yayını.
  3. Backfill ve doğrulama.
  4. Yeni yazma yoluna geçiş.
  5. Eski alanların sonraki sürümde temizlenmesi.

Bu sıra, hem Blue-Green ortamları arasında hem de Canary kohortları arasında uyumluluğu korur.

Otomasyon ve güvenlik kapıları

Progressive delivery kişisel reflekslere değil, ölçülebilir politikalara dayanmalıdır. Rollout kapıları net tanımlanmalıdır:

  • Hata oranı eşiği
  • P95/P99 latency sınırı
  • Kaynak doygunluğu ve kuyruk gecikmesi
  • İş metriklerinde anomali kontrolü

Bu eşikler aşıldığında otomatik pause veya rollback tetiklenmelidir. İnsan onayı kritik aşamalarda kalabilir; ancak temel güvenlik mekanizması gece vardiyasında tek kişinin dikkatine bağlı olmamalıdır.

Hangi durumda hangisi?

Blue-Green tercih edin:

  • Deterministik ve çok hızlı rollback gerekiyorsa
  • Paralel ortam maliyeti karşılanabiliyorsa
  • Geçişin net bir "switch" ile yönetilmesi isteniyorsa

Canary tercih edin:

  • Günde çok sayıda yayın yapılıyorsa
  • Güçlü metrik, tracing ve alert altyapısı varsa
  • Riski kademeli artırmak isteniyorsa

Olgun ekipler çoğu zaman hibrit yaklaşım kullanır: büyük platform geçişlerinde Blue-Green, günlük servis sürümlerinde Canary. Asıl farkı yaratan, seçilen stratejiden çok onun disiplinli uygulanmasıdır.

Progressive delivery, deploy işlemini bir "butona basma" etkinliğinden çıkarıp kontrollü bir risk yönetimi pratiğine dönüştürür. Bu kültür yerleştiğinde hem teslim hızı artar hem de üretim güvenilirliği sürdürülebilir hale gelir.