GH GambleHub

Staging-payplaynlar va relizlar

1) Nima uchun staging-paypline kerak?

Staging-paypline - bu artefaktning PR dan ishlab chiqarishgacha sifat va xavfsizlikni tekshirish bilan standartlashtirilgan yo’li. Maqsadlar:
  • yig’ish va relizning takrorlanuvchanligi;
  • tezkor va oldindan aytib bo’ladigan fidbek;
  • tavakkalchilikni minimallashtirish (progressiv yoyilishlar, ficheflaglar, qaytishlar);
  • komplayensga muvofiqligi va o’zgarishlarni nazorat qilish.

2) Yetkazib berishning etalon oqimi (high-level)

1. PR → avtomatik tekshiruvlar (lint, unit, SAST, litsenziyalar).
2. Build → determinizatsiya qilingan rasm/paket, imzo va SBOM.
3. Test on Ephemeral → per-PR prevyu-atrof-muhit.

4. Merge → Staging:
  • tasvir daftari;
  • kontrakt-, integratsion, e2e-testlar;
  • DAST/IAST, regress, yuk smoke;
  • qo’lda ishlatiladigan UAT/QA.
  • 5. Release Candidate (RC) → freeze window → Prod (canary/blue-green).
  • 6. Post-deploy tekshirish va SLO/error budget bo’yicha avtootkat.
  • 7. Runbook/Changelog → reliz va retrospektivni yopish.

3) Piplaynning standartlashtirilgan YAML-shabloni (ushlab turish)

yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]

verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog

4) Gates va tayyorlik mezonlari (Quality Gates)

Kod va xavfsizlik: lintlar, qoplama, SAST/SCA, qaramlik siyosati, «critical/high» ning yo’qligi.
Kontraktlar: sxemalarning mosligi (API/hodisa), Pact/Buf tekshiruvi.
Testlar: unit/integration/e2e p-o’tish chegarasi, barqarorlik (flake-rate).
Yuki smoke: p95/p99 byudjet doirasida, degradatsiyalar yoʻq.
DAST/IAST: hech qanday tanqidiy findings, sezgir usullar uchun pen-test stsenariylari mavjud emas.
Observability: «as code» dashbordlari/alertlari yangilandi, runbooks ilova qilindi.
CAB/UAT: reliz oynalarida tasdiqlash (agar regulyator/biznes talab qilsa).


5) Reliz strategiyalari

Feature Flags - redeploy boʻlmagan fich mantiqiy qoʻshilishi; «dark launch» va A/B. imkoniyati

Canary - trafik ulushini bosqichma-bosqich oshirish (5% → 25% → 50% → 100%), SLO va anomaliyalar bo’yicha avtomatik roll-forward/rollback.
Blue-Green - parallel muhitlar; tezkor o’tkazgich, oddiy orqaga qaytish.
Shadow/Traffic Mirroring - foydalanuvchilarga ta’sir qilmasdan yangi versiyaga passiv trafik tashlash.
Ring Deployments - mintaqalar/tenantlar bo’yicha to’lqinlar.


6) Relizlarning qaytishi va xavfsizlik siyosati

Triggerlar bo’yicha avtootkat: o’sish error-rate, ostonadan yuqori p95/TTFB, o’sish 5xx/timeout, DLQ ko’tarilishi.
Qoʻlda orqaga qaytish: chat-botda ’/rollback <service> <sha>’buyrugʻi, reliz-konsolda bitta tugma.
Freeze windows: tanqidiy voqealarni (turnirlar/eng yuqori oʻyinlar) chiqarish taqiqlangan.
Changelog & Release Notes: PR, SemVer, komponentlar, migratsiyalar.


7) DB migratsiyasi va muvofiqlik

Expand → Migrate → Contract:

1. mos keladigan maydonlarni/indekslarni qoʻshish;

2. ilova bo’yicha (ikkala sxemada ham o’qiydi/yozadi);

3. fon joblari bilan ma’lumotlarning ko’chishi;

4. eskisini olib tashlash.

Sxemalar versiyalashtiriladi, idempotent migratsiyasi, dry-run staging.

Protect destructive SQL: require flag/approval, avtomatik bekaplar va plan-check.


8) Fizeflaglar va progressiv faollashtirish

Ops bayroqlarini (xavfsiz foydalanish uchun) va product bayroqlarini ajrating.
Auditoriya bo’yicha kiritish: foiz, geo, tenant, rol.
Bayroqlarning metrikasi: konversiyaga ta’siri, latency, xatolar.
Muammolar bo’lganda - bayroqni orqaga qaytishdan tezroq o’rash.


9) Observability relizning bir qismi sifatida

