Disaster Recovery Plan
1) Мақсаты, саласы және қағидаттары
Мақсаты: ойыншылардың реттеу талаптарын, шарттарын және күтулерін бұзбай, апаттардан (техникалық, кибер, вендорлық, геосаяси) кейін АТ-платформасын уақтылы қалпына келтіруді қамтамасыз ету.
Саласы: өнімді орта (ойын контуры, төлемдер, KYC/AML, антифрод, DWH/BI витриналары), интеграция (PSP, KYC, CDN, студиялар/агрегаторлар), инфрақұрылым (бұлт/K8s, желілер, құпиялар/кілттер), деректер (ДБ, файлдар), логи).
Қағидаттары: safety-first, RTO/RPO-ны барынша азайту, автоматтандыру және жаңғыртылу (IaC), «әдепкі бойынша дәлелдену», тұрақты жаттығулар.
2) Жүйелерді жіктеу және қалпына келтіру мақсаттары
2. 1 Сындылық деңгейлері
Tier-1 (өмірлік маңызы бар): төлемдер/кассауттар, core-ойындар, логин/аутентификация, КБК/санкциялар.
Tier-2: нақты уақыт талдауы, маркетинг/CRM, DWH есептілігі.
Tier-3: ішкі порталдар, қосалқы сервистер.
2. 2 Нысаналы көрсеткіштер
RTO (Recovery Time Objective): сервисті қалпына келтіруге дейінгі уақыт.
RPO (Recovery Point Objective): уақыт бойынша деректердің жарамды жоғалуы.
RTA (Recovery Time Actual )/RPA (Recovery Point Actual): нақты мәндері есептерде тіркеледі.
MTO/MBCO: ең ұзақ бос тұру уақыты/ең аз қолайлы қызмет деңгейі (degraded mode).
- Tier-1 - RTO ≤ 30-60 мин, RPO ≤ 15 мин; Tier-2 — RTO ≤ 4 ч, RPO ≤ 1 ч; Tier-3 — RTO ≤ 24 ч, RPO ≤ 24 ч.
3) DR стратегиялары және сәулет
3. 1 Топологиялар
Active-Active (мульти-өңір): ең аз RTO/RPO, консистенттілікті және қақтығыс-қарама-қайшылықты талап етеді.
Active-Standby (ыстық/жылы/суық): шығындар/жылдамдық балансы.
Деректер мен кілттерді гео-бөлу: KMS/HSM per-region, BYOK, тәуелсіз репликалау жолдары.
3. 2 Деректер мен бэкаптар
PITR (point-in-time recovery): транзакция журналдары, мұрағаттау аралықтары ≤ Tier-1 үшін 5-15 мин.
Снепшоттар/фулл-бэкаптар: күнделікті/сағаттық, 3-2-1 схемасы бойынша сақтау (3 көшірме, 2 тасымалдағыш, 1 оффлайн/оффсайт).
Иммутабельділік: WORM/объектілік лактар, қолтаңба/артефактілердің хэш-тізбектері.
Қалпына келтіру каталогы: бэкап мүкәммалы, тұтастығы, жарамдылық мерзімі, тестілік таратып жазу.
3. 3 Қосымшалар мен интеграциялар
Стейтлес-сервистер: IaC/CI арқылы жылдам өрістету.
Стейтфул-компоненттер: келісілген снапшоттар, іске қосу кезектілігін оркестрлеу.
Интеграциялар (PSP/KYC/агрегаторлар): қосарлы кредитеншли, fallback-эндпоинттер, қол қойылған вебхактар, қайта жеткізуді бақылау (іспеттілік).
4) Қалпына келтіру тәртібі (жалпы runbook)
1. DR сценарийін жариялау → DR Incident Commander (DR-IC) тағайындау, war-room іске қосу.
2. Зақымдануларды бағалау: зақымдалған аймақтар/кіші жүйелер, өзекті RTA/RPA, фейловерді жандандыру туралы шешім.
3. Оқшаулау/контейнмент: бастапқы себептерді бұғаттау (желілік ACL, құпиялар, провайдерді ажырату).
- желі/құпиялар/KMS →
- DB/сақтау орны/кэш →
- API/сервистер → фронт/CDN → сыртқы интеграциялар.
- 5. Тұтастығын тексеру: қарсы. сомалар, «құрғақ» сұраулар, health-сынамалар.
- 6. Қаржы/ойындардың Reconciliation: төлемдердi, ставкаларды, баланстарды салыстыру, операцияларды идемпотенттiк қайталау.
- 7. Коммуникация: мәртебе-бет, ойыншылар/серіктестер/реттеушілер; жаңартулардың уақыты.
- 8. Бақылау және тұрақтандыру: нормалануына қарай деградациялардың белсенділігін жою.
- 9. Пост-мортем: RCA, CAPA, DRP жаңартуы.
5) Арнайы runbooks (фрагменттер)
5. 1 Негізгі аймақты жоғалту (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 Сыбайлас жемқорлық БД/PITR қалпына келтіру
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 режимінде PSP деградациясы
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) Деректердің тұтастығы және reconciliation
Қаржы: депозиттерді/төлемдерді/комиссияларды салыстыру, хабарламалар мен вебхуктарды қайта жіберу.
Ойын контуры: раундтардың жай-күйін қалпына келтіру, қажет болған жағдайда есептерді қайталау, қосарланған есептен шығарудан/есептен шығарудан қорғау.
Журналдар/аудит: WORM-логтарды «дейін/кейін», белгі/хэштерді салыстыру, қайшылықсыздық туралы есептер.
DPO/комплаенс есебі: PII әсер еткен жағдайда - масштабты, таймлайны және хабарламаларды тіркеу.
7) Негізгі технологиялар үшін DR (мысалдар)
СУБД (реляциялық): синхронды/асинхрондық репликация, WAL, fast-promote слоттары, ыстық стендбаи.
NoSQL/кэштер: мультикластер, TTL-мүгедектігі, салқын толтыру, қайшылықсыз cross-region write-ден бас тарту.
Кезектер/ағындар: айналы топиктер/кластерлер, орын ауыстыруларды бақылау, тұтынушыларды дедупликациялау.
Объектілік сақтау орны: нұсқалау, «бункерге» репликалау, объектілер мүкәммалы және retention саясаты.
CI/CD/артефактілер: тізілімдердің репликалары, артефактілердің қолы, сыни контейнерлердің оффлайн-көшірмелері.
Құпиялар/кілттер: KMS per-region, тәуелсіз тамыр кілттері, журналданған break-glass және TTL.
8) DR-дағы қауіпсіздік және құпиялылық
Ең аз құқықтар қағидаты: жеке рөлдермен/профильдермен (JIT/PAM) DR-қол жеткізу.
Иммутабельді бэкаптар: оффлайн/оффсайт, қалпына келтіру және таратып жазу тесті.
Реттеуші терезелер: Legal/DPO-мен бірге оқиғаларды тіркеу және хабарламалар туралы шешім (реттеуші/банк/PSP/пайдаланушылар).
Трассалануы: DR командасының толық әрекеті журналы, таймлайн қолтаңбасы.
9) Оқу-жаттығулар және тест түрлері
Walkthrough/Review: құжатты/рөлдерді/контактілерді тексеру (тоқсан сайын).
Tabletop: сценарийлерді қайшылықтарды шешумен «құрғақ» күйге жылжыту.
Technical partial: жеке сервисті/ДБ қалпына келтіру.
Full failover/switch-over: Трафикті және деректерді резервтік аймаққа тасымалдау.
Chaos-күндері (бақыланатын): автоматтарды тексеру үшін істен шығу/істен шығу инъекциялары.
Әрбір тест → RTA/RPA, ауытқу тізімі, CAPA және DRP жаңартуы бар есеп.
10) Өлшемдер (KPI/KRI)
RTA/RPA vs RTO/RPO (Tier-1): 95% сәйкестік ≥.
DR Test Coverage: ≥ 2 толық DR-тест/жыл + тұрақты ішінара.
Time-to-First-Status: DR хабарландыруынан кейін 15 мин ≤.
Reconciliation Zero-Diff: айырмашылықтарсыз барлық ақшалай және ойын салыстырулары.
Backup Integrity: 100% ішінара қалпына келтіру тоқсан ішінде табысты болды.
Config Drift: primary/secondary (IaC-салыстыру) арасындағы 0 дрейф.
Security in DR: 100% DR әрекеттері журналмен және растаумен.
11) RACI (ірілендірілген)
12) Чек парақтары
12. 1 DR дайындығы
- DR командасының/вендорлардың/реттеушілердің контактілері жаңартылды
- Жасыл репликация, PITR қосылған, тесттік бэкап мағынасын ашу
- JIT/PAM, «break-glass» рұқсаттары тексерілді
- Фейловер-плейбуктер және ауыспалы орта валидті
- Қос кредитеншли/PSP/KYC веб-хактар, баламалы бағыттар
- Мәртебе-бет/хабар үлгілері дайын
12. 2 DR кезінде
- DR-IC тағайындалған, war-room ашылған, оқиғалар уақыты
- себептерін оқшаулау, сценарий таңдау, runbooks іске қосу
- Тұтастығын тексеру, денсаулық сынамалары, smoke-тесттер
- Алғашқы көпшілік жаңартуы ≤ 15 мин; SLA бойынша серіктестерге/реттеушілерге хабарламалар
- Тексеру үшін артефактілерді басып алу
12. 3 DR кейін
- Ақшаны/ойындарды және журналдарды толық салыстыру
- Пост-мортем, RCA, CAPA күндерімен және иелерімен
- DRP/BIA/контактілерді/IaC жаңарту
- Қайталама фикс тестінің жоспары
13) Үлгілер (фрагменттер)
13. 1 Сервис карточкасы (DR-паспорт)
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-тест есебі (үзінді)
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 Мәртебе хабарының үлгісі
[UTC+02] Идет аварийное переключение в резервный регион. Игры доступны, выводы временно ограничены. Средства игроков в безопасности. Следующее обновление через 15 минут.
14) Енгізудің жол картасы (6-8 апта)
1-2 апталар: сервистер мен тәуелділіктерді түгендеу, Tier сыныптамасы, RTO/RPO мақсаттары, топологияларды таңдау, DR-паспорттар.
3-4 апталар: бэкаптарды/PITR/иммутабельділікті іске асыру, құпияларды репликалау/KMS, runbooks және мәртебені дайындау.
5-6 апта: ішінара техникалық тесттер (ДБ/кэш/кезек), PSP/KYC/өңір сценарийлері бойынша tabletop.
7-8 апта: full switch-over (мүмкіндігінше), RTA/RPA, CAPA-мен есеп беру, DRP-ны жаңарту және тұрақты тестілеу жоспары.
15) wiki басқа бөлімдерімен интеграциялау
Байланыстыру: BCP, Тәуекелдер тізілімі, Инцидент-менеджмент, Логтар саясаты (WORM), TPRM және SLA, ISO 27001/27701, SOC 2, PCI DSS, RBAC/Least Privilege, Құпия саясат және MFA, Басқару өзгертулермен/шығарулармен.
TL; DR
Жұмыс DRP = Tier бойынша анық RTO/RPO → Active-Active/Standby архитектурасы + иммутабельді бэкаптар/PITR → ойнатылатын runbooks және фейловер → ақша/ойындар reconciliation → тұрақты жаттығулар және CAPA. Сонда кез келген ірі сәтсіздік реттеушілер мен ойыншылар үшін болжамды қалпына келтіру уақыты мен нөлдік тосын сый болатын басқарылатын рәсімге айналады.