GH GambleHub

Disaster Recovery и cold-backups

Краткое резюме

DR — это способность восстановить функции бизнеса после крупной аварии. Cold-backups — «последняя линия обороны»: неизменяемые/изолированные копии, пригодные для восстановления при полном обесточивании площадки или компрометации. Стратегия строится вокруг RTO/RPO, приоритизации систем, ежегодных DR-учений и строгой операционной дисциплины (каталоги, ключи, проверки).

Термины и цели

RPO (Recovery Point Objective) — максимально допустимая потеря данных (напр., ≤ 15 мин).
RTO (Recovery Time Objective) — максимально допустимое время восстановления (напр., ≤ 2 ч).
Black-start — восстановление «с нуля»: железо/кластер/секреты/данные/DNS.
Air-gap — физическая/логическая изоляция копий (лента/отключенный аккаунт/офлайн-носитель).
Immutability (WORM) — неизменяемое хранение (лента/объектка с Lock/Retention).

Уровни DR-готовности

Cold Site — инфраструктура отсутствует/заморожена; RTO: часы–дни; самый дешевый CAPEX/OPEX.
Warm Site — шаблоны/образы/частично готовые сервисы; RTO: десятки минут–часы.
Hot Site — активные реплики; RTO: минуты; дороже и сложнее.
Гибрид: ядро → hot/warm, все остальное → cold (с приоритезацией при запуске).

Где cold-backups незаменимы

Массовое криптозаражение/компрометация домена.
Коррупция данных, уехавшая на все реплики.
Потеря региона/ЦОДа, форс-мажор (пожар, наводнение).
Умышленное удаление/саботаж с привилегированных учеток.

Топология cold-backups

1. Медиа/классы хранения

Ленты (LTO-8/9): дешевизна, air-gap по умолчанию, высокая емкость, последовательный доступ.
Offline-диски/NAS: «сейф-кейсы», подключаются только на окно бэкапа/restore.
Архивные классы объектки (Glacier-подобные): низкая цена хранения, более высокое время извлечения.

2. Размещение

Другая площадка/регион; иной провайдер/аккаунт; отдельные ключи/администраторы.

3. Иммутабельность

Ленты WORM / Object Lock (Compliance/Governance) с ретеншном и Legal Hold.

Политика 3-2-1-1-0 (с фокусом на cold)

3 копии данных (прод + локальная резервная + оффсайт).
2 разных носителя (диск/лента/объектка).
1 оффсайт (другая площадка/облако).
1 неизменяемая (WORM/air-gap).
0 ошибок проверок (checksum/периодические тест-восстановления).

Каталоги, метаданные и контроль целостности

Каталог бэкапов: что, где, когда, версия, ключи, чек-суммы, срок ретеншна.
Каталог активов: сервис → зависимости → тома/бакеты → приоритет.
Checksums и manifest-файлы: сверка на запись и на восстановлении.
Canary-файлы: регулярный restore для раннего детекта проблем носителей.

Шифрование и ключи

Шифрование в покое (лента/объектка) и в полете (копирование).
KMS/Vault с dual-control, оффлайн-сейфы для мастер-ключей, ротация.
Раздельные ключи для прод/бэкапов/архивов (минимизация blast-радиуса).
Документированный процесс доступа к ключам при DR (требования, роли, журнал).

План DR: приоритезация и последовательность

Карта приоритетов (пример):

1. Идентификация и доступ: IdP (минимальная зона), Vault/KMS, сетевое ядро.

2. Данные и управляющие плоскости: etcd K8s, конфиги, секrets, реестры образов, артефакты деплоев.

3. Транзакционные БД/кошелек: журналы + последние full/incremental.

4. Платежные/интеграционные шлюзы: ключи, сертификаты, IP/DNS.

5. Веб/апи-фронты: канареечный запуск, статический контент из объектки.

6. Аналитика/отчетность: по завершении ядра.

Последовательность восстановления (black-start):

1. Инфраструктура: сеть, DNS/Anycast, IAM ядра, базовые образы/кластер.

2. Секреты/сертификаты: восстановить Vault/KMS из cold-backup, раздать bootstrap-секреты.

3. Контрольная плоскость: etcd/Control Plane/регистры/репозитории.

4. Данные: развернуть БД из cold-backup + PITR из журналов (по RPO).

5. Приложения: запуск зависимостей по дереву, прогрев кэшей/CDN.

6. Тесты и валидация: health-пробы, консистентность, контрольные суммы.

7. Переключение трафика: DNS/маршрутизация/балансировщики (поэтапно/канареечно).

8. Пост-проверки: отсутствие утечек/долгов, логирование и акт DR.

Процедуры cold-restore (типовые)

Ленты: инвентарь, загрузка, параллельные стримы, map файлов → каталоги → таски на восстановление; учет времени поиска и перемотки.
Архив-классы: запрос на извлечение (minutes→hours), staging в горячее хранилище, восстановление по манифесту.
Offline-диски: подключение read-only, проверки checksum → копирование.
Практика: изолированная «песочница» для восстановления, затем перенос в прод-среду.

Коммуникации и орг.структура при DR

