Disaster Recovery Plan
1) Təyinatı, sahəsi və prinsipləri
Məqsəd: oyunçuların tənzimləmə tələblərini, müqavilələrini və gözləntilərini pozmadan fəlakətlərdən sonra İT platformasının vaxtında bərpasını təmin etmək.
Sahə: məhsuldar mühit (oyun dövrəsi, ödənişlər, KYC/AML, antifrod, DWH/BI vitrinləri), inteqrasiya (PSP, KYC, CDN, studiyalar/aqreqatorlar), infrastruktur (bulud/K8s, şəbəkələr, sirlər/açarlar), məlumatlar (DD, fayllar, loqlar).
Prinsipləri: safety-first, minimallaşdırma RTO/RPO, avtomatlaşdırma və reproduktivlik (IaC), «default sübut», müntəzəm təlimlər.
2) Sistemlərin təsnifatı və bərpa məqsədləri
2. 1 Kritik səviyyələr
Tier-1 (həyati): ödənişlər/kassautlar, core oyunlar, giriş/autentifikasiya, KUS/sanksiyalar.
Tier-2: real vaxt analitikası, marketinq/CRM, DWH hesabat.
Tier-3: daxili portallar, köməkçi xidmətlər.
2. 2 Hədəf göstəriciləri
RTO (Recovery Time Objective): xidmətin bərpasına qədər olan vaxt.
RPO (Recovery Point Objective): icazə verilən vaxt itkisi.
RTA (Recovery Time Actual )/RPA (Recovery Point Actual): faktiki dəyərlər, hesabatlarda qeyd olunur.
MTO/MBCO: Maksimum dayanma müddəti/minimum məqbul xidmət səviyyəsi (degraded mode).
- Tier-1 - RTO ≤ 30-60 dəq, RPO ≤ 15 dəq; Tier-2 — RTO ≤ 4 ч, RPO ≤ 1 ч; Tier-3 — RTO ≤ 24 ч, RPO ≤ 24 ч.
3) DR strategiyaları və memarlıq
3. 1 Topologiyalar
Active-Active (multi-region): minimum RTO/RPO, tutarlılıq və münaqişə tələb edir.
Active-Standby (isti/isti/soyuq): xərclər/sürət balansı.
Məlumat və açarların geo-ayrılması: KMS/HSM per-region, BYOK, müstəqil replikasiya yolları.
3. 2 Data və Backup
PITR (point-in-time recovery): əməliyyat jurnalları, arxivləşdirmə intervalları ≤ Tier-1 üçün 5-15 dəq.
Snepshots/full-backup: gündəlik/saat, saxlama sxemi 3-2-1 (3 nüsxə, 2 media, 1 offline/offsayt).
Immutability: WORM/obyekt locks, imza/hash-zəncir artefaktları.
Bərpa kataloqu: arxa inventar, bütövlük, son istifadə müddəti, test deşifrləri.
3. 3 Proqramlar və inteqrasiya
States Services: IaC/CI vasitəsilə sürətli yerləşdirmə.
Statful komponentləri: razılaşdırılmış snapshotlar, başlanğıc ardıcıllığının orkestrasiyası.
İnteqrasiyalar (PSP/KYC/aqreqatorlar): ikiqat credenshly, fallback-enpoints, imzalanmış vebhuks, təkrar çatdırılma nəzarəti (idempotent).
4) Bərpa proseduru (ümumi runbook)
1. DR Script elanı → DR Incident Commander (DR-IC) təyinatı, war-room başlamaq.
2. Zərərin qiymətləndirilməsi: təsirlənmiş bölgələr/alt sistemlər, aktual RTA/RPA, feyloverin aktivləşdirilməsi haqqında qərar.
3. İzolyasiya/konteynment: ilkin səbəblərin bloklanması (şəbəkə ACL, sirlər, provayderin bağlanması).
- şəbəkə/sirləri/KMS →
- DB/saxlama/cache →
- API/xidmətlər → ön/CDN → xarici inteqrasiya.
- 5. Bütövlük testi: kontr. məbləğlər, «quru» sorğular, sağlamlıq testləri.
- 6. Maliyyə/oyunların Reconciliation: ödənişlərin, dərəcələrin, balansların müqayisəsi, əməliyyatların idempotent təkrarlanması.
- 7. Rabitə: status-səhifə, oyunçular/tərəfdaşlar/tənzimləyicilər; timline yeniləmələr.
- 8. Müşahidə və sabitləşdirmə: deqradasiyanın normallaşması ilə deaktivasiyası.
- 9. Post-mortem: RCA, CAPA, DRP yeniləmə.
5) Xüsusi runbooks (fraqmentlər)
5. 1 Əsas bölgənin itkisi (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/PITR bərpa
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 DR rejimində PSP deqradasiyası
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) Məlumatların bütövlüyü və reconciliation
Maliyyə: depozitlərin/ödənişlərin/komissiyaların yoxlanılması, bildirişlərin və vebhukların təkrar göndərilməsi (idempotency-keys).
Oyun konturu: raundların vəziyyətinin bərpası, lazım olduqda hesablaşmaların təkrarlanması, ikiqat silinmələrdən/hesablamalardan qorunma.
Jurnallar/audit: WORM-loqların «əvvəl/sonra», siqnal/hash, ardıcıllıq hesabatları.
DPO/Komplayens hesabatı: PII-yə təsir olduqda - miqyasın, vaxtın və bildirişlərin fiksasiyası.
7) Əsas texnologiyalar üçün DR (nümunələr)
SUBD (relational): sinxron/asenxron replikasiya, WAL yuvaları, fast-promote, isti stendbay.
NoSQL/caches: multiklaster, TTL-əlillik, soyuq doldurma, cross-region write münaqişə olmadan imtina.
Növbələr/axınlar: güzgü topikləri/klasterləri, yerdəyişmələrə nəzarət, istehlakçıların təkrarlanması.
Obyekt anbarı: versiyalaşdırma, "bunker 'ə replikasiya, obyektlərin inventarı və retention siyasəti.
CI/CD/artefaktlar: reyestrlərin replikaları, artefaktların imzası, kritik konteynerlərin oflayn surətləri.
Sirləri/açarları: KMS per-region, müstəqil kök açarları, jurnallaşdırma və TTL ilə break-glass.
8) DR təhlükəsizlik və məxfilik
Ən kiçik hüquqlar prinsipi: ayrı rollar/profillər (JIT/PAM) ilə DR-girişlər.
Immutable backup: offline/offsite, bərpa və deşifrə testi.
Tənzimləyici pəncərələr: Legal/DPO ilə birlikdə hadisələrin qeydə alınması və bildiriş qərarı (tənzimləyici/bank/PSP/istifadəçilər).
İzlənilebilirlik: DR-komanda fəaliyyətinin tam jurnalı, vaxt xətti imzası.
9) Təlimlər və test növləri
Walkthrough/Review: sənədin/rolların/kontaktların yoxlanılması (rüblük).
Tabletop: konfliktlərin həlli ilə «quru» üçün ssenari qaçışı.
Technical partial: fərdi xidmətin bərpası/DB.
Full failover/switch-over: trafikin və məlumatların ehtiyat bölgəyə köçürülməsi.
Chaos-gün (nəzarət): avtomatik yoxlama üçün nasazlıqlar/nasazlıqlar inyeksiya.
ORTA/RPA, sapmalar siyahısı, CAPA və DRP yenilənməsi ilə hər test → hesabat.
10) Metriklər (KPI/KRI)
RTA/RPA vs RTO/RPO (Tier-1): ≥ 95% uyğunluq.
DR Test Coverage: ≥ 2 tam DR test/il + müntəzəm qismən.
Time-to-First-Status: DR elanından sonra ≤ 15 dəq.
Reconciliation Zero-Diff: uyğunsuzluqlar olmadan bütün pul və oyun müqayisə.
Backup Integrity: Seçmə bərpa 100% rüb ərzində uğurlu.
Config Drift: primary/secondary (IaC-müqayisə) arasında 0 drift.
Security in DR: 100% jurnal və təsdiq ilə DR-fəaliyyət.
11) RACI (böyük)
12) Çek vərəqləri
12. 1 DR hazırlıq
- Yenilənmiş DR-komanda/satıcılar/tənzimləyicilər əlaqə
- Yaşıl replikasiya, PITR daxil, backup test transkripsiyası
- JIT/PAM Accessories, «break-glass» yoxlanılır
- Faylover playbook və dəyişən mühit validna
- Cüt Credenshly/PSP/KYC vebhuk, alternativ marşrutlar
- Status-səhifə/mesaj şablonları hazırdır
12. 2 DR zamanı
- DR-IC təyin, açıq war-room, time-line hadisələr
- İzolyasiya səbəbləri, ssenari seçimi, runbooks başlamaq
- Bütövlük testləri, sağlamlıq testləri, smoke testləri
- İlk ictimai yeniləmə ≤ 15 dəq; SLA tərəfdaşlarına/tənzimləyicilərinə bildirişlər
- Araşdırma üçün artefaktların tutulması
12. 3 DR sonra
- Pul/oyun və jurnalların tam yoxlanılması
- Post-mortem, RCA, CAPA tarixləri və sahibləri ilə
- DRP/BIA/Əlaqə/IaC yeniləmə
- Yenidən fiks test planı
13) Şablonlar (fraqmentlər)
13. 1 Xidmət kartı (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 hesabatı (çıxarış)
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 Status-mesaj şablonu
[UTC+02] Идет аварийное переключение в резервный регион. Игры доступны, выводы временно ограничены. Средства игроков в безопасности. Следующее обновление через 15 минут.
14) Yol xəritəsi (6-8 həftə)
1-2 həftələr: xidmətlərin və asılılıqların inventarlaşdırılması, Tier təsnifatı, RTO/RPO məqsədləri, topologiyaların seçimi, DR-pasportlar.
3-4 həftələr: backup/PITR/immutability, secrets replication/KMS, runbooks və status hazırlanması həyata.
5-6 həftələr: qismən texniki testlər (BD/cache/növbələr), PSP/KYC/region ssenariləri tabletop.
7-8 həftələr: tam switch-over (mümkünsə), RTA/RPA, CAPA, DRP yeniləmə və müntəzəm test planı ilə hesabat.
15) Digər wiki bölmələri ilə inteqrasiya
Əlaqə: BCP, Risk Reyestri, Hadisə Menecmenti, Log Siyasəti (WORM), TPRM və SLA, ISO 27001/27701, SOC 2, PCI DSS, RBAC/Least Privilege, Parol Siyasəti və MFA, İdarəetmə dəyişikliklər/buraxılışlar.
TL; DR
İşçi DRP = Tier aydın RTO/RPO → Active-Active/Standby memarlıq + immutable backup/PITR → playable runbooks və faylover → pul reconciliation/oyun → müntəzəm təlim və CAPA. Sonra hər hansı bir böyük uğursuzluq tənzimləyicilər və oyunçular üçün proqnozlaşdırıla bilən bərpa müddəti və sıfır sürprizləri ilə idarə olunan bir prosedura çevrilir.