Canary Release — tətbiqin yeni versiyasının əvvəlcə kiçik bir istifadəçi qrupuna çatdırıldığı, sonra tədricən bütün auditoriyaya yayıldığı yerləşdirmə strategiyasıdır. Bu yanaşma problemləri erkən mərhələdə aşkar etməyə imkan verir və bütün istifadəçilərə təsiri minimuma endirir. Google Cloud (2024)-ə görə, canary buraxılışları hadisələrin aşkarlanma müddətini 60% azaldır. Kanar yerləşdirmə funksionallığın tam əlçatmazlığının yolverilməz olduğu kritik xidmətlər üçün standart halına gəlib.
Əsas məqamlar
Canary Release — yeni xidmət versiyasının əvvəlcə istifadəçilərin kiçik bir faizinə yönləndirildiyi və yalnız sabitlik təsdiqləndikdən sonra bütün auditoriyaya yayıldığı yerləşdirmə texnikasıdır. Termin “kömür mədənində kanarya” metaforasından gəlir — tarixən mədənçilər təhlükəli qazları aşkar etmək üçün kanaryalar aparırdılar. Proqramlaşdırmada kanar istifadəçi qrupu da eyni erkən problem göstəricisi rolunu oynayır.
Proqram təminatının inkişafında kanarya metaforası 2010-cu illərdə mikroxidmət arxitekturasının və davamlı yerləşdirmə təcrübələrinin populyarlaşması ilə ortaya çıxdı. Netflix, Amazon və Google şirkətləri canary buraxılışlarını miqyasda tətbiq edən ilklər oldu, nəticə və metodologiyalarını dərc etdilər. Bu gün canary istehsalatda səhvin qiymətinin istifadəçi məlumatları və gəlirlərlə ölçüldüyü hər bir ciddi layihə üçün standart nümunədir. Müasir orkestrasiya platformaları, məsələn Kubernetes, canary strategiyaları üçün daxili dəstək təmin edir.
Canary buraxılışının əsasında trafikin köhnə (stable) və yeni (canary) tətbiq versiyaları arasında bölünməsi dayanır. Canary versiyasının ilkin payı ümumi trafikin 1–5%-ni təşkil edir. Monitorinq sistemi hər iki versiyanın metrikalarını davamlı olaraq müqayisə edir. Əgər kənarlaşmalar icazə verilən hədləri aşmazsa, canary payı avtomatik olaraq 25%, 50% və nəhayət 100%-ə qədər artır. Metrikalar pisləşərsə, yerləşdirmə avtomatik dayandırılır və geri qaytarma başladılır.
Canary yerləşdirmə prosesi ardıcıl mərhələlərdən ibarətdir, hər biri növbəti mərhələyə keçməzdən əvvəl avtomatlaşdırılmış yoxlama tələb edir. Trafikin idarə edilməsi üçün service mesh istifadə edərək Kubernetes-də yerləşdirilmiş backend xidməti nümunəsində tipik ssenarini nəzərdən keçirək.
Birinci mərhələ — canary versiyasının `version: canary` etiketi ilə izolə edilmiş pod qrupuna yerləşdirilməsi. Trafik balanslaşdırıcısı (məsələn, Istio və ya Linkerd) bu qrupa 2% sorğu yönləndirir. Monitorinq sistemi hər iki versiyanın metrikalarını 10–30 dəqiqə ərzində toplayır. Əgər error rate sabitdirsə və latency artmayıbsa, avtomatika canary payını 10%-ə, sonra 50%-ə qədər artırır. Hər mərhələdə pipeline monitorinqdən və ya tərtibatçıdan (əl qapısı) təsdiq gözləyir. Canary-də 100% trafik olduqda köhnə versiya istismardan çıxarılır.
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"
}
}
Canary-nin əsas üstünlüyü — metrikalar pisləşdikdə avtomatik geri qaytarmadır. Əgər canary versiyasının payı artırıldıqdan sonra error rate həddi aşarsa (məsələn, baseline-dan +5%), pipeline avtomatik olaraq bütün trafiki köhnə versiyaya yönləndirir. Tərtibatçı ətraflı hesabatla bildiriş alır: hansı metrikalar düşüb, hansı endpoint-lərdə, kodun hansı versiyası yerləşdirilib. Bu yanaşma bərpa müddətini (MTTR) saatlarla deyil, dəqiqələrlə ölçməyə imkan verir.
| Mərhələ | Trafik payı | Müddət | Keçid şərti |
|---|---|---|---|
| Initial | 2% | 10–30 dəq | Error rate < baseline + 1% |
| Expansion | 10–25% | 30–60 dəq | Latency p95 < baseline + 10% |
| Majority | 50% | 30–60 dəq | Biznes metrikaları sabitdir |
| Full rollout | 100% | — | Bütün yoxlamalar keçilib |
Canary və blue-green — tez-tez qarışdırılan iki məşhur zero-downtime yerləşdirmə strategiyasıdır. Hər ikisi xidmətin fasiləsiz əlçatanlığını təmin edir, lakin trafikin idarə edilməsi və yeni versiyanın yoxlanılması yanaşmasında əsaslı şəkildə fərqlənir. Fərqi başa düşmək konkret ssenari üçün düzgün strategiyanı seçmək üçün kritik əhəmiyyət daşıyır.
Blue-green deployment iki eyni mühitdən istifadə edir (blue — cari, green — yeni). Green mühitinin tam yerləşdirilməsi və sınaqdan keçirilməsindən sonra trafik dərhal — bir router keçidi ilə dəyişdirilir. Canary isə eyni infrastrukturda yeni versiyanın payını tədricən artırmağa yönəlmişdir ki, bu da daha incə nəzarət verir. Blue-green bütün infrastrukturun təkrarlanmasını tələb edir, bu daha bahalıdır, lakin ani geri qaytarmanı təmin edir. Canary daha qənaətcildir, lakin daha mürəkkəb monitorinq və avtomatlaşdırma tələb edir.
Canary buraxılışı yüksək yerləşdirmə tezliyi (gündə bir neçə dəfə) olan xidmətlər üçün optimaldır, burada dəyişiklikləri real trafikdə yoxlamaq vacibdir. Bu, xüsusilə trafik marşrutlaşdırmasını dəqiq idarə edə biləcəyiniz mobil tətbiqlərin backend xidmətləri, API şlüzləri və mikroxidmətlər üçün effektivdir. Blue-green monolit tətbiqlər və ya trafikin fraksiya bölgüsünü həyata keçirməyin çətin olduğu xidmətlər üçün üstünlük təşkil edir.
Canary buraxılışının uğuru tamamilə monitorinqin keyfiyyətindən asılıdır. Canary və stable versiyaları arasında metrikaların dəqiq müqayisəsi olmadan canary mənasını itirir — genişləndirmə və ya geri qaytarma qərarı kor-koranə verilir. Canary təhlili üçün əsas metrikaları və onların aqreqasiya yanaşmalarını nəzərdən keçirək.
Əsas göstəricilər — error rate (HTTP 5xx faizi, istisnalar və vaxt aşımları), latency (p50, p95, p99 cavab müddəti), throughput (saniyədə sorğu sayı) və resource utilization (CPU, yaddaş). Müqayisə təcrid olunmalıdır: canary qrupunun metrikaları bütün xidmətin deyil, eyni ölçülü nəzarət qrupunun metrikaları ilə müqayisə edilir. Düzgün müqayisə üçün Mann-Whitney statistik testi və ya etibarlılıq intervallarının hesablanması istifadə olunur.
Texniki metrikalarla yanaşı, canary təhlili biznes göstəricilərini də nəzərə almalıdır: konversiya, retention, əməliyyat sayı, istifadəçi başına gəlir. Mobil tətbiqlər üçün crash-free rate, soyuq başlanğıc vaxtı və ANR tezliyi kritikdir. Əgər texniki metrikalar normaldırsa, lakin biznes göstəriciləri düşübsə — bu geri qaytarma siqnalıdır. Canary platformasının analitik sistemləri (Amplitude, Mixpanel) ilə inteqrasiyası biznes metrikalarını qruplar arasında avtomatik müqayisə etməyə imkan verir. Hər iki qrup üçün eyni müqayisə dövründən istifadə etmək, mövsümilik və trafikin gündəlik dövriliyini nəzərə almaq vacibdir. Məsələn, canary qrupunu pik saatda, nəzarət qrupunu isə aşağı yük saatlarında müqayisə etmək təhrif olunmuş nəticələr verəcək.
Avtomatik geri qaytarma üçün hədlərin konfiqurasiyası həssaslıq və səs-küyə qarşı dayanıqlılıq arasında balans tələb edən kritik bir vəzifədir. Çox aşağı hədd metrikaların normal dəyişmələrində yalan siqnallara və yerləşdirmənin dayandırılmasına gətirib çıxarır. Çox yüksək hədd real problemləri qaçırır. Hədlərin tarixi məlumatlar əsasında qurulması tövsiyə olunur: əvvəlki 7 gün üçün baseline metrikaları 95% etibarlılıq intervalı ilə. Error rate üçün tipik hədd — baseline ilə müqayisədə 2 faiz bəndindən çox artım. Latency üçün — p95-in 20%-dən çox aşılması.
Müasir ekosistem canary buraxılışlarını həyata keçirmək üçün bir çox alət təklif edir — orkestrasiya platformalarının daxili imkanlarından tutmuş ixtisaslaşmış service mesh həllərinə qədər. Müəyyən bir alətin seçimi texnologiya stackından və trafikə nəzarət tələblərindən asılıdır.
Istio — Kubernetes-də canary yerləşdirmə üçün ən populyar service mesh-dir. Istio tətbiq kodunu dəyişmədən VirtualService və DestinationRule səviyyəsində trafik paylanmasını idarə etməyə imkan verir. Linkerd daha az konfiqurasiya mürəkkəbliyi ilə oxşar funksionallıq təklif edir. Hər iki alət çəkili trafik bölgüsü, sorğu güzgüləməsi və metrikalar əsasında avtomatik geri qaytarmanı dəstəkləyir.
Argo Rollouts və Flagger kimi CI/CD platformaları Kubernetes-də canary yerləşdirmə üçün ixtisaslaşmış resurslar təqdim edir. Onlar metrikaları toplamaq üçün Prometheus ilə inteqrasiya olunur və genişləndirmə və ya geri qaytarma prosesini avtomatik idarə edir. Mobil tətbiqlər üçün canary Google Play Console və App Store Connect-də phased rollouts vasitəsilə həyata keçirilir, burada yeni istifadəçilərin payı tətbiq mağazası səviyyəsində bir neçə gün ərzində tənzimlənir.
Tez-tez verilən suallar
Canary Release yeni versiyanın sabitliyini yoxlamaq üçün yerləşdirmə strategiyasıdır, A/B testi isə iki variantın effektivliyini müqayisə edən eksperimentdir. Canary “xidmət sınacaqmı” sualını, A/B isə “hansı variant biznes üçün daha yaxşıdır” sualını yoxlayır. Bununla belə, canary infrastrukturu tez-tez A/B eksperimentləri üçün əsas kimi istifadə olunur.
Optimal ilkin faiz ümumi trafikin 1–5%-dir. Bu, metrikaların statistik əhəmiyyətliliyi üçün kifayətdir, lakin problemlər olduqda istifadəçilərə əhəmiyyətli təsir göstərmək üçün çox azdır. Aşağı trafikli xidmətlər üçün (1000 RPM-dən az) mənalı məlumat əldə etmək üçün pay 10–20%-ə qədər artırıla bilər. Canary-ə olan sorğuların mütləq sayının təhlil üçün kifayət olması vacibdir.
Canary mərhələsinin minimum müddəti kifayət qədər metrik toplamaq üçün 10–30 dəqiqədir. Tam canary buraxılış dövrü xidmətin mürəkkəbliyindən və trafik həcmindən asılı olaraq 30 dəqiqədən bir neçə saata qədər çəkə bilər. Tətbiq mağazaları vasitəsilə mobil tətbiqlər üçün canary mərhələsi yeniləmələrin yayılma gecikmələri səbəbindən 1–3 gün davam edə bilər.
Bəli, mobil tətbiqlər üçün canary Google Play Console və App Store Connect-də staged rollouts vasitəsilə həyata keçirilir. Yeni versiya əvvəlcə istifadəçilərin 1–5%-i üçün əlçatan olur, sonra çökmə artımı olmadıqda pay artırılır. Mobil tətbiqin backend xidmətləri üçün canary API şlüzü tərəfindən trafik paylanması vasitəsilə standart şəkildə işləyir.
Əsas risk — qeyri-bərabər səhv paylanması: canary qrupu təsadüfən spesifik istifadəçilər (məsələn, yalnız bir bölgədən) ala bilər ki, bu da metrikaları təhrif edir. Digər risk — düzgün monitorinqin və avtomatik geri qaytarma hədlərinin konfiqurasiyasının mürəkkəbliyi. Çox aqressiv canary (yüksək ilkin faiz və ya sürətli rollout) zamanı tədricən yerləşdirmənin üstünlüyü itir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun