GH GambleHub

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 (гарячий/теплий/холодний): баланс витрат/швидкості.
Geo-розділення даних і ключів: KMS/HSM per-region, BYOK, незалежні шляхи реплікації.

3. 2 Дані і бекапи

PITR (point-in-time recovery): журнали транзакцій, інтервали архівації ≤ 5-15 хв для Tier-1.
Снепшоти/фул-бекапи: щоденні/годинні, зберігання за схемою 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, секрети, відключення провайдера).

4. Ініціалізація DR:
  • мережа/секрети/KMS →
  • БД/сховища/кеш →
  • API/сервіси → фронт/CDN → зовнішні інтеграції.
  • 5. Перевірка цілісності: контр. суми, «сухі» запити, health-проби.
  • 6. Reconciliation фінансів/ігор: звірки платежів, ставок, балансів, ідемпотентне повторення операцій.
  • 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 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/кеші: мультикластер, TTL-інвалідація, холодне заповнення, відмова від cross-region write без конфлікт-резолву.
Черги/стріми: дзеркальні топіки/кластери, контроль зміщень, дедуплікація споживачів.
Об'єктне сховище: версіонування, реплікація в «бункер», інвентар об'єктів і політики retention.
CI/CD/артефакти: репліки реєстрів, підпис артефактів, офлайн-копії критичних контейнерів.
Секрети/ключі: KMS per-region, незалежні кореневі ключі, break-glass з журналюванням і TTL.


8) Безпека і приватність в DR

Принцип найменших прав: DR-доступи окремими ролями/профілями (JIT/PAM).
Іммутабельні бекапи: оффлайн/офсайт, тест відновлення і розшифровки.
Регуляторні вікна: фіксація подій і рішення про повідомлення (регулятор/банк/PSP/користувачі) разом з Legal/DPO.
Трасування: повний журнал дій 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: ≤ 15 хв після оголошення DR.
Reconciliation Zero-Diff: всі грошові та ігрові звірки без розбіжностей.
Backup Integrity: 100% вибіркових відновлень успішні за квартал.
Config Drift: 0 дрейфу між primary/secondary (IaC-порівняння).
Security in DR: 100% DR-дій з журналом і підтвердженням.


11) RACI (укрупнено)

АктивністьDR-ICPlatform/SREData/DBASecurity/DPOPaymentsRisk/KYCProduct/EngComms/PRLegal/Compliance
Оголошення DRA/RCCCCCCCC
Фейловер/підйомCA/RRCCCRII
Валідація/HealthCRA/RCCCRII
ReconciliationIRA/RIRRRII
КомунікаціїIIICCCIA/RC
Регулятори/PSPIIIA/RRRICR
Пост-мортем/САРАA/RRRRRRRCC

12) Чек-листи

12. 1 Готовність до DR

  • Оновлені контакти DR-команди/вендорів/регуляторів
  • Реплікація зелена, PITR включений, тестова розшифровка бекапів
  • Доступи JIT/PAM, «break-glass» перевірено
  • Фейловер-плейбуки і змінні оточення валідни
  • Подвійні креденшли/вебхуки PSP/KYC, альтернативні маршрути
  • Статус-сторінка/шаблони повідомлень готові

12. 2 Під час DR

  • Призначений DR-IC, відкритий war-room, таймлайн подій
  • Ізоляція причини, вибір сценарію, запуск runbooks
  • Перевірки цілісності, health-проби, 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: часткові тех-тести (БД/кеш/черги), tabletop за сценаріями PSP/KYC/регіон.
Тижні 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 = ясні RTO/RPO по Tier → архітектура Active-Active/Standby + іммутабельні бекапи/PITR → відтворювані runbooks і фейловер → reconciliation грошей/ігор → регулярні навчання і CAPA. Тоді будь-який великий збій перетворюється на керовану процедуру з передбачуваним часом відновлення і нульовими сюрпризами для регуляторів і гравців.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.