"Blue-Green" we "Canary" neşirleri
(Bölüm: Binagärlik we teswirnamalar)
1) Näme üçin "howpsuz çykmalar" gerek?
Häzirki zaman ulgamlarynda goýbermek diňe bir kody eltmek bilen çäklenmän, önümde dolandyrylýan synagdyr: biz şol bir wagtyň özünde töwekgelçiligi azaldýarys (ulanyjylary bozmaýarys) we seslenme wagtyny gysgaldýarys (täsirini çalt görýäris). Iki nusgawy strategiýa - Blue-Green we Canary - muny başgaça çözýärler, ýöne umumy maksat bilen: nol aşak düşmek, çalt yza gaýdyp gelmek, SLO boýunça syn etmek.
2) Esasy kesgitlemeler
Blue-Green
Proto-gurşawyň iki sany doly nusgasyny saklaýarys: işjeň (Blue) traffige hyzmat edýär, passiw (Green) täze wersiýany taýýarlaýar. Üýtgetmek - deňagramlaşdyryjy/marşrutlaşdyryjy derejedäki atom (switch/flip). Hasam erbetleşse, derrew "Blue" -a gaýdyp gelýäris.
Canary
Bölekleýin çykarýarys: ilki traffigiň az% -i (mysal üçin 1-5%), metriklere/SLO-lara syn edýäris, soň paý ädimme-ädim artdyrýarys (10% → 25% → 50% → 100%). Pese gaçanda - öňki durnukly ädimde yza çekilmek ýa-da durmak.
3) Haýsy çemeleşme has gowudyr
Blue-Green - aşakdakylary saýlaýarys:- Çylşyrymly hereketler bolmazdan derrew yza çekilmek gerek.
- Arhitektura/býudjet goşa infrastruktura köpeltmäge mümkinçilik berýär.
- Uly göwrümli göçmeleri ýa-da platforma täzelenmelerini (OS/JDK/rantaim) izolýasiýa etmek isleýäris.
- Goşundylar/birikmeleriň howuzlary kem-kemden "garyşyk" ýagdaýa duýgur.
- Blast radius iň az bolmaly we ulanyjylaryň paýynda özüni alyp barşyny görmeli.
- Relizleriň ýokary ýygylygy, yzygiderli eltip bermek adaty zat.
- Error budget, latency, conversion).
- Önüm topary çaklamalary barlamak isleýär: öwrülişige, saklamak, LTV we ş.m.
4) Üstünlikli goýbermegiň umumy ýörelgeleri
Idempotent bild-artefaktlar: ähli tapgyrlarda şol bir şekil/paket.
Kesgitlenen konfigurasiýa: kod hökmünde, gurşawyň deňeşdirilmegi.
Syn edilmegi by design: loglar, metrikler, yzarlamalar, alertler; SLI/SLO öňünden.
Çalt, awtomatlaşdyrylan yza gaýdyp gelmek: düwme/yzyna gaýdyp gelmek buýrugy - el jadysy däl-de, paýlaýnyň bir bölegi.
Shemalaryň gabat gelýän üýtgemeleri: expand-migrate-contract strategiýasy (§ 10 serediň).
L7 derejesinde marşrut (islenýär): API sözbaşylary/kuklary/ýollary/wersiýalary boýunça çeýeligi.
5) Gök-ýaşyl: arhitektura we proses
5. 1 Topologiýa
Iki proto-stek: Blue (işjeň) we Green (dalaşgär).
Umumy daşarky garaşlylyk: CDN, daşarky API, nobatlar; BB - aýratyn ýagdaý (§ 10 serediň).
Geçiş nokady: Balans/Ingress/Gateway.
5. 2 Ädimme-ädim
1. Green-i täze artefakt (vNext) astynda galdyrýarys, synaglary geçirýäris.
2. "Green" -e garşy awtotestleriň geçmegi (e2e, şertnama, regression).
3. Keş/sessiýalary gyzdyrýarys (mümkin bolsa), fon joblaryny/nobatlaryny sinhronlaşdyrýarys.
4. Traffigi Green-e geçirýäris: Atom flip (DNS TTL pes, Route/Listener swap, Ingress weight = 100%).
5. SLO-ny ilkinji minutlarda/sagatlarda synlaýarys (golden signals: latency, errors, saturation + business-metrics).
6. Meselelerde - Blue (flip back) -a derrew gaýdyp gelmek.
5. 3 Oňaýly taraplary
Artykmaçlyklary: derrew yza gaýdyp gelmek, ýönekeý akyl modeli, arassa izolýasiýa.
Minuslar: infrastrukturany iki esse köpeltmek, stateful komponentleri we maglumatlaryň göçmegi bilen çylşyrymlylyk.
6) Canary: arhitektura we proses
6. 1 Topologiýa
Bitewi prod-klaster; hyzmatyň birnäçe wersiýasy (stable we canary).
Traffik agramlara (1-5-10-25-50-100%) ýa-da nyşanlara (sözbaşy/kuke/ID boýunça) bölünýär.
6. 2 Ädimme-ädim
1. Şol bir/ASG/NSG klasterine kanary wersiýasyny ibermek.
2. Traffigiň bir böleginiň (mysal üçin 1-5%) kanary ugrukdyrylmagy.
3. Awtomatiki SLI/SLO barlaglary we iş metrikleri; C/CD geýtleri (error rate, p95 latency, CPU/RES, öwrülişik, şowsuzlyk/yzyna gaýtarmak).
4. Geýtlerden geçende traffigiň paýynyň ädimme-ädim köpelmegi.
5. 100% -e çenli doly rollout we köne wersiýany öçürmek; pese gaçanda - awto-rollback.
6. 3 Oňaýly taraplary
Artykmaçlyklary: ulanyjylaryň köpüsi üçin iň az töwekgelçilik, data-driven çözgüdi.
Minuslar: kämillik ýaşyna ýeten gözegçilik, başarnykly marşrut, ýagdaýlaryň arasynda "version skew" töwekgelçiligi gerek.
7) Traffigi ugrukdyrmak
L4 derejesi: IP/portlar boýunça balans; ýönekeý, ýöne çeýeligi az.
L7 derejesi: HTTP/S düzgünleri - ýolda, hostda, sözbaşyda, çerezlerde, User-Agent, GeoIP, SNI.
- Weighted routing (agramy 1-100%).
- Header-based/Cookie-based (ulanyjyny topara düzmek).
- Session stickiness (stateful/kesilen ssenariler üçin möhümdir).
- Shadow/Traffic mirroring (haýyşlary "gizlin" görnüşine aýna).
8) Gurallar we amala aşyrmalar (mysallar)
Kubernetes: Ingress (NGINX, Contour), Service Mesh (Istio/Linkerd), Argo Rollouts, Flagger.
Облака: AWS ALB/ELB, Route 53 weighted records, ECS/EKS; GCP Load Balancing + NEG; Azure Front Door/App Gateway.
CD platformalary: Spinnaker, Argo CD, GitHub Actions + Progressive Delivery pluginleri, GitLab/CD.
9) Syn etmek, SLI/SLO we geýt
Golden signals: Latency (p95/p99), Error rate (5xx/4xx по типам), RPS, Saturation (CPU/Memory/GC), Queue lag.
Iş ölçegleri: konwersiýa, ygtyýarlylaşdyrma, tölegler/üstünlikler, ortaça çek, huniniň ädimleri boýunça boýun gaçyrma.
- Hatanyň bosagasy (mysal üçin error rate canary ≤ baseline + X%).
- p95 gizlinligi bazeline Δ-den erbet däldir.
- Iş çäkleri (mysal üçin, öwrülişigiň peselmegi
- SLO boýunça "Error budget" çalt ýanmaly däldir.
Ädimiň dowamlylygy: statistik ähmiýeti üçin ýeterlik iň az wagt (traffige bagly).
10) DB migrasiýasy we shemalaryň laýyklygy
Esasy düzgün: wersiýalar yza we öňe gabat gelýän bolsa, goýberişler howpsuz.
expand-migrate-contract strategiýasy:1. Expand: köne wersiýany bozman täze sütünleri/indeksleri/tablisalary goşuň.
2. Deploy app vNext (täze shema okaýar/ýazýar, ýöne köne shema bilen işlemegi bilýär).
3. Migrate data (arka/sag, idempotent, çek nokatlary bilen).
4. Contract: Durnuklaşandan soň köne meýdanlary/şekilleri aýyrýarys.
Anti-pattern: Blue-Green geçiş wagtynda aýratyn petiklemegi talap edýän göçmeler; shemany taşlap bilmezlik; "goşa ýazgy" duplikasiýasyz.
11) Yza gaýdyp gelmek (rollback) we awariýa meýilnamalary
Blue-Green: Blue-da derrew flip; "Green" fon joblarynyň "guýruklaryna" gözegçilik edýäris.
Canary: agramyň yza çekilmegi (mysal üçin 25% -den 5% ýa-da 0%); alertlerde awtomatiki abort.
Maglumatlar: oýlanyşykly gaýtalamak/öwezini dolmak syýasaty (idempotency keys, "inbox/outbox" pattern, habarlaryň duplikasiýasy).
Ficheflags: bölekleýin çykarylan mümkinçilikleri öçürmek üçin çalt öldürmek switch.
12) Steýt we sessiýalar bilen işlemek
Kanareýalar üçin Sticky sessions ýa-da wersiýalary çalyşmak üçin sessiýalary daşarda saklamak (Redis/Memcached).
Öň gyzdyrmak (Green warm-up) we flip-de invalidation hasaba almak.
Fon workerleri: wersiýalaryň arasynda "ýaryşlara" - nobatlaryň bölünmegine ýa-da wersiýa boýunça "liderlige" ýol bermäň.
13) Howpsuzlyk we laýyklyk
"Green/Canary" -e girmek - Zero Trust boýunça: hyzmat hasaplary, iň az zerur rollar.
Syrlar we açarlar - KMS/Secrets Manager arkaly; aýlanyşy açyň.
Traffik - diňe TLS; endpoint 'lerin wersiýalary aýdyň kesgitlenildi; marşrutlaşdyryş we goýberiş hereketleriniň barlagy.
14) Bahasy we öndürijiligi
Blue-Green infrastrukturany iki esse köpeldýär (goýberilende ýa-da hemişelik) - býudjet goýuň.
Canary has tygşytly, ýöne gözegçilik gurallaryny we awtomatlaşdyryş üçin in engineeringenerçilik wagtyny talap edýär.
Optimizasiýa: awtoskailing, ephemeral gurşaw, wersiýalaryň paralel barlygynyň penjiresini gysgaldyň.
15) Çek-listler
Çykmazdan ozal
- Surat/bild bir çeşmeden mahabatlandyryldy, gollar barlandy.
- Synag meýilnamasy, aladalar we SLO oýunlary sazlandy.
- DB migrasiýalary - expand re modeiminde, daşarky meýilnamalar elýeterlidir.
- Yzyna gaýtarmak meýilnamasy - staging/production-like-de barlandy.
Goýberilende
- Metrikler we loglar baseline bilen deňeşdirilýär.
- Canary üçin - ädimler we bosagalar kesgitlenildi; Blue-Green üçin - flip-back taýynlygy.
- On-call buýruklary habarly, seslenme penjiresi bar.
Çykarylandan soň
- SLO syzmady, error budget kadaly.
- Post-reliz migrasiýasy/arassalamak tamamlandy.
- Retrospektiv we pleýbuklary täzelemek.
16) Ýygy-ýygydan ýalňyşlyklar we anti-patternler
Metriksiz töleg: maglumat ýok - dolandyrylýan çözgüt ýok.
Gabat gelmeýän DB shemalarynyň garyşmagy, daşamak strategiýasynyň ýoklugy.
Traffigiň tötänleýin garyşmagy: stickiness ýok, ulanyjylar wersiýalaryň arasynda "bökýärler".
Gizlin stateful-garaşlylyk (ýerli diskler, in-memory keşleri).
Uzak DNS-TTL çalt flip (Blue-Green) päsgel berýär.
Awtogeýtleriň ýoklugy: el bilen "göz bilen" çözgütler haýalladýar we töwekgelçilikleri artdyrýar.
17) Birleşdirilen çemeleşmeler
Blue-Green + Canary: ilki Green-i çykaryň, soň bolsa aýry-aýry hyzmatlar üçin Green-iň içinde Canary-i çykaryň.
Köçe/göçýän traffik: Canary-den öň aýna traffigini täze wersiýa sürýäris.
Feature flags (progressive delivery): funksiýa segmentler boýunça "gara" baýdaklar bilen durnukly wersiýanyň üstünde açylýar.
18) Ssenarileriň mysallary (eskizler)
Blue-Green (web+api):1. Täze Listener/Ingress üçin Green (v2) ýaýradýarys.
2. Keşleri gyzdyrýarys, readonly-barlaglary, smoke ýerine ýetirýäris.
3. Green = 100% agramyna geçýäris.
4. SLO-ny 30-60 minut synlaýarys; hemme zat gowy bolsa, "Blue" -ny öçürýäris.
Canary (töleg mikroservisi):1. Deploy canary vNext (5% göçürmeleri).
2. Içerki hasaplar/synag segmenti üçin 5% traffigi açýarys.
3. Awtogeýt: error rate ≤ baseline + 0. 3%, p95 ≤ +20ms.
4. Her N minutda 10% → 25% → 50% göterýäris.
5. Ähli segmentler boýunça fiçeflagy 100% geçirýäris; köne wersiýasyny aýyrýarys.
19) Dürli arhitektura üçin üýtgeşmeler
Monolit: Blue-Green has aňsat, bölünmezlik sebäpli Canary has kyn; ficheflagy ulanyň.
Mikroservisler: Canary tebigy; hyzmat şertnamalaryna gözegçilik ediň (consumer-driven contracts).
Stateful Services: Üns bilen işlenip düzülen göçmeler we stickiness bilen Blue-Green-i saýlaň.
20) Gysgaça deňeşdirme (rezýume)
Yza gaýdyp geliş tizligi: Blue-Green = derrew; Canary = çalt, ýöne horlanmak bilen.
Infrastrukturanyň bahasy: Blue-Green ↑; Canary ↔︎/↓.
Ulanyjylar üçin töwekgelçilik: Canary aşakda (paýyna gözegçilik edýäris).
Ornaşdyrmagyň çylşyrymlylygy: Blue-Green has aňsat başlaýar; Canary güýçli gözegçilik we awtomatlaşdyrmagy talap edýär.
Maglumatlaryň/shemalaryň laýyklygy: ikisi üçinem möhüm; expand-migrate-contract.
21) Jemleýji
"Blue-Green" we "Canary" biri-birini aýyrýan strategiýalar däl-de, eýsem progressiw eltip bermegiň elementleridir. Saýlamak bahanyň çäklendirilmegine, syn etmegiň kämillik derejesine we üýtgeşmeleriň häsiýetine baglydyr. Çemeleşmä garamazdan, durnukly goýberiş dört sütünde saklanýar: awtomatlaşdyryş, gözegçilik, ters gabat gelmek we çalt yza gaýdyp gelmek.