Canary Release: özü, dağıtım stratejisi ve nasıl çalıştığı

Yazar: IT Sectr Yayınlanma: 2026-04-12 Okuma süresi: 8 dk

Canary Release, bir uygulamanın yeni bir sürümünün önce küçük bir kullanıcı alt kümesine sunulduğu ve ardından kademeli olarak tüm kitleye yayıldığı bir dağıtım stratejisidir. Bu yaklaşım, sorunların erken bir aşamada tespit edilmesini sağlayarak tüm kullanıcılar üzerindeki etkiyi en aza indirir. Google Cloud (2024)'a göre, kanarya sürümleri olay tespit süresini ortalama %60 oranında azaltır. Kanarya dağıtımı, işlevselliğin tamamen kullanılamaz olduğu kritik hizmetler için bir standart haline gelmiştir.

Önemli Noktalar

  • Canary Release — her aşamada metrik kontrolü ile yeni bir sürümün kademeli dağıtımı
  • Aşamalı kitle genişletme, toplu sürümden önce sorunların belirlenmesine yardımcı olur
  • Blue-green'den farklı olarak, canary yeni sürümü gerçek trafikte test eder
  • Temel metrikler — hata oranı, gecikme süresi ve iş göstergeleri bir kontrol grubuyla karşılaştırılır
  • Otomasyon canary süreci service mesh, feature flags ve CI/CD platformları aracılığıyla gerçekleştirilir

Canary Release Nedir

Canary Release, bir hizmetin yeni sürümünün önce küçük bir kullanıcı yüzdesine yönlendirildiği ve yalnızca kararlılık onaylandıktan sonra tüm kitleye yayıldığı bir dağıtım tekniğidir. Terim, “kömür madeninde kanarya” metaforundan gelir — tarihsel olarak madenciler tehlikeli gazları tespit etmek için kanaryaları yanlarında götürürdü. Geliştirmede, kullanıcıların kanarya grubu sorunların aynı erken göstergesi olarak hizmet eder.

Terimin Kökeni

Yazılım geliştirmede kanarya metaforu, 2010'larda mikroservis mimarisinin ve sürekli dağıtım uygulamalarının yükselişiyle ortaya çıktı. Netflix, Amazon ve Google, kanarya sürümlerini büyük ölçekte uygulayan ve sonuçlar ile metodolojileri yayınlayan ilk şirketlerdi. Bugün canary, üretim hatasının maliyetinin kullanıcı verileri ve gelirle ölçüldüğü ciddi projeler için standart bir modeldir. Kubernetes gibi modern orkestrasyon platformları, canary stratejileri için yerleşik destek sağlar.

Canary Nasıl Çalışır

Bir canarya sürümünün merkezinde, uygulamanın eski (kararlı) ve yeni (canarya) sürümleri arasında trafik bölünmesi yer alır. Kanarya sürümünün ilk payı toplam trafiğin %1–5'idir. İzleme sistemi her iki sürümün metriklerini sürekli olarak karşılaştırır. Sapmalar kabul edilebilir eşikleri aşmazsa, kanarya payı otomatik olarak %25'e, %50'ye ve son olarak %100'e yükselir. Metrikler kötüleşirse dağıtım otomatik olarak durdurulur ve bir geri alma başlatılır.

Kanarya Dağıtımı Nasıl Çalışır

Kanarya dağıtım süreci, her biri bir sonrakine geçmeden önce otomatik doğrulama gerektiren ardışık aşamalardan oluşur. Trafik yönetimi için service mesh kullanarak Kubernetes'te dağıtılan bir backend hizmetinin tipik bir senaryosunu ele alalım.

Aşamalı Kitle Genişletme

İlk aşama, kanarya sürümünü version: canary etiketli izole bir pod grubuna dağıtmaktır. Bir trafik dengeleyici (örneğin Istio veya Linkerd), bu gruba isteklerin %2'sini yönlendirir. İzleme sistemi, 10–30 dakika boyunca her iki sürümün metriklerini toplar. Hata oranı kararlıysa ve gecikme artmamışsa, otomasyon kanarya payını %10'a, ardından %50'ye yükseltir. Her aşamada işlem hattı, izleme veya geliştiriciden onay bekler. Trafik kanarya'da %100'e ulaştığında eski sürüm kullanımdan kaldırılır.

groovy
stage("Canary Deploy") {
    steps {
        sh "kubectl set image deployment/canary app=${NEW_VERSION}"
        sh "kubectl scale deployment/canary --replicas=2"
    }
}

stage("Canary Observation") {
    steps {
        script {
            def healthy = sh(
                script: "check-canary-health.sh",
                returnStatus: true
            )
            if (healthy != 0) {
                error "Canary failed health check"
            }
        }
    }
}

stage("Gradual Rollout") {
    steps {
        sh "update-traffic-split.sh canary 25"
        sh "sleep 300 && check-metrics.sh"
        sh "update-traffic-split.sh canary 50"
        sh "sleep 300 && check-metrics.sh"
        sh "update-traffic-split.sh canary 100"
    }
}

Otomatik Geri Alma