Treyslar: gatewaydan DB/navbatlargacha’trace _ id’orqali; eski/yangi versiyalarni solishtirish.
Metriklar: p50/p95/p99, error-rate, RPS, saturation, DLQ, retray, Time-to-Wallet/Business KPI.
Loglar: strukturalangan, PII niqoblangan, «request _ id» korrelyatsiyasi.
Alertlar: SLO-byudjet, on-call shoshilinch sahifalari, relizning avto-sarlavhasi.


10) Yetkazib berish zanjiri xavfsizligi (supply chain)

Har bir bild uchun SBOM, saqlash va reliz tegiga bog’lash.
Tasvir imzosi (cosign), klasterda tekshirish (policy admission).
SLSA-attestatsiyalar: artefaktning isbotlanadigan kelib chiqishi.
Policy-as-Code (OPA/Conftest): infratuzilma PR uchun deny-by-default.
Sirlar: faqat KMS, qisqa yashaydigan tokenlar, payplaynlarda rotatsiyalar.


11) O’zgarishlarni nazorat qilish va jarayonlar

RFC → CRQ → CAB: xulq-atvor/kontraktlarning hujjatlashtiriladigan o’zgarishini oldindan kelishib olamiz.
Release Calendar: mahsulotlar/hududlar/buyruqlar boʻyicha koʻrinadigan oynalar.
Runbooks: har bir komponent uchun - yoqish/qaytarish/diagnostika protseduralari.
Postmortem/Retro: muhim relizlardan keyin - tahlil va harakatlar.


12) Staging uchun test profillari

Kontrakt (API/Events): mos kelmaydigan oʻzgarishlarni bloklaydi.
Integratsiya/e2e: «depozit», «KYC», «chiqish».
Yuklama smoke: reprezentativ cho’qqilar; resurs limitlarini kuzatib boramiz.
Xaos-stsenariylar: provayderni uzib qo’yish, latentlikni oshirish, tarmoq flappinglari.
Sintetik monitoring: jadval bo’yicha «sinov» tranzaksiyalari.


13) Reliz maqsadlarining Makefile misoli (parcha)

makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog

14) O’zbekiston Respublikasining

Dev/Team: kod sifati, testlar, migratsiyalar, runbooks.
QA: UAT/regression stsenariylari, gates’da sifat nazorati.
SRE/Platforma: payplaynlarning ishonchliligi, kuzatuv, siyosat.
Release Manager: taqvim, oynalar, CAB, yakuniy yechim.
Security: SAST/DAST/SCA, supply-chain, maxfiy siyosat.


15) Relizlarning yetuklik modeli

1. Bazaviy - qo’lda tekshirish, kamdan-kam relizlar, orqaga qaytish qiyin.
2. Ilgʻor - standartlashtirilgan CI/CD, staging-kontur, canary/blue-green, tez-tez relizlar.
3. Ekspert - tenantlar/hududlar bo’yicha progressiv yetkazib berish, feature flags-first, policy-as-code, SLO bo’yicha avtootkat, to’liq izlanish va SLSA.


16) Joriy etish yo’l xaritasi

M0-M1 (MVP): payplayn namunasi, build + sign + SBOM, staging-deploy, bazaviy testlar va gates.
M2-M3: canary/blue-green, prevyu per-PR, kontrakt-testlar, DAST, synthetic checks.
M4-M6: feature flags platforma, shadow traffic, policy-as-code, avtootkat, release calendar + CAB-workflow.
M6 +: hududlar bo’yicha ring-deployments, SLSA-attestatsiya va qat’iy admission, runbooks to’liq avtomatlashtirish.


17) Mahsulot chiqarishdan oldingi chek-varaq

  • Rasm imzolangan, SBOM yuklangan va chiqarishga bog’langan.
  • Shartnomalar mos keladi, testlar yashil, e2e stagingda o’tdi.
  • Migratsiyalar tekshirildi (dry-run), bekap tayyor, qaytarish rejasi tasvirlangan.
  • Dashbordlar/alertlar yangilandi, SLO geytlar faol.
  • Runbook va Changelog nashr etildi, chiqarish oynalari kelishilgan.
  • Feature flags progressiv faollashtirish uchun sozlangan.
  • Freeze-cheklovlarga rioya qilindi, on-call tayyor.

Qisqacha xulosa

Yaxshi loyihalashtirilgan staging-paypline relizlarni boshqariladigan tartibga aylantiradi: yagona shablonlar, aniq quality gates, himoyalangan yetkazib berish zanjiri, progressiv yoyilishlar va kuzatish xavfni kamaytiradi va sifat va biznes-metriklar ustidan nazoratni saqlab qolgan holda ishlab chiqarishga o’zgarishlarni kiritish vaqtini qisqartiradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.