GH GambleHub

Сценарії аварійного відновлення

1) Навіщо потрібен DR і яка мета

Disaster Recovery (DR) - це набір архітектур, процесів і тренувань для відновлення сервісів після катастроф (відмова датацентру/регіону, втрати даних, масових конфігураційних помилок). Мета DR - виконати цільові RTO/RPO при контрольованій вартості і ризику, зберігши довіру клієнтів і відповідність регуляториці.

RTO (Recovery Time Objective): допустимий час простою.
RPO (Recovery Point Objective): допустима втрата даних (час з останньої консистентної точки).
RLO (Recovery Level Objective): рівень функціоналу, який повинен повернутися першим (мінімально життєздатний сервіс).

2) Класифікація систем за критичністю

Tier 0 (життєво важливе): платежі, логін, KYC, ядро транзакцій - RTO ≤ 15 хв, RPO ≤ 1-5 хв.
Tier 1 (висока): операційні панелі, звіти D-1 - RTO ≤ 1 год, RPO ≤ 15-60 хв.
Tier 2 (середня): бек-офіс, аналітика near-real-time - RTO ≤ 4-8 год, RPO ≤ 4-8 год.
Tier 3 (низька): не критичні допоміжні - RTO ≤ 24-72 год, RPO ≤ 24 год.

Кожному сервісу присвоїти Tier + цільові RTO/RPO в каталозі сервісів; рішення і бюджети звіряти саме з ними.

3) Модель загроз і сценарії

Техногенні: відмова AZ/регіону/провайдера, деградація мережі/DNS, збій БД/сховищ, масовий баг релізу.
Людський фактор: помилкові конфіги/IaC, видалення даних, компрометація ключів.
Природні/зовнішні: пожежа/повінь, перебої енергії, правові блокування.
Для кожного - оцінити ймовірність/імпакт, прив'язати до DR-сценарію і плейбуку.

4) Патерни архітектури DR

1. Active-Active (Multi-Region): обидва регіони обслуговують трафік.

Плюси: мінімальні RTO/RPO, висока стійкість.
Мінуси: складність даних/консистентності, висока ціна.
Де: читання-важкі, кешовані навантаження, stateless-сервіси, multi-master DB (суворі правила конфліктів).

2. Active-Passive (Hot Standby): «гарячий» пасив тримає повністю розігріту копію.

RTO: хвилини; RPO: Хвилини. Вимагає автоматизованого failover і реплікації.

3. Warm Standby: частина ресурсів прогріту, масштабування при аварії.

RTO: десятки хвилин; RPO: 15-60 хв. економічніше, але довше.

4. Pilot Light: мінімальна «іскра» (метадані/образи/скрипти) + швидкий розворот.

RTO: годинник; RPO: годинник. Дешево, підходить для Tier 2-3.

5. Backup & Restore: офлайнові бекапи + ручний прогрів.

RTO/RPO: годинник-доба. Тільки для низької критичності та архівів.

5) Дані та узгодженість

Реплікація БД:
  • Синхронна - майже нульовий RPO, але ↑latentnost/stoimost.
  • Асинхронна - краще продуктивність, RPO> 0 (хвіст журналів).
  • Узгодженість: вибирайте модель (strong/eventual/causal). Для платежів - строго, для аналітики - eventual.
  • Зрізи (snapshots): регулярно створюйте консистентні точки + зберігайте журнали (WAL/redo).
  • Крос-регіонні транзакції: уникайте 2PC; використовуйте ідемпотентні операції, делі-і-повторюй (retry з дедуплікацією), event sourcing.
  • Черги/шини: реплікація/дзеркалювання, DLQ, замовлення та ідемпотентність консьюмерів.

6) Мережа, трафік і DNS

GSLB/Anycast/DNS: політики failover/failback, низькі TTL (але не занадто), health-checks з декількох регіонів.
L7-маршрутизація: регіональні карти, фіча-прапори деградації (обмеження функцій).
Private-links/VPN: резервні канали до провайдерів (PSP/KYC/CDN).
Rate limiting: захист від шторму при відновленні.

7) Stateful vs Stateless

Stateless переноситься скриптом/автоскейлом; stateful вимагає узгодженої стратегії даних (реплікація, снапшоти, промоушен репліки, кворум).
Кеш/сесії: зовнішні (Redis/Memcached) з крос-регіонною реплікацією або re-seed по журналах; сесії тримати в токенах (JWT) або загальному сховищі.

8) Тригери та автоматизація DR

SLO-гардрейли і кворум зондів → автоматичний region-failover runbook.
Change freeze при аварії: блокуємо нерелевантні релізи/міграції.
Infrastructure as Code: розгортання стенд-бай по маніфестах, перевірка дрейфу.
Промоушен ролі: автоматичний promote репліки БД + перев'язка writers/секретів.

9) Комунікації та комплаєнс

War-room: IC/TL/Comms/Scribe; інтервали апдейтів по SEV.
Статус-сторінка: географія впливу, ETA, обхідні шляхи.
Регуляторика: терміни повідомлень, безпека даних, незмінне зберігання evidence.
Партнери/провайдери: підтверджені контакти, виділений канал.

10) Тести та навчання DR

Tabletop: обговорюємо сценарій і рішення.
Game Day (стейдж/прод-лайт): імітація відмови AZ/регіонів, відключення провайдера, скидання DNS.
Restore-тести: періодично відновлюємо бекапи в ізоляції і валідуємо цілісність.
Chaos/Failure injection: контрольовані збої мережі/вузлів/залежностей.
KPI навчань: досягнуті RTO/RPO, дефекти плейбуків, CAPA.

