Progressiw goýberiş we stagingler
(Bölüm: Binagärlik we teswirnamalar)
1) Näme üçin progressiw eltip bermek
"Dev → test → staging → prod" nusgawy shemasy howpsuzlygy kepillendirmeýär: önümçilige näçe ýakyn bolsa, gabat gelmezlik töwekgelçiligi şonça-da ýokarydyr. Progressiw goýberiş, traffigiň/tomaşaçylaryň paýyny kem-kemden artdyrmak we çözgütleri metrler we SLO bilen goldamak arkaly blast radiusyny azaldýar. Steýjingler bilen bilelikde bu: nol downtaým, çalt yza gaýdyp gelmek, prosesiň gaýtalanmagy we ölçenen hil gözegçiligi berýär.
2) Adalgalar
Steýjingler (environments) - artefaktyň durmuş sikliniň resmi tapgyrlary: 'dev', 'ci', 'qa/test', 'staging/pre-prod', 'prod', şeýle hem ephemeral/preview fich-şahalaryň aşagyndaky gurşaw.
Progressiw goýberiş (progressive delivery) - wersiýanyň/fiçiň tapgyrlaýyn goşulmagy: canary, göterim rollout, ring-deploy, ficheflags, dark-launch, shadow-traffik.
Geýtler - awtomatiki kabul ediş ölçegleri (error rate, p95, işewürlik metrikasy, SLO boýunça ýalňyşlyklaryň býudjeti).
Artefaktyň mahabaty - şol bir gol çekilen bildi stagingleriň arasynda öňe sürmek (immutable artifact).
3) Daşky gurşawyň kartasy we olaryň maksady
3. 1 Esasy
Dev (ýerli/gum gutulary): çalt aýlawlar, endikler, iň az howpsuzlyk.
CI (integrasiýa stendleri): birlik/integrasiýa/şertnama synaglary, statiki derňew, SCA/SAST.
QA/Test: e2e, ýük, regression. Maglumatlar sintetiki ýa-da gizlenen.
Staging/Pre-prod: iň ýokary "önüm ýaly": şol bir konfigurasiýa, baýdaklar, çäkler, fon bejergisi.
Prod: söweş traffigi, SLO/SLI, alertler, yzyna gaýtarmak meýilnamalary.
3. 2 Goşmaça
Ephemeral/Preview per PR: pull-request stendiniň awto gurluşy, merge/close.
UAT/Sandbox iş toparlary üçin: kabul etmek, görkezmek, okuw ssenarileri.
Laboratoriýanyň öndürijiligi: izolirlenen ýük synaglary (traffik generatorlary, maglumatlaryň göçürmeleri).
4) Durnukly steýjingleriň ýörelgeleri
Kod hökmünde konfigurasiýa (IaC, GitOps), daşky gurşawyň süýşmegi kod we awtomatiki tassyklamalar bilen aýrylýar.
Idempotent, gol çekilen artefaktlar (SBOM, provenance, attestations), bir build → multi-stage deploy.
Azyk bilen deňlik: kärendäniň wersiýalary, çäkler, baýdaklar goşulan tor syýasatlary. Tapawut diňe syrlarda/maglumatlarda.
TDM (test data management): sintetika/maskalanma, göçmek we sidler paýplaynyň bir bölegi hökmünde.
Gözegçilik edilişi by design: reliz bellikleri, ýazgylaryň/yzarlamalaryň baglanyşygy, ähli basgançaklarda birmeňzeş daşbordlar.
5) Progressiw goýberiş modeli
5. 1 Çemeleşme gurallary
Aýratynlyklar: segmentler boýunça funksiýany açmak/öçürmek (ýurt, müşderi, hasap, random seed).
Canary: 1-5-10-25-50-100% traffigi bilen her ädimde.
Ring-deploy: halkalar boýunça giňeltmek (internal → employees → beta → public).
Blue-Green: platformanyň uly täzelenmeleri üçin atom flip.
Dark-launch: ulanyja täsir etmezden gizlin ýerine ýetiriş (metrikleri ýygnamak).
Shadow-traffic: ulanyja jogap bermezden soraglary täze wersiýa aýna.
5. 2 Awtomatiki geýtler
Tehnometrikler: error rate, p95/p99, saturation, queue lag.
Iş ölçegleri: ygtyýarlylandyrmak, tölege öwürmek, huniniň ädimleri boýunça boýun gaçyrmak.
SLO/error budget: ýalňyşlyklaryň býudjeti çalt ýananda çalt dur.
Statistik ähmiýeti: "ses boýunça" karar bermezlik üçin traffigiň iň az wagty/mukdary.
6) CI/CD (salgylanma)
1. Commit/PR → Build: bir şekil/paket, gol, SBOM.
2. CI-тесты: unit/integration/contract + security (SAST/SCA/secret-scan).
3. Ephemeral preview: el bilen barlamak üçin stendiň awtomatiki göterilmegi/UX.
4. QA/Test: e2e + ýük + bulam-bujarlyk synaglary (goşmaça).
5. Staging: smoke, kritiki ulanyjy ýollarynyň regressiýasy, DB migrasiýalaryny barlamak.
6. Prod canary: 1-5% traffik → geýt → 10-25-50-100%.
7. Yza çekilmegi/tamamlanmagy: problemalarda - awto-rollback; üstünlikli bolsa - köne wersiýany ýapmak.
7) Maglumatlary we shemalary dolandyrmak
Expand-migrate-contract: ters gabat gelýän göçmeler, fon geçirimleri, barlag nokatlary, idempotentlik.
Iki akymly ýazgylar (dual-write) ýa-da "geleşik outbox".
Masking/staging üçin prod-maglumatlary saýlamak (kanuny we tehniki taýdan ygtybarly).
Nagt pullar/sessiýalar: daşarky ammar, ýyly başlangyç, flip-de maýyplyk syýasaty.
8) Howpsuzlyk we laýyklyk
Syrlar: KMS/Secrets Manager, rotation, iň az artykmaçlyklar ýörelgesi.
Steýjingleri izolirlemek: torlar/hasaplar/taslamalar; prod bilen tötänleýin senkronizasiýa gadaganlygy.
Audit/çykyş ýoly: kim/näme/haçan çykardy, artefaktyň wersiýasy, change approval.
Programma üpjünçiliginiň iberilmegi: goly barlamak, reýestrlere ynam syýasaty, "latest" gadaganlygy.
9) Gözegçilik etmek we peýdalanmak
Bellikleriň ýeke-täk görnüşi: '{service, version, commit, stage, region, ring}'.
Baseline bilen deňeşdirme: kanareýa vs bir grafikada durnukly wersiýa.
SLO boýunça alertler: azyk we tehniki, kanary üçin dürli bosagalar.
Post-release gözegçilik: gijikdirilen täsirler üçin azyndan N sagat/gün.
10) Gaýdyşlar we awariýalaryň meýilnamalary
Düwme/yzyna gaýtarmak buýrugy - paýlaýjynyň bir bölegi (el bilen däl).
Baýdakyň ters mahabaty deploýdan (kill-switch) has çaltdyr.
Maglumatlar boýunça garşylyklaýyn çäreler: amallaryň öwezini dolmak, duplikasiýa, idempotent gaýtadan işlemek.
Wakalaryň pleýbuklary: kim karar berýär, aragatnaşyk kanallary, habar şablonlary.
11) Bahasy we öndürijiligi
Ephemeral-gurşaw agressiw awto-aýrylsa, pul tygşytlaýar.
Blue-Green çykarylanda has gymmat; canary arzan, ýöne ýetimli metrikleri talap edýär.
Ýük we goýberiş penjiresi boýunça awtoskeyling; prevew-stendler üçin kwotalar.
12) Ýygy-ýygydan anti-patternler
Gurşawyň süýşmegi: stendlerde el bilen düzedişler, "bu ownuk zat".
Gurşaw üçin bir bild: rebuild per stage → "gaýtadan öndürilmeýän" prod-baglar.
Möhüm däl maglumatlar boýunça synaglar: önümde düşýän "ýaşyl" synaglar.
Geýtleriň ýoklugy: SLO-nyň ýerine duýgulara görä çykarylýar.
Blue-Green-de DNS-de uzyn TTL; bölekleýin traffikde stickiness ýoklugy.
canary/stable wagtynda gabat gelmeýän DB shemalaryny garyşdyrmak.
13) Çek-listler
Ädim ätmezden öň
- Surat gol çekildi, SBOM ýygnaldy, girit derejesindäki gowşaklyklar ýapyldy.
- DB migrasiýalary ters gabat gelýär (expand).
- Synaglar üçin maglumatlar gizlenýär/sintetikdir.
- Daşbordlar/alertler täze wersiýa üçin taýýar.
Prod-a girmezden ozal
- Ädimler we bosagalar bilen kanary meýilnamasy tassyklandy.
- Öldürmek-switch we yzyna gaýtarmak meýilnamasy staging barlandy.
- Traffic shadow ýa-da dark-launch (mümkin boldugyça).
- On-call habar berildi, penjiräniň wagty ylalaşyldy.
Çykarylandan soň
- SLO gözegçiligi N sagat durnukly.
- Arassalamak/göçmek "contract" ulanyldy.
- Retrospektiv we playbook täzelenmesi.
14) Arhitektura boýunça ornaşdyrmagyň wariantlary
Monolit: öň stendler + Blue-Green, çitler - baýdaklaryň üsti bilen; URL/cookie boýunça çäklendirilen kanary.
Mikroservisler: canary/ring tebigy; şertnamalary berk dolandyrmak (CDC), API wersiýasy.
Stateful hyzmatlary: Blue-Green gyzdyrmak we anyk migrasiýa meýilnamasy bilen; aýry-aýry nobatlar/topikler per version.
15) Referens paypline c GitOps (eskiz)
App (kod) ammary artefakt çykarýar → manifestini env ammary goýýar.
GitOps-agent (Argo CD/Flux) 'env/dev', 'env/qa', 'env/staging', 'env/prod' sinhronlaşdyrýar.
Mahabat - pull-request arkaly zerur steýjiň katalogyna; merge togalanmaga we geýtlere sebäp bolýar.
16) Şekilleri we tomaşaçylary dolandyrmak
Segmentasiýa: müşderi görnüşi, ýurt, gurluş, programmanyň wersiýasy, AB-koort, gije-gündiziň wagty.
Kem-kemden giňeltmek: 1% içerki → 5% beta → 25% irki müşderiler → 100% hemme zat.
A/B-synaglary we baýdaklaryň şol bir mehanizminde önüm çaklamalary üçin muliwariantlylyk.
17) Amaly ssenariýalar
1-nji ssenariýa: täze töleg integrasiýasy
1. Ephemeral stend per PR, QA-regress. 2) Staging smoke + sandbox provayderi.
2. 'X-Cohort = internal' sözbaşy boýunça Prod canary 1%. 4) Geýtler: error rate töleg, p95 callback, üstünlikli amallaryň paýy.
3. 1→5→25→50→100%; zaýalananda - kill-switch.
2-nji ssenariýa: Kärendäniň täzelenmesi (JDK/Node/OS)
Blue-Green klaster derejesinde: Green gyzýar, "expand" migrasiýasy, flip, syn, problemalarda flip back.
Ssenariýa 3: ýokary-töwekgelçilikli UI-surat
Dark-launch + ficheflag diňe beta ulanyjylar üçin, UX-metrikleri ýygnamak, tomaşaçylary kem-kemden giňeltmek.
18) Gurallaryň iň az toplumy
CI: build, synaglar, gol, SBOM.
CD/GitOps: Argo CD/Flux/Spinnaker ýa-da ýerli bulut gurallary.
Routing: Ingress/Service Mesh (weighted, header/cookie based).
Ficheflages: LaunchDarkly/Unleash/OpenFeature/öz-özüni ýazmak hyzmaty.
Observability: metrikler, loglar, yzarlamalar, alertler; per stage.
TDM: gizlemek, siding, sintetika generatorlary.
Howpsuzlyk: syrlar, KMS, reýestr syýasaty, endikleri barlamak.
19) Gysgaça rezýume
Progressiw goýberiş - steýjingleriň tapgyrlaýyn goşulmagynyň we berk düzgüniniň utgaşmasydyr. Üstünlik dört sütüne esaslanýar: immutable artefaktlar, SLO awtogeýtleri, yzyna gaýtarylýan maglumat shemasy we çalt yza gaýdyp gelmek. Öňünden gurşaw, GitOps we ficheflags goşuň - goýberişiňiz öňünden aýdyp boljak, howpsuz we çalt bolar.