Роли: Incident Commander, Tech Lead (Infra), DB Lead, App Lead, Comms, Security.
Каналы: резервные (вне корпоративного домена), голос/чат, SecureDocs.
Шаблоны сообщений: клиентам/партнерам/регуляторам; частота апдейтов; единый «источник правды».
Единый журнал событий: таймлайн, решения, владельцы.

DNS, сети и трафик

Split-brain-защита: флаги «DR-режим» в конфигурации; feature-flags для ограниченного функционала.
DNS-стратегия: низкие TTL заранее, независимый провайдер DNS; поэтапная смена A/AAAA/CNAME, прогрев CDN.
Маршрутизация: Anycast/Geo, BGP-анонс с DR-сайта; ACL/файрволлы пересобираются из IaC.

SLO для DR

RPO соблюден ≥ 99% времени (лаг журналов/инкрементов в пределах цели).
RTO black-start (полный сценарий) ≤ целевого (например, 4 часа) на тестах раз в квартал.
Успех DR-учений — 100% критичных задач выполнены в окне.
Иммутабельность — доля бэкапов с Retention/Lock = 100%.
Проверки целостности — 100% по графику; отказ носителя → тикет на миграцию.

Тесты и учения

Table-top: сценарии, роли, чек-листы, контакт-лист.
Технические: выборочные восстановление БД/файлов/секретов в «песочницу» с проверкой контрольных сумм и консистентности.
Black-start-drill: раз/квартал (или раз/полгода) — полный запуск ядра в DR-сайте.
Post-mortem: факты, узкие места, план улучшений (SLO/процессы/автоматизация).

Автоматизация и артефакты

IaC: кластеры, сети, стеки — в коде; DR-ветки/параметры.
Runbooks: покомпонентно (Vault/KMS, etcd, БД, шлюзы, фронты).
DR-пакет: оффлайн-копия ключевых доков (контакты, схемы, пароли сейф-фраз), инструкции физдоступа.
Canary-restore: ежедневный небольшой restore и сверка checksum.
Теги/метки: «DR-critical», «Warm-only», «Cold-only» для сервисов/томов.

Чек-лист внедрения

  • Классы данных и их RPO/RTO согласованы с бизнесом; приоритеты восстановления определены.
  • Реализованы cold-backups: носители, иммутабельность (WORM/Object Lock), оффсайт/air-gap.
  • Каталоги: активов, бэкапов, ключей; чек-суммы и контроль версий.
  • Процедуры black-start: сети/DNS, IdP/Vault/KMS, контрольная плоскость, данные, апп-слой.
  • Учения: table-top ежеквартально; канареечные restore ежедневно; black-start раз/квартал-полгода.
  • Коммуникации и регуляторные шаблоны; отдельные каналы связи.
  • SLO/метрики/алерты для DR; отчеты руководству.
  • Договоренности с провайдерами (ленты/архив-классы/DNS/CDN), SLA подтверждены.
  • Финансы: бюджет носителей/архива, логистика, замена носителей по срокам.

Типичные ошибки

«Есть реплика — бэкап не нужен» → логическая ошибка/шифровальщик уедут везде.
Нет иммутабельности/air-gap → единый вектор компрометации всех копий.
Отсутствие каталогов/чек-сумм → восстановили «что-то», но не то.
TTL DNS слишком велик → многодневная миграция трафика.
Ключи/KMS в том же домене/аккаунте → блокировка доступа при инциденте.
Учения только «на бумаге» → RTO/RPO не подтверждены.

Специфика для iGaming/финтех

Кошелек/платежное ядро: строгий RPO (≤ 1–5 мин) и RTO (≤ 15–60 мин); журналы в объектку с WORM; DR-функция «read-only баланс» для прозрачной коммуникации.
PSP/провайдеры контента: заранее согласованные DR-IP/домен, whitelists, сертификаты, HMAC/мTLS ключи — копии в DR-пакете.
Отчетность/регуляторы: шаблоны уведомлений, неизменяемые архивы, доказуемая целостность, журнал действий.
Пики и ивенты: DR-готовность проверяется до крупных турниров/акций; канареечные restore и прогрев CDN.

Мини-runbook-шаблоны

1) Vault/KMS black-start (концепт):

1. Инициализация DR-кластера, загрузка ключей unseal (dual-control).

2. Восстановление storage-бэкапа (cold-copy).

3. Проверка политик, выдача bootstrap-секретов для CI/CD/K8s.

2) PostgreSQL DR (PITR из cold-backup):

1. Развернуть пустой инстанс, восстановить full из cold.

2. Подложить WAL-журналы (инкременты) до целевого момента.

3. Проверка консистентности, включить репликацию, открыть read-only, затем read-write.

3) DNS/трафик:

1. Снизить TTL за 24–72 ч до плановых рисков (или держать низкий постоянно).

2. Переключение A/AAAA/CNAME по чек-листу, мониторинг ошибки/латентности.

3. Постепенный рост трафика (канарейка 5% → 25% → 100%).

Итог

Надежный DR с опорой на cold-backups — это: иммутабельные изолированные копии, формализованные black-start-процедуры, четкие RPO/RTO, регулярные учения, продуманная DNS/сетевая стратегия и дисциплина ключей. Зафиксируйте все в IaC и runbook-ах, автоматизируйте проверки целостности и канареечные restore — и у вас всегда будет контролируемый путь к восстановлению даже после наихудшего сценария.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.