RELEASE STRATEJİLERİ CANARY VE BLUEGREEN

Blue-green deployment için aktif blue ortam ve bekleyen green ortam arasındaki trafik anahtarlama mantığı

Yeni sürümü tek seferde tüm trafikle mi sınamalı, yoksa kullanıcıların yalnızca %1'iyle başlayıp hata sinyallerini erken yakalamak mı daha güvenli? Bu soru pek çok ekibin deploy gecesi yaşadığı stresin tam ortasında duruyor. Canary release ve blue-green deployment, farklı maliyet ve risk profilleriyle aynı problemi çözüyor — hangisinin sistem topolojinize, trafik karakterine ve geri dönüş süresine uygun olduğunu seçmek, mühendislik kararından çok bir denge oyununa dönüşüyor.

Canary Release: Aşamalı Yayın Mantığı

Canary release, yeni sürümü önce çok küçük bir trafik diliminin (genelde %1-5) gördüğü, telemetri sağlıklı kaldıkça yüzdenin artırıldığı bir yayın yöntemidir. Adını madencilerin gaz sızıntısı için kullandığı kanaryadan alır: önce küçük bir grup risk taşır, ana kitle güvende kalır. Konuyu daha derinlemesine incelemek isteyenler için ilgili çevrimiçi kaynak faydalı bir başlangıç noktasıdır.

Bu yöntemin temelinde iki bileşen vardır: trafiği yüzdeye göre bölebilen bir yönlendirici (load balancer, service mesh veya feature flag platformu) ve hata oranı, gecikme, kaynak kullanımı sinyallerini canlı izleyen bir gözlemleme katmanı. Sinyal kırmızıya dönerse otomatik ya da manuel olarak trafik eski sürüme döndürülür.

Blue-Green Deployment: İki Paralel Ortam

Blue-green deployment, üretim trafiğini taşıyan "blue" ortamının yanında, yeni sürümün dağıtıldığı tıpatıp aynı "green" ortamını ayakta tutar. Yeni sürüm green'de smoke testlerinden geçtikten sonra yönlendirici tek hamlede tüm trafiği green'e çevirir. Blue, en az bir sürüm boyu yedek olarak bekletilir.

Canary release sırasında trafik yüzdesinin yüzde bir, yüzde beş, yüzde yirmi beş ve yüzde yüze çıkışını gösteren aşamalı şema

Bu yaklaşımda kullanıcılar ya tamamen eski ya da tamamen yeni sürümü görür; arada bir gri bölge yoktur. Geri dönüş gerektiğinde yönlendirici tekrar blue'ya çevrilir ve dakikalar içinde olay kapanır — çoğu zaman saniyeler içinde.

Risk Profili: Patlama Yarıçapı Farkı

İki yöntem arasındaki en kritik fark, bir hatanın etkilediği kullanıcı sayısıdır. Canary'de bozuk sürüm yalnızca canary dilimindeki kullanıcıları etkiler; %1 dilimde yayınlanan bir bug, üretim kitlesinin %99'una hiç dokunmaz. Blue-green'de ise switch sonrası tüm trafik aynı anda yeni sürüme bağlandığı için bir hata, geri dönüşe kadar tüm kullanıcıya dokunur.

  • Canary: Erken uyarı veren, küçük patlama yarıçaplı; ancak hatayı yakalamak için yeterli trafik ve sağlam metrik gerektirir.
  • Blue-Green: Tek anahtarda büyük geçiş; smoke testleri eksiksizse rahat, eksikse pahalı bir hata.
  • Hibrit yaklaşım: Yeni sürüm önce green'e konur, sonra green içinde canary akışı uygulanır — iki yöntemin avantajları birleşir.

Rollback Hızı ve Karmaşıklığı

Geri dönüş tarafında blue-green açık ara öndedir. Eski sürüm zaten ayakta olduğu için yönlendiriciyi blue'ya çevirmek tek bir API çağrısı kadardır. Canary'de rollback için trafik yüzdesi sıfıra düşürülür — yine hızlıdır, ama o ana kadar canary dilimine düşmüş kullanıcıların oturum, önbellek ve veritabanı yan etkileri ayrıca temizlenmelidir.

Bu nokta veritabanı şeması değiştiren sürümlerde özellikle önemlidir: blue ile green farklı şema versiyonlarına bakıyorsa, geri dönüş tek başına trafiği çevirmekle bitmez. Bu yüzden deneyimli ekipler şema değişikliklerini backward compatible biçimde, ayrı bir döngüde yayımlar.

Altyapı Maliyeti

Blue-green deployment'ın ana maliyet kalemi açıktır: iki tam üretim ortamını aynı anda ayakta tutmak gerekir. Stateless servisler için bu sadece bilişim parası demektir; veri katmanı varsa replikasyon, eşzamanlama ve test verisi başlı başına bir konu olur. Canary release, eski sürümün üstüne küçük bir yeni filo eklediği için altyapı yükü çok daha düşüktür — ama gözlemleme, trafik yönlendirme ve otomasyon yatırımı belirgin biçimde artar.

Canary ile blue-green stratejilerinin patlama yarıçapı, rollback süresi ve altyapı maliyeti açısından karşılaştırması

Hangi Senaryoda Hangisi?

Seçim sistem yapısına ve hataların geri dönüşüm hızına bağlıdır. Yüksek trafikli, mikroservis tabanlı, gözlemleme altyapısı olgun ekipler canary release ile küçük ama sık yayın ritmine geçebilir. Monolitik uygulamalar, kritik finansal işlemler veya değişimi parça parça denemeye uygun olmayan akışlar blue-green'den daha çok fayda görür.

  1. Hata oranı, gecikme ve iş metriklerini canlı izleyebiliyor musunuz? Cevap "evet" değilse canary'ye erken atlamayın.
  2. Veri katmanınız iki ortamı paralel taşıyacak şekilde tasarlandı mı? Hayırsa blue-green'in maliyeti kâğıt üstünde olduğundan büyük çıkar.
  3. Bir hata anında kullanıcı oturumlarının ne kadarını feda edebilirsiniz? Cevap "neredeyse hiç" ise canary, "geri dönüş hızı kritik" ise blue-green öne çıkar.

Modern CI/CD boru hatlarında her iki yöntem de standart araçlarla desteklenir; konuyu uçtan uca pratik olarak öğrenmek için CI/CD ve DevOps eğitimi içeriğinden yararlanabilirsiniz. Doğru seçim, doktrin olarak benimsenen bir yöntem değil — sistemin trafik karakterine, veri kararlılığına ve takımın olgunluk seviyesine göre kalibre edilen bir denge noktasıdır.