Ana içeriğe geç

Yan yana

Blue-Green DeploymentvsCanary Deployment

Blue-green ile canary dağıtım arasındaki fark nedir?

Güncellendi 2 dk okuma7 fark

Kısaca

Blue-green iki tam ortam çalıştırır ve tüm trafiği bir anda yenisine geçirir; canary ise trafiğin önce küçük bir kısmını yeni sürüme yollar, sonra artırır.

Blue-Green Deployment

Blue-green deployment, iki özdeş canlı ortam kullanan ve tüm trafiği eski sürümden yeni sürüme tek seferde geçiren bir yayın stratejisidir.

Blue-Green Deployment sayfasını oku

Canary Deployment

Canary deployment, yeni bir yazılım sürümünü önce kullanıcıların küçük bir bölümüne sunar, sağlığını kontrol eder ve ardından kademeli olarak herkese yayar.

Canary Deployment sayfasını oku

Blue-Green Deployment ve Canary Deployment karşılaştırması

ÖzellikBlue-Green DeploymentCanary Deployment
Trafik geçişiBlue'dan green'e bir andaKademeli olarak; örneğin %1, %10, %50, sonra %100
Ortamlarİki tam canlı ortamYeni sürümün birkaç örneğinin bulunduğu tek ortam
Geri almaAnında: trafik blue'ya geri çevrilirHızlı: canary'nin payı eski sürüme geri yönlendirilir
Etki alanıBir sorun gözden kaçarsa tüm kullanıcılarYalnızca canary'deki küçük kullanıcı payı
Ek kapasiteSürüm sırasında iki katına kadarYalnızca birkaç ek örnek
İzleme ihtiyacıGeçişten önce testler ve sağlık denetimleriCanary'yi eski sürümle karşılaştıran canlı metrikler
Dağıtım hızıGreen hazır olduktan sonra çok hızlıDaha yavaş; dakikalara, saatlere ya da günlere yayılır

Fark, açıklamalı

Blue-green dağıtımda iki özdeş canlı ortam tutarsınız. Blue kullanıcılara hizmet verirken green yeni sürümü alır ve test edilir; sonra bir yönlendirici ya da yük dengeleyici tüm trafiği green'e geçirir ve blue beklemede kalır. Canary dağıtımda ise yeni sürüm eskisiyle yan yana çalışır ve gerçek trafiğin %1 ya da %5 gibi küçük bir dilimini alır; metrikleri izlerken bu dilim adım adım büyür.

Fark, riskin nasıl yönetildiğidir. Blue-green riski hızlı, ya hep ya hiç bir geçişle ve aynı hızda bir geri almayla sınırlar; ama tüm kullanıcılar yeni sürüme aynı anda ulaşır. Canary riski maruziyeti sınırlayarak azaltır: hata oranları ya da gecikme yükselirse yalnızca küçük bir grup etkilenir ve dağıtım herkese ulaşmadan durur.

Birleştirilebilirler; örneğin bir green ortama dağıtım yapıp trafiği ona bir canary gibi kademeli kaydırarak. İkisi de aynı temellere dayanır: otomatik dağıtımlar, sağlık denetimleri, iyi izleme ve trafiği hassas biçimde yönlendirebilen bir yük dengeleyici ya da servis ağı (service mesh). İkisi de eski ve yeni sürümle aynı anda çalışan veritabanı değişiklikleri gerektirir.

Sık yapılan bir yanlış, blue-green'in maliyetinizi her zaman ikiye katladığı düşüncesidir. Boştaki ortam küçültülebilir ya da özellikle konteynerler ve bulut altyapısıyla yalnızca bir sürüm sırasında oluşturulabilir. Bir diğeri, canary sürümlerin A/B testleriyle aynı şey olduğu düşüncesidir: canary bir sürümün güvenli olup olmadığını denetler, A/B testi ise kullanıcıların hangi varyantı tercih ettiğini ölçer.

Hangisini kullanmalısınız?

Blue-Green Deployment şu durumlarda doğru seçim:

  • Basit, anlık bir geçiş ve anlık bir geri alma istiyorsunuz.
  • Herhangi bir kullanıcı görmeden önce yeni ortamın tamamını test etmeniz gerekiyor.
  • Trafiğiniz, küçük bir yüzdenin sorunları ortaya çıkarması için çok düşük.

Canary Deployment şu durumlarda doğru seçim:

  • Sürüm herkese ulaşmadan önce gerçek kullanıcı trafiğiyle doğrulanmasını istiyorsunuz.
  • Hata oranlarını kendiliğinden karşılaştırabilen güçlü bir izlemeniz var.
  • Kötü bir sürümün mümkün olduğunca az kullanıcıyı etkilemesini istiyorsunuz.
  • İkinci bir tam ortam çalıştırmak çok pahalı.

Sık sorulan sorular

Canary dağıtım, blue-green'den daha mı iyi?

Genel olarak hiçbiri diğerinden iyi değildir. Canary daha ince denetim ve daha küçük bir etki alanı sunar; blue-green ise daha basittir ve tek adımda geçer veya geri alır.

Blue-green dağıtımlarda veritabanı nasıl ele alınır?

Genellikle iki sürüm de tek bir veritabanını paylaşır, bu yüzden şema değişiklikleri geriye dönük uyumlu olmalıdır. Örneğin önce yeni bir sütun eklersiniz ve eskisini yalnızca sürüm tamamlandıktan sonra kaldırırsınız.

Neden canary dağıtım deniyor?

Ad, maden işçilerinin bir zamanlar zehirli gazı tespit etmek için yanlarında taşıdığı kanaryalardan gelir: küçük bir kullanıcı grubu, sürüm herkese ulaşmadan önce bir erken uyarı işlevi görür.

Daha fazla

Ayarlar