Blue-green deployment ile canary deployment arasındaki fark nedir? Rollback nasıl yapılır?

Cevap

İkisi de kesintisiz deploy ve hızlı geri dönüş için kullanılır. Blue-green'de trafik eski sürümden yenisine tek seferde geçer; canary'de ise trafik kademeli olarak (%1, %10, %50, %100) yeni sürüme kaydırılır.

Blue-green

  • İki özdeş ortam vardır: blue (şu an canlı) ve green (yeni sürüm).
  • Green'e deploy edilir, smoke testleri çalıştırılır, ardından load balancer veya DNS tüm trafiği green'e çevirir.
  • Rollback: trafiği tekrar blue'ya çevirmek, saniyeler sürer.
  • Dezavantaj: geçiş anında tüm kullanıcılar yeni sürümü görür; iki kat altyapı maliyeti.

Canary

  • Yeni sürüm küçük bir kullanıcı yüzdesine açılır, hata oranı ve latency metrikleri izlenir.
  • Metrikler iyiyse yüzde artırılır; kötüyse otomatik geri alınır (Argo Rollouts, AWS CodeDeploy, Flagger).
  • Avantaj: hata etkisi (blast radius) küçük kalır. Dezavantaj: aynı anda iki sürüm çalıştığı için API ve DB değişiklikleri geriye uyumlu olmalı; iyi metrik altyapısı gerektirir.
Blue-greenCanary
Trafik geçişiBir andaKademeli
RiskTüm kullanıcılar etkilenebilirKüçük bir grup etkilenir
RollbackAnında switchYüzdeyi sıfıra çekme
Gereksinim2 ortamTrafik bölme + metrik izleme

Full stack açısından dikkat

  • Veritabanı: her iki sürüm aynı DB'yi kullanır, bu yüzden migration'lar geriye uyumlu olmalıdır. Kolon silmek gibi kırıcı değişiklikler ayrı bir sonraki deploy'a bırakılır.
  • Frontend: eski sürümün JS dosyaları CDN'den hemen silinmemeli; açık sekmedeki kullanıcılar eski chunk'ları istemeye devam eder.
  • Feature flag'ler, kodu deploy etmekle özelliği açmayı ayırarak benzer bir güvenlik sağlar.
  1. Bulut faturası beklenenden çok yüksek geldi. Maliyeti nasıl analiz eder ve düşürürsünüz?OrtaBulut & DeployFull Stack
  2. Edge function ve edge rendering nedir? Kodu ne zaman edge'de, ne zaman tek bir bölgede (region) çalıştırırsınız?OrtaBulut & DeployFull Stack
  3. Production'daki bir full stack uygulamayı nasıl izlersiniz? Log, metrik, trace ve alarm stratejiniz nedir?OrtaBulut & DeployFull Stack
  4. Veritabanı şema değişikliklerini (migration) kesintisiz (zero-downtime) nasıl deploy edersiniz? Expand-contract nedir?ZorBulut & DeployFull Stack
  5. Serverless (ör. AWS Lambda, Vercel Functions) ile container tabanlı deploy (Cloud Run, ECS, Kubernetes) arasında nasıl seçim yaparsınız?OrtaBulut & DeployFull Stack
  6. Uygulamanıza özel bir alan adı bağlayıp HTTPS'i nasıl kurarsınız? A, CNAME kayıtları ve TTL ne işe yarar?KolayBulut & DeployFull Stack

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle