Rolbeklar va barqarorlikni tiklash
(Bo’lim: Texnologiyalar va infratuzilma)
Qisqacha xulosa
Orqaga qaytish - bu ma’lumotlarni yo’qotish va SLO buzilishi xavfi minimal bo’lgan oxirgi barqaror versiyaga boshqariladigan qaytishdir. Ishonchli jarayon quyidagilarni o’z ichiga oladi: SLO signallari, aniq geytlar va orqaga qaytish mezonlari, almashtirish mexanizmi (GitOps/Ingress/mesh), mos ma’lumotlar sxemasi, izolyatsiyalangan konfigurlar/sirlar/keshlar, runabuk-i va hodisadan keyingi yaxshilash sikli.
1) Qachon haydash (ishga tushirish mezonlari)
SLO/biznes-geytlar: p95/99 chegaradan yuqori, error-rate ↑, to’lovlar/stavkalar konversiyasining pasayishi, PSP taymautlarining o’sishi.
Texnik signallar: podlarni bo’yash, xotiraning chiqib ketishi, navbatlarning o’sishi, tokenlarning degradatsiyasi (LLM), Edge-da 5xx.
Ma’lumotlar xavfi: noto’g "ri migratsiyalar, kelishilmagan replikalar, orfan tranzaksiyalar/to’lovlar.
Xavfsizlik/PII: oqish shubhasi - darhol orqaga qaytish/izolyatsiya qilish.
Qoida: agar chegaradan tashqarida 2 + kalit metrika boʻlsa> N daqiqa - orqaga qaytish boshlanadi.
2) Rolbeklar turlari
1. Ilova: konteyner/paket oldingi tagga qaytishi.
2. Fichlar: feature flag/kill-switch orqali darhol oʻchirish.
3. Marshrut: ogʻirlikni barqaror versiyaga qaytarish (canary → stable) yoki Blue → Green.
4. Ma’lumotlar bazasi: mantiqiy qaytish (kompensatsiya), sxemani bosqichma-bosqich qaytarish; PITR - oxirgi chora.
5. Infratuzilma: manifestlarning/Terraform-rejaning orqaga qaytishi; tarmoq/WAF konfiguratsiyalarini qaytarish.
6. Ma’lumotlar/kesh/navbatlar: xabarlarni tashlash/nogironlashtirish/takrorlash; version keshlari.
3) Xavfsiz orqaga qaytishning arxitektura prinsiplari
Sxemalarning mosligi: expand → migrate → contract strategiyasi (orqaga qaytish expand va contract oʻrtasida mumkin).
Izolyatsiya qilingan qaramliklar: taftishlar uchun alohida sirlar/konfigurlar/keshlar/navbatlar.
Idempotent operatsiyalar: migratsiya va jobni takrorlash xavfsiz.
Artefaktlarning immutabelligi: tasvirlar, chartlar, SQL skriptlari - versiyalangan va imzolangan.
GitOps haqiqat: joriy versiya va marshrutlash manifest-repozitoriyada qayd etilgan.
4) Orqaga qaytish mexanikasi (Kubernetes/GitOps)
Argo Rollouts (ogʻirlikni qaytarish)
yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: api }
spec:
strategy:
canary:
steps:
- setWeight: 5
- pause: { duration: 10m }
in case of analysis failure → automatic rollback to stable
GitOps-qaytarish (gʻoya)
git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision
NGINX: stable tezkor svitch
nginx map $cookie_canary $to_canary { default 0; 1 1; }
upstream stable { server api-stable:80; }
upstream canary { server api-canary:80; }
server {
location / {
if ($to_canary) { proxy_pass http://canary; }
proxy_pass http ://stable; # removed canary cookie - instant rollback
}
}
5) DB rolbeki va ma’lumotlarni himoya qilish
Expand → Migrate → Contract:- Expand: Yangi maydonlarni/indekslarni qoʻshing, kod eski va yangi sxemani qoʻllab-quvvatlaydi.
- Migrate: kod yangi sxemaga yozishni boshlaydi, eskisini buzmaymiz.
- Contract: eskisini faqat barqarorlashgandan keyingina olib tashlaymiz.
- PITR/snapshotlar: mantiqiy kompensatsiya mumkin boʻlmagandagina foydalaning.
- Kompensatsiyalar: qo’shimchalar/balanslar/to’lovlarni tuzatish uchun alohida skriptlar/joblar.
- O’qish-only derazalar: tanqid qilinganda - holatni «muzlatish» uchun yozuvni vaqtincha blokirovka qiling.
sql
-- expand
ALTER TABLE wallet ADD COLUMN bonus_balance NUMERIC DEFAULT 0 NULL;
CREATE INDEX CONCURRENTLY idx_wallet_bonus ON wallet(bonus_balance);
-- migrate in code, two-sided write
-- contract (after stabilization)
ALTER TABLE wallet DROP COLUMN legacy_bonus_balance;
6) Qaytishdagi navbatlar va keshlar
Version kesh: prefiksli kalitlar (’v2:’) → xavfsiz birga yashash.
Nogironlik: qaytishda - ommaviy tozalash’v2:’, qaytarish’v1:’.
Navbatlar: versiya bo’yicha partiyalar/topiklar; «nazorat nuqtasidan» xabarlarni takrorlash.
Dedublikatsiya/idempotentlik: dublsiz qayta ishlash uchun idempotentlik kalitlari.
7) SLO-geytlar va avto-qaytishlar
Metriklar: p95/99, error-rate, saturations (CPU/IO/GPU), queue depth, tokenlar/sek, to’lovlar konvertatsiyasi.
Siyosat (misol):
if p95_latency_ms > 250 for 5m OR error_rate > 1. 5% for 3m OR payment_conv < baseline-0. 3%
then rollback release && open incident && freeze deploys
8) Runabuki (playbooks)
A) Chiqarilgandan keyingi o’sish p99 va 5xx
1. Stop promote (canary/blue-green ni muzlatish).
2. Barqaror taftish uchun Switch traffic.
3. Kesh/navbat/PSP kechikishlarini tekshirish.
4. Diagnostikani olib tashlash: loglar, profillar, mijozlar/sxemalar versiyasi.
5. Aloqa: ChatOps, status-kanal, hodisa-kartochka.
6. Tuzatish harakatini boshlash: patch/issiq fiks/chichni bekor qilish.
B) DB migratsiyasida xatolik
1. Freeze writes (read-only, qisqacha).
2. Ilovaning qaytishi → barqaror versiya (eski sxema bilan mos keladi).
3. Kompensatsiya/rollback skriptini bajarish.
4. Yozuvni muzlatish; dreyf/xatolarni kuzatish.
C) To’lovlarning degradatsiyasi (PSP)
1. PSP yoʻnalishini oldingi yoʻnalishga oʻtish.
2. Protsessing relizining qaytishi.
3. Tugallanmagan barcha to’lovlarni solishtirish, idempotent kalitlar bilan takrorlash.
D) LLM/tavsiyalar degradatsiya
1. Yangi model/parametrlarni oʻchirish (feature flag).
2. Oldingi endpoint/ogʻirlikni qaytarish; yangi taftish KV keshini tozalash.
3. Tokens/s, birinchi token latency, toksikligini tekshirish.
9) Kommunikatsiyalar va relizlarni muzlatish
Freeze window: qaytishdan keyin - RCA/fixgacha relizlar pauzasi.
Yagona kanal: maqom-yangiliklar, harakatlar xronologiyasi, kim nima qilgan.
Steykxolderlar: mahsulot/CS/to’lovlar/yuristlar (PII da).
10) Post-hodisa: tahlil va profilaktika
RCA (ayblovlarsiz): asosiy sabab, nega geytlar ishlamaganligi (agar ishlamasa) omillarining hissasi.
Harakatlari: migratsiya testlari, limitlar, ficheflag-geytlar, kuzatish.
SLO chegarasi: agar juda «yumshoq «/» qattiq »bo’lsa tuzatish.
Hujjatlar: runabuklarni yangilash, alertlar, mashg’ulotlar (game-day) qo’shish.
11) Asboblar va shablonlar
GitOps: Argo CD/Flux -’revert ’/’ rollback’commita versiyasi.
Progressive delivery: Argo Rollouts/Flagger - metriklar bo’yicha to’xtash/orqaga qaytish.
Edge/Ingress: og’irlik yo’nalishi, cookie-routing, tezkor svitch.
Feature flags: fractional rollout, kill-switch.
DB migratsiyasi: up/down, dry-run, throttling.
Observability: tayyor dashbordlar «release compare» (stable vs canary).
12) Qaytarishga tayyorlik chek-varaqasi
1. Version qilingan va imzolangan artefaktlar (tasvirlar/chartlar/SQL).
2. Ikki relsli konfiglar/sirlar/keshlar/navbatlar (versiya prefikslari).
3. expand → migrate → contract.
4. SLO-geytlari va avto-skatlari bilan kanar va ko’k-yashil relizlar.
5. Asosiy stsenariylarga Runabuki (to’lovlar/BD/kesh/LLM).
6. ChatOps tugmalari: ’/rollback’, ’/freeze’, ’/promote’.
7. Audit va logografiya: kim, qachon, nima orqaga siljidi; diagnostika artefaktlari.
8. Game-day mashqlari: muvaffaqiyatsizliklar va tiklanishlarni taqlid qilish.
9. Biznes va sapport bilan kommunikatsiyalar rejasi.
10. Bitta ekranda taqqoslash metrikasi (stable vs new).
13) Anti-patternlar
Kod yoyilgunga qadar buzuvchi migratsiyalar (teskari moslashuv yoʻq).
Versiyasiz umumiy kesh/navbatlar → «iflos» qaytarish.
GitOps/o’zgarishlar tarixi yo’qligi → «qo’lda» tahrirlash.
Geytsiz/telemetriyasiz kanar relizi → keyinchalik aniqlash.
Freeze va RCA’siz qaytish → hodisaning takrorlanishi.
Biznes-metriksiz faqat texnometrik monitoring (to’lovlar/stavkalar).
Barcha taftishlar uchun «umumiy sirlar» → hodisani ajratish qiyin.
Yakunlar
Ishonchli rolbek - bu «stop-kran» emas, balki relizlarga o’rnatilgan jarayon: versiya va mos kelish, izolyatsiya qilingan qaramliklar, SLO-geytlar, GitOps-reallik, avtomatik qaytarmalar va aniq runabuklar. Bunday yondashuv iGaming platformalariga tezda barqarorlikni qaytarish, maʼlumotlar va daromad yoʻqotishlarini minimallashtirish va har bir hodisani yaxshilash manbaiga aylantirish imkonini beradi.