Disaster Recovery Plan
1) Максаты, чөйрөсү жана принциптери
Максаты: регулятивдик талаптарды, келишимдерди жана оюнчулардын күтүүлөрүн бузбастан, кырсыктардан кийин IT-платформаны өз убагында калыбына келтирүүнү камсыз кылуу.
Область: продуктивдүү чөйрө (оюн контур, төлөмдөр, KYC/AML, антифрод, DWH/BI витриналары), интеграция (PSP, KYC, CDN, студиялар/агрегаторлор), инфраструктура (булут/K8s, тармактар, сырлар/ачкычтар), маалыматтар (DD, файлдар, логи).
Принциптер: safety-first, RTO/RPO минималдаштыруу, автоматташтыруу жана кайталоо (IaC), "демейки далилдөө", үзгүлтүксүз машыгуулар.
2) Системалардын классификациясы жана калыбына келтирүү максаттары
2. 1 Критикалык деңгээл
Tier-1 (өтө маанилүү): төлөмдөр/кассауттар, негизги оюндар, логин/аутентификация, CUS/санкциялар.
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-аймак, BYOK, көз карандысыз репликация жолдору.
3. 2 Маалыматтар жана Backaps
PITR (point-in-time recovery): бүтүмдөрдүн журналдары, архивдик интервалдар ≤ 5-15 Tier-1 үчүн мүнөт.
Snepshots/full-backaps: күнүмдүк/саат, 3-2-1 схемасы боюнча сактоо (3 көчүрмөсү, 2 медиа, 1 offline/offsite).
Immutability: WORM/Object Looks, кол/хеш-чынжыр артефакттары.
Калыбына келтирүү каталогу: запастык инвентарь, бүтүндүк, жарактуулук мөөнөтү, тесттик чечмелөөлөр.
3. 3 Тиркемелер жана интеграция
Мамлекеттик кызматтар: IaC/CI аркылуу тез жайгаштыруу.
Statful компоненттери: макулдашылган snapshots, баштоо ырааттуулугун топтоо.
Интеграциялар (PSP/KYC/агрегаторлор): кош credenshly, fallback-enpoints, кол коюлган webhuks, кайра жеткирүү контролдоо (idempotentity).
4) калыбына келтирүү тартиби (жалпы runbook)
1. DR сценарийин жарыялоо → DR Incident Commander (DR-IC) дайындоо, war-room ишке киргизүү.
2. Зыян баалоо: жабыркаган аймактар/подсистемалар, тиешелүү RTA/RPA, Feylover жандандыруу чечими.
3. Изоляция/контейнер: баштапкы себептерди бөгөттөө (тармактык ACL, сырлар, провайдерди өчүрүү).
- тармак/сырлар/KMS →
- BD/сактоо/кэш →
- API/кызматтар → фронт/CDN → тышкы интеграция.
- 5. Бүтүндүгүн текшерүү: контр. суммалар, "кургак" суроолор, ден соолук үлгүлөрү.
- 6. Финансы/оюндарды калыбына келтирүү: төлөмдөрдү, чендерди, баланстарды салыштыруу, операцияларды кайталоо.
- 7. Байланыш: статус-бет, оюнчулар/өнөктөштөр/жөнгө салуучулар; жаңыртуу убактысы.
- 8. Байкоо жана турукташтыруу: нормалдашууга жараша деградацияларды деактивациялоо.
- 9. Post-Mortem: 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 Коррупция DD/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 PSP DR режиминде бузулушу
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
Каржы: депозиттерди/төлөмдөрдү/комиссияларды салыштыруу, билдирмелерди жана вебхуктарды кайра жөнөтүү (idempotency-keys).
Оюн контуру: раунддардын абалын калыбына келтирүү, зарыл болгон учурда эсептөөлөрдү кайталоо, кош эсептен чыгаруудан/эсептен чыгаруудан коргоо.
Журналдар/аудит: WORM-логдорду салыштыруу "чейин/кийин", белги/хэш, ырааттуулук отчеттору.
DPO/комплаенс отчету: PIIге таасир эткен учурда - масштабды, таймлайнды жана билдирмелерди бекитүү.
7) негизги технологиялар үчүн DR (мисалдар)
СУБД (реляциялык): синхрондуу/асинхрондук репликация, WAL уячалары, fast-promote, ысык стендбайлар.
NoSQL/кэш: multiklaster, TTL-майыптыгы, муздак толтуруу, чыр-чатак жок cross-аймак write баш тартуу.
Кезектер/агымдар: күзгү топиктер/кластерлер, жылыштарды көзөмөлдөө, керектөөчүлөрдүн дедупликациясы.
Объектти сактоо: версиялоо, "бункерге" репликациялоо, объектилердин инвентаризациясы жана retention саясаты.
CI/CD/артефакттар: реестрлердин көчүрмөлөрү, артефакттардын кол тамгасы, критикалык контейнерлердин оффлайн көчүрмөлөрү.
Сырлар/ачкычтар: KMS per-region, көз карандысыз тамыр ачкычтары, break-glass жана TTL.
8) DR коопсуздук жана купуялык
Эң аз укуктар принциби: DR-жеткиликтүүлүк жеке ролдор/профилдер (JIT/PAM).
Immutable backaps: offline/offsite, калыбына келтирүү жана чечмелөө сыноо.
Регулятивдик терезелер: окуяларды жазуу жана билдирүүлөр жөнүндө чечим (жөнгө салуучу/банк/PSP/колдонуучулар) Юридикалык/DPO менен бирге.
Trackable: DR-команданын иш-аракеттеринин толук журналы, тайм-лайн кол.
9) Машыгуулар жана тесттердин түрлөрү
Walkthrough/Review: документти/ролдорду/байланыштарды текшерүү (чейрек сайын).
Tabletop: чыр-чатактарды чечүү менен "кургак" үчүн скрипттерди айдап.
Technical partial: өзүнчө кызмат калыбына келтирүү/DD.
Full failover/switch-over: резервдик аймакка трафикти жана маалыматтарды өткөрүп берүү.
Chaos-Day (көзөмөлдөнөт): автоматтык текшерүү үчүн туура эмес/туура эмес инъекцияларды.
Ар бир тест → 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 drift.
Security in DR: 100% журнал жана тастыктоо менен DR иш-аракеттер.
11) RACI (кеңейтилген)
12) Чек-баракчалар
12. 1 DR даяр
- Жаңыртылган байланыштар DR командасы/сатуучулар/жөнгө салуучу
- Жашыл Replication, PITR камтылган, тесттик чечмелөө
- JIT/PAM жетүү, "break-glass" текшерилген
- Feylover Playbook жана айлана-чөйрөнүн өзгөрмөлүү validna
- Double Credenshly/PSP/KYC Webhook, Альтернатива жолдору
- Статус-бет/билдирүү үлгүлөрү даяр
12. 2 DR учурунда
- DR-IC дайындалган, ачык war-room, таймлайн окуялар
- Изоляция себептери, сценарий тандоо, runbooks ишке киргизүү
- бүтүндүгүн текшерүү, ден соолук, smoke тесттер
- Биринчи коомдук жаңылануу ≤ 15 мин; SLA боюнча өнөктөштөргө/жөнгө салуучуларга билдирүүлөр
- Иликтөө үчүн экспонаттарды басып алуу
12. 3 DR кийин
- акча/оюндар жана журналдардын толук салыштыруу
- Post-Мортем, 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: аткарууга backaps/PITR/иммутабилдүүлүк, Replication Secrets/KMS, даярдоо runbooks жана статусу.
Жумалар 5-6: жарым-жартылай техникалык тесттер (BD/кэш/кезек), PSP/KYC/аймак сценарийлери боюнча tabletop.
Жумалар 7-8: толук 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 = ачык RTO/RPO боюнча Tier → архитектура Active-Active/Standby + иммутабель backaps/PITR → ойнотулган runbooks жана feylover → акча/оюндар reconciliation → үзгүлтүксүз машыгуу жана CAPA. Андан кийин ар кандай ири ийгиликсиздик жөнгө салуучу жана оюнчулар үчүн алдын ала калыбына келтирүү убактысы жана нөлдүк сюрприздер менен башкарылуучу процедурага айланат.