11) Фінанси та вибір стратегії (FinOps)

Рахуйте $ за знижений RPO/RTO: чим нижче цілі - тим дорожче канали, ліцензії, резерви.
Гібрид: Tier 0 — active-active/hot; Tier 1 — warm; Tier 2–3 — pilot/backup.
Дані дорогі: використовуйте холодні шари (архів/S3/GLACIER), інкрементальні снапшоти, дедуплікацію.
Періодичний рев'ю витрат і сертифікатів/ліцензій DR-інфри.

12) Метрики зрілості DR

RTO (факт) і RPO (факт) по кожному Tier.
DR Coverage: % сервісів з оформленим сценарієм/плейбуком/тестом.
Backup Success & Restore Success: щоденний успіх бекапів і перевірених відновлень.
Time-to-Declare Disaster: швидкість прийняття рішення про failover.
Failback Time: повернення до нормальної топології.
Defect Rate Навчань: знайдені прогалини/вчення.
Compliance Evidence Completeness: Повнота артефактів.

13) Чек-листи

Перед впровадженням DR

  • Сервіс-каталог містить Tier, RTO/RPO, залежності та власників.
  • Вибраний патерн (AA/AP/WS/PL/BR) по Tier і бюджету.
  • Угоди про консистентність і реплікації задокументовані.
  • GSLB/DNS/маршрутизація і health-checks налаштовані і протестовані.
  • Бекапи, снапшоти, журнали змін - включені, перевірені на restore.
  • Плейбуки DR і контакти провайдерів в актуальному вигляді.

Під час аварії (коротко)

  • Оголосити SEV і зібрати war-room; заморозити релізи.
  • Перевірити кворум зондів; зафіксувати імпакт/географію.
  • Виконати Failover Runbook: трафік, БД-промоушен, черги, кеш.
  • Включити degrade-UX/ліміти; публікувати апдейти по SLA.
  • Збирати evidence (таймлайн, графіки, логи, команди).

Після аварії

  • Спостерігати SLO N інтервалів; виконати failback за планом.
  • Провести AAR/RCA; оформити CAPA.
  • Оновити плейбуки, каталізатори алертів, тест-кейси DR.
  • Відзвітувати перед стейкхолдерами/регуляторами (якщо потрібно).

14) Шаблони

14. 1 Картка DR-сценарію (приклад)


ID: DR-REGION-FAILOVER-01
Scope: prod EU ↔ prod US
Tier: 0 (Payments, Auth)
Targets: RTO ≤ 15m, RPO ≤ 5m
Trigger: quorum(probes EU, US) + burn-rate breach + provider status=red
Actions:
- Traffic: GSLB shift EU→US (25→50→100% with green SLIs)
- DB: promote US-replica to primary; re-point writers; freeze schema changes
- MQ: mirror switch; drain EU DLQ; idempotent reprocess
- Cache: invalidate region-specific keys; warm critical sets
- Features: enable degrade_payments_ux
- Comms: status page update q=15m; partners notify
Guardrails: payment_success ≥ 98%, p95 ≤ 300ms
Rollback/Failback: EU green 60m → 25→50→100% with guardrails
Owners: IC @platform, DB @data, Network @netops, Comms @support

14. 2 Runbook «Promote репліки БД» (фрагмент)


1) Freeze writes; verify WAL applied (lag ≤ 30s)
2) Promote replica; update cluster VIP / writer endpoint
3) Rotate app secrets/endpoints via remote config
4) Validate: read/write checks, consistency, replication restart to new secondary
5) Lift freeze, monitor errors p95/5xx for 30m

14. 3 План навчань DR (коротко)


Purpose: to check RTO/RPO Tier 0 in case of EU failure
Scenario: EU incoming LB down + 60s replication delay
Success criteria: 100% traffic in US ≤ 12m; RPO ≤ 5m; SLI green 30m
Artifacts: switching logs, SLI graphs, step times, command output

15) Анти-патерни

«Є бекапи» без регулярних restore-тестів.
Секрети/ендпоінти не перемикаються автоматично.
Відсутність ідемпотентності → дублікати/втрачені транзакції при повторній доставці.
Однакові конфіги для регіонів без фіча-прапорів деградації.
Довгий Time-to-Declare через страх «помилкової тривоги».
Монорегіональні провайдери (PSP/KYC) без альтернативи.
Немає плану failback - живемо в аварійній топології «вічно».

16) Дорожня карта впровадження (6-10 тижнів)

1. Нед. 1–2: класифікація сервісів за Tier, установка цільових RTO/RPO, вибір патернів DR.
2. Нед. 3–4: налаштування реплікацій/бекапів, GSLB/DNS, промоушен-процедур; плейбуки і runbook'і.
3. Нед. 5–6: перші DR-навчання (tabletop→stage), фіксація метрик і CAPA.
4. Нед. 7–8: прод-лайт навчання з обмеженим трафіком; автоматизація failover.
5. Нед. 9–10: оптимізація витрат (FinOps), перенесення Tier 0 в hot/AA, регламент квартальних навчань і звітності.

17) Підсумок

Ефективний DR - це не тільки бекапи. Це узгоджена архітектура, автоматизація failover/failback, дисципліна даних (ідемпотентність/реплікація), тренування та прозорі комунікації. Коли RTO/RPO реальні, плейбуки відпрацьовані, а навчання регулярні, катастрофа перетворюється на керовану подію, після якої сервіси швидко і передбачувано повертаються до норми.

Contact

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

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

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

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

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

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