Canarya'nın temel avantajı, metrikler kötüleştiğinde otomatik geri almadır. Kanarya sürümünün payı artırıldıktan sonra hata oranı bir eşiği aşarsa (örneğin, taban çizgisinden +%5), işlem hattı otomatik olarak tüm trafiği eski sürüme yönlendirir. Geliştirici, ayrıntılı bir rapor içeren bir bildirim alır: hangi metriklerin düştüğü, hangi uç noktalarda ve hangi kod sürümünün dağıtıldığı. Bu yaklaşım, kurtarma süresini (MTTR) saatler yerine dakikalara indirir.

AşamaTrafik PayıSüreGeçiş Koşulu
Başlangıç%210–30 dkHata oranı < taban çizgisi + %1
Genişletme%10–2530–60 dkGecikme p95 < taban çizgisi + %10
Çoğunluk%5030–60 dkİş metrikleri kararlı
Tam dağıtım%100Tüm kontroller geçildi

Canary Release vs Blue-Green Deployment

Canary ve blue-green, sıklıkla karıştırılan iki popüler sıfır kesinti dağıtım stratejisidir. Her ikisi de sürekli hizmet kullanılabilirliğini sağlar, ancak trafik yönetimi ve yeni sürüm doğrulama yaklaşımlarında temel olarak farklılık gösterir. Farkı anlamak, belirli bir senaryo için doğru stratejiyi seçmek açısından kritiktir.

Temel Farklar

Blue-green dağıtımı, iki özdeş ortam kullanır (blue — mevcut, green — yeni). Green ortamının tam dağıtımı ve test edilmesinden sonra trafik anında değiştirilir — tek bir yönlendirici anahtarıyla. Canary ise aynı altyapıda yeni sürümün payını kademeli olarak artırmayı hedefler ve daha ince bir kontrol sağlar. Blue-green, tüm altyapının çoğaltılmasını gerektirir, bu daha pahalıdır ancak anında geri alma sağlar. Canary daha ekonomiktir ancak daha karmaşık izleme ve otomasyon gerektirir.

Canary Ne Zaman Seçilmeli

Canary sürümü, değişiklikleri gerçek trafikte doğrulamanın önemli olduğu yüksek dağıtım sıklığına (günde birkaç kez) sahip hizmetler için idealdir. Trafik yönlendirmesinin hassas bir şekilde kontrol edilebildiği mobil uygulama backend hizmetleri, API ağ geçitleri ve mikroservisler için özellikle etkilidir. Blue-green, monolitik uygulamalar veya kısmi trafik dağıtımının uygulanmasının zor olduğu hizmetler için tercih edilir.

Canary Release'te Metrikler

Bir canarya sürümünün başarısı tamamen izleme kalitesine bağlıdır. Kanarya ve kararlı sürümler arasında doğru metrik karşılaştırması olmadan canary amacını kaybeder — genişletme veya geri alma kararı körü körüne alınır. Canary analizi için temel metrikleri ve bunların toplanma yaklaşımlarını inceleyelim.

Teknik Metrikler

Birincil göstergeler hata oranı (HTTP 5xx, istisnalar ve zaman aşımlarının yüzdesi), gecikme (p50, p95, p99 yanıt süresi), iş hacmi (saniyedeki istek sayısı) ve kaynak kullanımıdır (CPU, bellek). Karşılaştırma izole edilmelidir: kanarya grubunun metrikleri, tüm hizmetle değil, aynı boyuttaki bir kontrol grubuyla karşılaştırılmalıdır. Doğru karşılaştırma için Mann-Whitney istatistiksel testi veya güven aralığı hesaplaması kullanılır.

İş Metrikleri

Teknik metriklerin yanı sıra, canary analizi iş göstergelerini de dikkate almalıdır: dönüşüm, elde tutma, işlem sayısı, kullanıcı başına gelir. Mobil uygulamalar için çökmesiz oran, soğuk başlatma süresi ve ANR sıklığı kritiktir. Teknik metrikler normalse ancak iş metrikleri düşmüşse — bu geri alma sinyalidir. Canary platformunun analitik sistemlerle (Amplitude, Mixpanel) entegrasyonu, gruplar arasında iş metriklerinin otomatik karşılaştırılmasını sağlar. Mevsimsellik ve günlük trafik döngülerini dikkate alarak her iki grup için aynı karşılaştırma dönemini kullanmak önemlidir. Örneğin, yoğun saatlerde bir canarya grubunu düşük yüklü saatlerdeki bir kontrol grubuyla karşılaştırmak çarpık sonuçlar verecektir.

Otomatik Geri Alma Eşikleri

Otomatik geri alma için eşikleri yapılandırmak, duyarlılık ve gürültüye karşı direnç arasında denge gerektiren kritik bir görevdir. Çok düşük bir eşik, normal metrik dalgalanmaları sırasında yanlış pozitiflere ve dağıtım durmasına yol açar. Çok yüksek bir eşik gerçek sorunları gözden kaçırır. Eşiklerin geçmiş verilere dayanarak ayarlanması önerilir: %95 güven aralığıyla önceki 7 günün taban çizgisi metrikleri. Hata oranı için tipik bir eşik, taban çizgisinden 2 yüzde puanından fazla artıştır. Gecikme için p95'in %20'den fazla aşılmasıdır.

