Ana içeriğe geç

Canary Deployment

Okunuşu
kıneri diploymınt
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/canary-deployment

Kısaca

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 nedir?

Canary deployment, uygulamanın yeni sürümünün mevcut sürümün yanında çalıştığı ancak gerçek trafiğin yalnızca küçük bir dilimini, örneğin kullanıcıların %5'ini aldığı bir yayın stratejisidir. Yeni sürüm iyi davranırsa payı adım adım artırılır ve sonunda tüm trafiği karşılar. Sorunlar ortaya çıkarsa trafik eski sürüme geri yönlendirilir ve yalnızca küçük bir kullanıcı grubu etkilenmiş olur.

Trafik bir yük dengeleyici, bir ingress controller ya da bir service mesh ile bölünerek çalışır. Her adımda ekipler canary'yi kararlı sürümle hata oranı, gecikme ve CPU kullanımı gibi metrikler üzerinden karşılaştırır; birçok pipeline de bu sayılara göre canary'yi otomatik olarak terfi ettirir ya da geri alır. Bu otomatik karşılaştırmaya çoğunlukla canary analizi denir.

Ad, madencilerin bir zamanlar yeraltına taşıdığı kanaryalardan gelir: kuşlar zehirli gaza insanlardan önce tepki vererek erken uyarı sağlardı. Aynı şekilde ilk küçük kullanıcı grubu da kötü bir sürüm için erken uyarı sistemi görevi görür. Canary dağıtımları, bir hatanın tüm kullanıcılara birden ulaşmasının maliyetli olacağı büyük web servislerinde ve API'lerde yaygındır.

Canary deployment sıklıkla blue-green deployment ile karıştırılır. Blue-green iki tam ortam çalıştırır ve tüm trafiği eskiden yeniye tek seferde geçirir; canary ise trafiği kademeli olarak kaydırır ve başlangıçta kullanıcı kitlesinin yalnızca bir kısmını yeni sürüme maruz bırakır. Ayrıca, kullanıcıları farklı sürümlere yönlendirmek yerine bir özelliği aynı dağıtılmış sürümün içinde gizleyen feature flag'den de farklıdır.

Önemli noktalar

  • Canary, trafiğin küçük bir yüzdesini önce yeni sürüme gönderir.
  • Metrikler izlenirken trafik adım adım artırılır.
  • Kötü bir sürüm yalnızca birkaç kullanıcıyı etkiler ve hızla geri alınabilir.
  • Otomatik canary analizi, hata oranlarını ve gecikmeyi kararlı sürümle karşılaştırır.
  • Blue-green deployment'ın aksine geçiş tek seferde değil kademelidir.

Örnek

Kubernetes Gateway API ile trafiğin %10'unu bir canary'ye göndermekyaml
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: web-app
spec:
  parentRefs:
    - name: main-gateway
  rules:
    - backendRefs:
        - name: web-app-stable
          port: 80
          weight: 90
        - name: web-app-canary
          port: 80
          weight: 10

Sık sorulan sorular

Canary ile blue-green deployment arasındaki fark nedir?

Blue-green deployment tüm trafiği eski ortamdan yeniye tek adımda geçirir; canary deployment ise trafiği küçük bir yüzdeyle başlayarak kademeli olarak taşır. Canary'ler bir hatayı kaç kullanıcının göreceğini sınırlar; blue-green ise geçişi ve geri almayı basit ve anlık hale getirir.

Bir canary trafiğin yüzde kaçını almalı?

Ekipler genellikle trafiğin %1 ile %10'u arasında başlar, ardından %25, %50 ve %100 gibi adımlarla artırır. Doğru başlangıç noktası ne kadar trafiğiniz olduğuna bağlıdır, çünkü canary'nin anlamlı metrikler üretmek için yeterli isteğe ihtiyacı vardır.

Buna neden canary deployment deniyor?

Adını, madencilerin tehlikeli gazı erken algılamak için yanlarında taşıdığı kanaryalardan alır. Yeni sürümü ilk alan küçük kullanıcı grubu, sorunlar için erken uyarı görevi görür.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar