Progressiv reliz va steyjinglar
(Bo’lim: Arxitektura va Protokollar)
1) Nima uchun progressiv yetkazib berish
«dev → test → staging → prod» klassik sxemasi xavfsizlikni kafolatlamaydi: ishlab chiqarishga qanchalik yaqin bo’lsa, nomuvofiqlik xavfi shunchalik yuqori bo’ladi. Progressiv reliz blast radiusni minimallashtiradi, trafikning/auditoriyaning ulushini asta-sekin oshiradi va yechimlarni metriklar va SLO bilan mustahkamlaydi. Bu steyjinglar bilan birga: nol duntaym, tezkor qaytish, jarayonning takrorlanuvchanligi va o’lchanadigan sifat nazorati beradi.
2) Atamalar
Steyjinglar (environments) - artefaktning hayot siklining rasmiy bosqichlari:’dev’,’ci’,’qa/test’,’staging/pre-prod’,’prod’, shuningdek ephemeral/preview fich-novdalar ostida o’rab olingan.
Progressiv reliz (progressive delivery) - versiya/fich bosqichma-bosqich qo’shilishi: canary, foizli rollout, ring-deploy, ficheflaglar, dark-launch, shadow-trafik.
Geytlar - avtomatik ruxsat mezonlari (error rate, p95, biznes metrika, SLO bo’yicha xatolar budjeti).
Artefaktni targ’ib qilish - bir xil imzolangan bildni steyjinglar (immutable artifact) o’rtasida targ’ib qilish.
3) Atrof-muhit xaritasi va ularning vazifasi
3. 1 Bazaviy
Dev (lokal/qum qutisi): tezkor sikllar, qaramlik tugmalari, minimal xavfsizlik.
CI (integratsiya stendlari): unit/integratsiya/kontrakt testlari, statik tahlil, SCA/SAST.
QA/Test: e2e, yuklama, regression. Ma’lumotlar - sintetik yoki niqoblangan.
Staging/Pre-prod: maksimal «prod kabi»: xuddi shu konfiguratsiya, bayroqlar, limitlar, fon ishlov berish.
Prod: jangovar trafik, SLO/SLI, alertlar, qaytish rejalari.
3. 2 Qo’shimcha
Ephemeral/Preview per PR: pull-request stendining avtostroidasi, merge/close.
UAT/Sandbox biznes jamoalari uchun: qabul qilish, namoyishlar, o’qitish stsenariylari.
Performance lab: izolyatsiyalangan yuklash tajribalari (trafik generatorlari, ma’lumotlar nusxalari).
4) Barqaror steyjinglar prinsiplari
Kod sifatida konfiguratsiya (IaC, GitOps), atrof-muhitning dreyfi kod va avtomatik validatsiyalar bilan chiqarib tashlanadi.
Idempotent, imzolangan artefaktlar (SBOM, provenance, attestations), yagona build → multi-stage deploy.
Oziq-ovqat pariteti: rantaym versiyalari, limitlar, tarmoq siyosati, kiritilgan bayroqlar. Farqi - faqat sir/ma’lumotlar.
TDM (test data management): sintetika/maskalash, migratsiya va sidlar payplaynning bir qismi sifatida.
by design: reliz belgilari, loglar/trassalar korrelyatsiyasi, barcha bosqichlarda yagona dashbordlar.
5) Progressiv reliz modeli
5. 1 Yondashuv vositalari
Ficheflaglar: segmentlar bo’yicha funksionalni yoqish/o’chirish (mamlakat, mijoz, akaunt, random seed).
Canary: 1-5-10-25-50-100% trafik bilan har qadamda.
Ring-deploy: halqa bo’ylab kengaytirish (internal → employees → beta → public).
Blue-Green: platformaning yirik yangilanishlari uchun atom flipi.
Dark-launch: foydalanuvchiga ta’sir qilmasdan yashirin ijro (metrik yig’ish).
Shadow-traffic: soʻrovlarni foydalanuvchiga javobsiz yangi versiyada oynalash.
5. 2 Avtomatik geytlar
Texnometrika: error rate, p95/p99, saturation, queue lag.
Biznes-metrika: avtorizatsiya, to’lov konvertatsiyasi, huni qadamlari bo’yicha rad etish.
SLO/error budget: xatolar byudjeti tezda yonganda tez toʻxtash.
Statistik ahamiyatga ega: shovqin bo’yicha qaror qabul qilmaslik uchun minimal vaqt/trafik hajmi.
6) CI/CD namunaviy zanjiri (referens)
1. Commit/PR → Build: yagona rasm/paket, imzo, SBOM.
2. CI-тесты: unit/integration/contract + security (SAST/SCA/secret-scan).
3. Ephemeral preview: Qo’lda tekshirish uchun stendni avtomatik ravishda ko’tarish/UX.
4. QA/Test: e2e + yuk + xaos-testlar (ixtiyoriy).
5. Staging: smoke, kritik foydalanuvchi yo’llarining regressiyasi, DB migratsiyasini tekshirish.
6. Prod canary: 1-5% trafik → geyta → 10-25-50-100%.
7. Orqaga qaytish/tugallash: muammolar bo’lganda - avto-rollback; muvaffaqiyatli bo’lganda - eski versiyani qisqartirish.
7) Ma’lumotlar va sxemalarni boshqarish
Expand-migrate-contract: teskari moslashuvchi migratsiyalar, fon ko’chirmalari, chek pointlari, idempotentlik.
Ikki pog’onali yozuvlar (dual-write) yoki «tranzaksion outbox».
Masking/staging uchun prod-ma’lumotlarni tanlash (yuridik va texnik jihatdan xavfsiz).
Keshlar/sessiyalar: tashqi omborxonalar, iliq start, flip-da nogironlik siyosati.
8) Xavfsizlik va muvofiqlik
Sirlar: KMS/Secrets Manager, rotation, eng kichik imtiyozlar printsipi.
Steyjinglarni izolyatsiya qilish: tarmoqlar/akkauntlar/loyihalar; prod bilan tasodifiy sinxronlashtirishni taqiqlash.
Reliz auditi/treysi: kim/nima/qachon chiqdi, artefaktning versiyasi, change approval.
Dasturiy ta’minotni yetkazib berish: imzoni tekshirish, reyestrlarga ishonch siyosati, «latest» ni taqiqlash.
9) Kuzatish va foydalanish
Yagona belgi formati:’{service, version, commit, stage, region, ring}’.
Baseline bilan taqqoslash: kanareyka vs bitta grafikdagi barqaror versiya.
SLO bo’yicha alertlar: oziq-ovqat va texnik, canary uchun turli chegaralar.
Post-release monitoring: kechiktirilgan effektlar uchun kamida N soat/sutka.
10) Qaytishlar va avariyalar rejalari
Tugma/qaytarish buyrug’i - payplaynning bir qismi (qo’lda emas).
Bayroqning reversi deployga (kill-switch) qaraganda tezroq.
Ma’lumotlar bo’yicha kontrmerlar: idempotentli qayta ishlash, kompensatsiya qiluvchi tranzaksiyalar, deduplikatsiya.
Hodisa pleybuklari: kim qaror qabul qiladi, aloqa kanallari, xabar shablonlari.
11) Qiymati va unumdorligi
Ephemeral-atrof-muhit agressiv ravishda avto olib tashlansa, pulni tejaydi.
Blue-Green chiqarilganda bir necha baravar qimmat; canary arzonroq, ammo etuk metrlarni talab qiladi.
Yuk va reliz oynasi bo’yicha avtoskeyling; prevyu-stendlar uchun kvotalar.
12) Tez-tez anti-patternlar
Atrof-muhitning siljishi: stendlardagi qo’lda tuzatishlar, «bu mayda narsa».
O’rab olish uchun bitta bild: rebuild per stage → «qayta ishlab chiqarilmaydigan» prod-baglar.
Dolzarb bo’lmagan ma’lumotlar bo’yicha testlar: naslga tushadigan «yashil» testlar.
Geytlarning yo’qligi: SLO o’rniga his-tuyg’ularga ko’ra relizlar.
Blue-Green uchun DNSdagi uzoq TTL; qisman trafikda stickiness yo’qligi.
canary/stable uchun mos kelmaydigan DM sxemalarini aralashtirish.
13) Chek-varaqlar
Stagingda reklama qilishdan oldin
- Rasm imzolangan, SBOM yig’ilgan, krit darajasidagi zaifliklar yopilgan.
- BD migratsiyasi teskari (expand).
- Test ma’lumotlari niqoblangan/sintetik.
- Dashbordlar/alertlar yangi versiyaga tayyor.
Prodga chiqishdan oldin
- Qadamlar va chegaralar bilan canary rejasi tasdiqlandi.
- Kill-switch va qaytarish rejasi stagingda tekshirildi.
- Traffic shadow yoki dark-launch (iloji boricha).
- On-call xabardor qilingan, oynaning vaqti kelishilgan.
Chiqarilgandan keyin
- SLO monitoringi N soat barqaror.
- Tozalash/koʻchirish «contract» qoʻllanilgan.
- Pleybuklarning retrospektivi va yangilanishi.
14) Arxitektura bo’yicha joriy etish variantlari
Monolit: prevyu-stendlar + Blue-Green, chichlar esa bayroqlar orqali; URL/cookie boʻyicha cheklangan canary.
Mikroservislar: canary/ring tabiiy; kontraktlarni qat’iy boshqarish (CDC), APIni versiyalash.
Stateful Services: Blue-Green isitish va aniq migratsiya rejasi bilan; alohida navbatlar/topiklar per version.
15) GitOps bilan referens payplayn (eskiz)
App (kod) repozitori artefaktni chiqaradi → manifestni env repozitsiyasiga qo’yadi.
GitOps agent (Argo CD/Flux)’env/dev’,’env/qa’,’env/staging’,’env/prod’.
Promosyon - pull-request orqali kerakli steyj katalogiga; merj shatak va geytlarni triggerlaydi.
16) Fichlar va auditoriyalarni boshqarish
Segmentatsiya: mijoz turi, mamlakat, qurilma, ilova versiyasi, AB-koort, sutka vaqti.
Bosqichma-bosqich kengaytirish: 1% ichki → 5% beta → 25% erta mijozlar → 100% hamma.
A/B-eksperimentlar va xuddi shu bayroq mexanizmidagi mahsulot gipotezalari uchun mulivariantlik.
17) Amaliy stsenariylar
Stsenariy 1: yangi toʻlov integratsiyasi
1. Ephemeral stend per PR, QA-regress. 2) Staging smoke + sandbox provayderi.
2. Prod canary 1%’X-Cohort = internal’sarlavhasi boʻyicha. 4) Geytlar: error rate to’lov, p95 callback, muvaffaqiyatli tranzaksiyalar ulushi.
3. 1→5→25→50→100%; degradatsiyada - kill-switch.
Stsenariy 2: Rantaym yangilanishi (JDK/Node/OS)
Blue-Green klaster darajasida: Green isinadi, «expand» migratsiyasi, flip, kuzatish, muammolarda flip back.
Stsenariy 3: high-risk UI-fich
Dark-launch + ficheflag faqat beta-foydalanuvchilar uchun, UX-metrlarni yig’ish, auditoriyani bosqichma-bosqich kengaytirish.
18) Asboblarning minimal to’plami
CI: build, testlar, imzo, SBOM.
CD/GitOps: Argo CD/Flux/Spinnaker yoki mahalliy bulutli asboblar.
Routing: Ingress/Service Mesh (weighted, header/cookie based).
Ficheflaglar: LaunchDarkly/Unleash/OpenFeature/oʻz-oʻzini yozish xizmati.
Observability: metriklar, loglar, trastirovkalar, alertlar; per stage yagona dashbordlari.
TDM: niqoblash, siding, sintetik generatorlar.
Security: sirlar, KMS, registrlar siyosati, qaramlikni tekshirish.
19) Qisqacha xulosa
Progressiv reliz - steyjinglarning bosqichma-bosqich kiritilishi va qatʼiy intizomining uygʻunlashuvidir. Muvaffaqiyat to’rtta ustunga asoslanadi: immutable artefaktlar, SLO avtogeytlari, qaytariladigan ma’lumotlar sxemasi va tezkor orqaga qaytish. Oldindan aytiladigan muhit, GitOps va ficheflaglar qo’shing - chiqarilishingiz oldindan aytib bo’ladigan, xavfsiz va tez bo’ladi.