Disaster Recovery Plan
1) Vazifasi, sohasi va prinsiplari
Maqsad: futbolchilarning tartibga solish talablari, shartnomalari va umidlarini buzmagan holda IT-platformani falokatlardan keyin (o’sha, kiber, vendor, geosiyosiy) o’z vaqtida tiklashni ta’minlash.
Soha: mahsuldor muhit (o’yin konturi, to’lovlar, KYC/AML, antifrod, DWH/BI vitrinalari), integratsiya (PSP, KYC, CDN, studiyalar/agregatorlar), infratuzilma (bulutlar/K8s, tarmoqlar, sirlar/kalitlar), ma’lumotlar (DD, fayllar), logi).
Tamoyillar: safety-first, RTO/RPOni minimallashtirish, avtomatlashtirish va takrorlanuvchanlik (IaC), «standart bo’yicha isbotlanuvchanlik», muntazam mashg’ulotlar.
2) Tizimlarni tasniflash va tiklash maqsadlari
2. 1 Tanqidiylik darajasi
Tier-1 (hayotiy ahamiyatga ega): to’lovlar/kassautlar, core-o’yinlar, login/autentifikatsiya, KTS/sanksiyalar.
Tier-2: real vaqt tahlili, marketing/CRM, DWH hisoboti.
Tier-3: ichki portallar, yordamchi servislar.
2. 2 Maqsadli ko’rsatkichlar
RTO (Recovery Time Objective): xizmatni tiklash vaqti.
RPO (Recovery Point Objective): vaqt boʻyicha maʼlumotlarni yoʻqotish.
RTA (Recovery Time Actual )/RPA (Recovery Point Actual): haqiqiy qiymatlar hisobotlarda qayd etiladi.
MTO/MBCO: eng ko’p ishlamay qolish vaqti/xizmatning eng kam maqbul darajasi (degraded mode).
- Tier-1 - RTO ≤ 30-60 min, RPO ≤ 15 min; Tier-2 — RTO ≤ 4 ч, RPO ≤ 1 ч; Tier-3 — RTO ≤ 24 ч, RPO ≤ 24 ч.
3) DR strategiyasi va arxitektura
3. 1 Topologiyalar
Active-Active (ko’p mintaqa): minimal RTO/RPO, konsistentlik va qarama-qarshilik talab qiladi.
Active-Standby (issiq/issiq/sovuq): xarajatlar/tezlik balansi.
Ma’lumotlar va kalitlarning geo-bo’linishi: KMS/HSM per-region, BYOK, mustaqil replikatsiya yo’llari.
3. 2 Ma’lumotlar va bekaplar
PITR (point-in-time recovery): tranzaksiya daftarlari, arxivlash oraliqlari ≤ Tier-1 uchun 5-15 daqiqa.
Snepshotlar/full-bekaplar: kundalik/soatlik, 3-2-1 sxemasi bo’yicha saqlash (3 nusxa, 2 tashuvchi, 1 offlayn/offsayt).
Immutabellik: WORM/obyekt loklari, imzo/artefaktlar xesh-zanjirlari.
Tiklash katalogi: bekaplar inventari, yaxlitligi, yaroqlilik muddati, test shriftlari.
3. 3. Ilovalar va integratsiya
Statles Services: IaC/CI orqali tezkor joylashtirish.
Statful komponentlari: kelishilgan snapshotlar, ishga tushirish ketma-ketligini orkestrlash.
Integratsiyalar (PSP/KYC/agregatorlar): ikki baravar credenshl, fallback-endpointlar, imzolangan vebxuklar, qayta yetkazib berishni nazorat qilish (idempotentlik).
4) Tiklash tartibi (umumiy runbook)
1. DR stsenariysini e’lon qilish → DR Incident Commander (DR-IC) ni tayinlash, war-roomni ishga tushirish.
2. Shikastlanishlarni baholash: shikastlangan hududlar/quyi tizimlar, dolzarb RTA/RPA, feyloverni faollashtirish to’g "risidagi qaror.
3. Izolyatsiya/konteynment: dastlabki sabablarni blokirovka qilish (tarmoq ACL, sirlar, provayderni uzib qo’yish).
- tarmoq/sirlar/KMS →
- DB/saqlash/kesh →
- API/services → front/CDN → tashqi integratsiyalar.
- 5. Yaxlitligini tekshirish: kontr. summalar, «quruq» so’rovlar, health-namunalar.
- 6. Moliya/o’yinlarni rekonciliatsiya qilish: to’lovlar, stavkalar, balanslarni solishtirish, operatsiyalarni idempotent takrorlash.
- 7. Kommunikatsiyalar: status-sahifa, o’yinchilar/sheriklar/tartibga soluvchilar; yangilanish vaqti.
- 8. Kuzatish va barqarorlashtirish: normal holatga kelganda degradatsiyalarni deaktivatsiya qilish.
- 9. Post-mortem: RCA, CAPA, DRP yangilanishi.
5) Ixtisoslashtirilgan runbooks (parchalar)
5. 1 Asosiy mintaqani yo’qotish (Active-Standby → Standby)
yaml trigger: "loss_of_region_primary OR quorum_fail >= 5m"
prechecks:
- "secondary region green"
- "replication_lag <= 15m"
steps:
- DR-IC approves region_failover
- Platform: GSLB switch → secondary
- Data: promote replicas, enable PITR streams
- Apps: redeploy with region vars; warm caches
- QA: smoke tests (login, deposit, bet, payout)
- Comms: status-page + partner notice rollback: "switch-back after 60m stability window"
5. 2 Korrupsiya DB/PITRdan tiklash
yaml trigger: "data_corruption_detected OR accidental_drop"
steps:
- Freeze writes (feature flag), snapshot evidence
- Restore to timestamp T (<= RPO)
- Reindex/consistency checks
- Replay idempotent events from queue (from T)
- Reopen writes in throttle mode validation: ["checksum_ok", "balance_diff=0", "orders_gap=0"]
5. 3 PSP degradatsiyasi
yaml trigger: "auth_rate_psp1 < baseline-3σ for 15m"
steps:
- Route X%→psp2, cap payouts, enable manual VIP
- Reconciliation plan T+0, alerts Finance
- Notify players in cashier; vendor escalation
6) Ma’lumotlarning yaxlitligi va reconciliation
Moliya: depozitlar/to’lovlar/vositachilik haqlarini solishtirish, bildirishnomalar va vebxuklarni deduplikatsiya bilan qayta jo’natish (idempotency-keys).
O’yin konturi: raundlar holatini tiklash, zarurat bo’lganda hisob-kitoblarni takrorlash, ikki baravar hisobdan chiqarish/hisoblashdan himoya qilish.
Jurnallar/audit: WORM-loglarni «oldin/keyin», signatura/xeshlarni taqqoslash, ziddiyatlar haqida hisobotlar.
DPO/komplayens hisoboti: PIIga ta’sir qilgan taqdirda - masshtabni, taymlaynni va bildirishnomalarni qayd etish.
7) asosiy texnologiyalar uchun DR (misollar)
DBD (relyasion): sinxron/asinxron replikatsiya, WAL, fast-promote slotlari, issiq stendbaylar.
NoSQL/keshlar: multiklaster, TTL-nogironlik, sovuq to’ldirish, qarama-qarshiliksiz cross-region write-dan voz kechish.
Navbatlar/oqimlar: ko’zgu topiklari/klasterlari, siljishlarni nazorat qilish, iste’molchilarning deduplikatsiyasi.
Obyekt ombori: versiyalash, «bunker» ga replikatsiya qilish, obʼektlar inventari va retention siyosati.
CI/CD/artefaktlar: reyestrlar nusxalari, artefaktlar imzosi, kritik konteynerlarning oflayn nusxalari.
Sirlar/kalitlar: KMS per-region, mustaqil ildiz kalitlari, jurnallash bilan break-glass va TTL.
8) DRda xavfsizlik va maxfiylik
Eng kichik huquqlar printsipi: alohida rollar/profillar (JIT/PAM) bilan DR-kirish.
Immutable backaplar: offlayn/offsayt, tiklash va shifrlash testi.
Regulyator oynalari: hodisalarni qayd etish va xabarnomalar to’g "risidagi qaror (regulyator/bank/PSP/foydalanuvchilar) Legal/DPO bilan birgalikda.
Izlanuvchanlik: DR buyrugʻi harakatlarining toʻliq jurnali, taymline imzosi.
9) O’quv mashqlari va test turlari
Walkthrough/Review: hujjatni/rollarni/aloqalarni tekshirish (har chorakda).
Tabletop: mojarolarni hal qilish uchun skriptlarni «quruq» deb koʻrsatish.
Technical partial: alohida servis/DBni tiklash.
Full failover/switch-over: trafikni va maʼlumotlarni zaxira mintaqaga koʻchirish.
Chaos-kunlar (nazorat qilinadi): avtomatikani tekshirish uchun nosozliklar/nosozliklar in’ektsiyalari.
Har bir test/hisobot RTA/RPA, og’ishlar ro’yxati, CAPA va DRP yangilanishi bilan.
10) Metrika (KPI/KRI)
RTA/RPA vs RTO/RPO (Tier-1): ≥ 95% muvofiqlik.
DR Test Coverage: ≥ 2 ta to’liq DR-test/yil + muntazam qisman.
Time-to-First-Status: DR e’lon qilingandan keyin 15 daqiqa ≤.
Reconciliation Zero-Diff: barcha pul va oʻyin solishtirmalari farqsiz.
Backup Integrity: 100% tanlab tiklash chorakda muvaffaqiyatli boʻldi.
Config Drift: 0 primary/secondary (IaC - taqqoslash) orasidagi dreyf.
Security in DR: 100% DR- harakatlar jurnal va tasdiqlash bilan.
11) RACI (yiriklashtirilgan holda)
12) Chek-varaqlar
12. 1 DRga tayyorlik
- Yangilangan DR/Vendor/Regulyator aloqalari
- Yashil replikatsiya, PITR o’z ichiga olgan, backaplarning test shifrlari
- JIT/PAM, «break-glass» imkoniyatlari tekshirildi
- Feylover pleybuklar va o’zgaruvchan muhit validna
- PSP/KYC vebxuklari, muqobil yo’nalishlar
- Maqom sahifasi/xabar namunalari tayyor
12. 2 DR paytida
- DR-IC tayinlandi, war-room ochildi, voqealar taymline
- Izolyatsiya sabablari, skript tanlash, runbooks ishga tushirish
- Yaxlitlikni tekshirish, salomatlik sinovlari, smoke testlar
- Birinchi ommaviy yangilanish ≤ 15 daqiqa; SLA bo’yicha sheriklar/regulyatorlarga bildirishnomalar
- Tekshirish uchun artefaktlarni tortib olish
12. 3 DR dan keyin
- Pul/o’yinlar va jurnallarni to’liq solishtirish
- Post-mortem, RCA, CAPA sanalari va egalari bilan
- DRP/BIA/kontaktlarni yangilash/IaC
- Takroriy fix test rejasi
13) Shablonlar (parchalar)
13. 1 Servis kartochkasi (DR-pasport)
yaml service: payments-api tier: 1 dependencies: [auth, ledger-db, psp1, psp2, kms-eu]
rto: "45m"
rpo: "15m"
backups: {pitr: true, snapshots: "hourly", immutability: "7d"}
failover: {mode: "active-standby", regions: ["eu1","eu2"]}
runbooks: ["rb_failover_region", "rb_psp_degradation"]
health_checks: ["/healthz","/readyz"]
13. 2 DR-test hisoboti (ko’chirma)
yaml test_id: DR-2025-10 scope: "Full switch-over eu1→eu2"
rta: "27m"
rpa: "11m"
issues:
- id: CAPA-117, desc: "долгое прогревание кэша", due: 2025-11-20, owner: SRE
- id: CAPA-118, desc: "устаревший webhook PSP#2", due: 2025-11-12, owner: Payments reconciliation: {finance: "ok", games: "ok"}
management_signoff: "2025-11-02"
13. 3 Maqom xabari namunasi
[UTC+02] Идет аварийное переключение в резервный регион. Игры доступны, выводы временно ограничены. Средства игроков в безопасности. Следующее обновление через 15 минут.
14) Joriy etish yo’l xaritasi (6-8 hafta)
1-2 haftalar: xizmatlar va qaramliklarni inventarizatsiya qilish, Tier tasnifi, RTO/RPO maqsadlari, topologiyalarni tanlash, DR-pasportlar.
3-4 haftalar: immutabellik/PITR/, maxfiy/KMS replikatsiyalarini amalga oshirish, runbooks va maqom tayyorlash.
5-6 hafta: qisman texnik testlar (BD/kesh/navbatlar), PSP/KYC/mintaqa stsenariylari bo’yicha tabletop.
7-8 hafta: full switch-over (iloji boricha), RTA/RPA, CAPA hisoboti, DRP yangilanishi va muntazam testlar rejasi.
15) Wiki’ning boshqa bo’limlari bilan integratsiya qilish
Bilan bog’lash: BCP, Xavflar reyestri, Hodisa-menejment, Loglar siyosati (WORM), TPRM va SLA, ISO 27001/27701, SOC 2, PCI DSS, RBAC/Least Privilege, Parol siyosati va MFA, Boshqaruv tahrirga qarang.
TL; DR
DRP ishchisi = Tier bo’yicha aniq RTO/RPO → Active-Active/Standby arxitekturasi + immutable backaplar/PITR → takrorlanadigan runbooks va feilover → pul/o’yinlarni reconciliation → muntazam mashg’ulotlar va CAPA. Shunda har qanday katta nosozlik boshqariladigan protseduraga aylanadi, qayta tiklash vaqti va regulyatorlar va o’yinchilar uchun nol kutilmagan hodisalar.