Kanarya Dağıtımı için Araçlar

Modern ekosistem, canarya sürümlerini uygulamak için birçok araç sunar — orkestrasyon platformlarının yerleşik yeteneklerinden özelleşmiş service mesh çözümlerine kadar. Belirli bir aracın seçimi, teknoloji yığınına ve trafik kontrol gereksinimlerine bağlıdır.

Service Mesh Çözümleri

Istio, Kubernetes'te kanarya dağıtımı için en popüler service mesh'dir. Istio, uygulama kodunu değiştirmeden VirtualService ve DestinationRule düzeyinde trafik dağıtımını yönetmeye olanak tanır. Linkerd, daha az yapılandırma karmaşıklığıyla benzer işlevsellik sağlar. Her iki araç da ağırlıklı trafik dağıtımını, istek yansıtmayı ve metriklere dayalı otomatik geri almayı destekler.

CI/CD ve Platform Araçları

Argo Rollouts ve Flagger gibi CI/CD platformları, Kubernetes'te kanarya dağıtımı için özel kaynaklar sağlar. Metrik toplama için Prometheus ile entegre olurlar ve genişletme veya geri alma sürecini otomatik olarak yönetirler. Mobil uygulamalar için canary, Google Play Console ve App Store Connect'te aşamalı dağıtımlar aracılığıyla gerçekleştirilir; burada yeni kullanıcıların payı, uygulama mağazası düzeyinde birkaç gün boyunca kontrol edilir.

Sıkça Sorulan Sorular

Canary release ile A/B testi arasındaki fark nedir?

Canary Release, yeni bir sürümün kararlılığını kontrol etmek için bir dağıtım stratejisidir; A/B testi ise iki seçeneğin etkinliğini karşılaştırmak için bir deneydir. Canary “hizmet bozulacak mı” diye kontrol ederken, A/B “hangi seçenek iş için daha iyi” diye kontrol eder. Ancak canary altyapısı genellikle A/B deneylerinin temeli olarak kullanılır.

İlk canary için optimal trafik yüzdesi nedir?

Optimal başlangıç yüzdesi, toplam trafiğin %1–5'idir. Bu, metriklerin istatistiksel anlamlılığı için yeterlidir ancak sorunlar sırasında kullanıcılar üzerinde önemli bir etki için yetersizdir. Düşük trafikli hizmetler için (1000 RPM'den az), anlamlı veriler elde etmek için pay %10–20'ye çıkarılabilir. Canary'ye yapılan mutlak istek sayısının analiz için yeterli olması önemlidir.

Canary aşaması ne kadar sürmelidir?

Canarya aşamasının minimum süresi, yeterli metrik toplamak için 10–30 dakikadır. Tam bir canarya sürüm döngüsü, hizmetin karmaşıklığına ve trafik hacmine bağlı olarak 30 dakikadan birkaç saate kadar sürebilir. Uygulama mağazaları aracılığıyla mobil uygulamalar için canarya aşaması, güncelleme dağıtım gecikmeleri nedeniyle 1–3 gün sürebilir.

Canary mobil uygulamalar için kullanılabilir mi?

Evet, mobil uygulamalar için canary, Google Play Console ve App Store Connect'te aşamalı dağıtımlar aracılığıyla gerçekleştirilir. Yeni sürüm önce kullanıcıların %1–5'ine sunulur, ardından çökme artışı olmazsa pay artar. Mobil uygulama backend hizmetleri için canary, API ağ geçidi tarafında trafik dağıtımı yoluyla standart şekilde çalışır.

Kanarya dağıtımının riskleri nelerdir?

Ana risk, dengesiz hata dağılımıdır: kanarya grubu yanlışlıkla belirli kullanıcıları (örneğin, yalnızca bir bölgeden) alabilir ve metrikleri bozabilir. Diğer bir risk, doğru izleme ve otomatik geri alma eşiklerini yapılandırmanın karmaşıklığıdır. Çok agresif bir canary (yüksek başlangıç yüzdesi veya hızlı dağıtım) ile kademeli dağıtımın avantajı kaybolur.

Özet

  • Canary Release — her kitle genişletme aşamasında metrik kontrolü olan kademeli bir dağıtım stratejisi
  • Başlangıç payı kanarya sürümünün trafiğin %1–5'i olup aşamalı olarak %100'e yükseltilir
  • Otomatik geri alma metrikler kötüleştiğinde temel avantajdır ve MTTR'yi dakikalara indirir
  • Blue-green'den farklı olarak canary tek bir altyapıda kısmi trafik dağıtımıyla çalışır
  • Service mesh (Istio, Linkerd) ve CI/CD platformları (Argo Rollouts, Flagger) canary sürecini otomatikleştirir
  • Mobil uygulamalar için canary uygulama mağazalarında aşamalı dağıtımlarla gerçekleştirilir
  • Canary'nin başarısı izleme kalitesine ve otomatik kararlar için doğru eşik yapılandırmasına bağlıdır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun