Проведение учений по аварийному восстановлению (DR Drill)
DR Drill — это плановая проверка способности команды восстановить работу приложения из резервного состояния. Организации, которые никогда не проводили учения, обнаруживают проблемы в runbook только во время реального инцидента. Это плохое время для открытий.
Зачем нужны регулярные учения
Резервные копии, которые не проверяются — это иллюзия безопасности. Типичные сюрпризы при первом DR Drill:
- Backup существует, но восстановление занимает 6 часов вместо ожидаемых 30 минут
- Конфигурационные файлы хранятся только на основном сервере и не включены в бэкап
- Секреты (API-ключи, сертификаты) хранятся в головах людей, а не в Vault/Secrets Manager
- Runbook описывает устаревшую инфраструктуру
- Команда не знает, кто принимает решение об активации DR
Типы учений
Tabletop exercise. Обсуждение сценария без реального выполнения. Команда проходит через шаги runbook вербально. Выявляет пробелы в документации и ответственности. 2-3 часа, без рисков.
Functional exercise. Реальное выполнение отдельных компонентов DR: восстановление БД из backup, проверка DNS failover, поднятие окружения из Terraform. Риск: минимальный, если делается в staging.
Full-scale drill. Полная симуляция катастрофы: намеренный вывод основной инфраструктуры из строя, полное переключение на DR Site. Проводится в нерабочие часы (обычно ночью или в выходные) с заранее согласованным окном технических работ.
Подготовка к учениям
Минимум за неделю до Drill:
- Актуализировать runbook (проверить, что команды в нём работают на текущей инфраструктуре)
- Убедиться, что резервные копии свежие и не повреждены
- Назначить роли: инцидент-менеджер, технический лид, наблюдатель (фиксирует время и отклонения)
- Согласовать окно с бизнесом (для full-scale drill)
- Подготовить метрики успеха: целевые RTO/RPO
Сценарии для тестирования
| Сценарий | Что проверяем |
|---|---|
| Сбой primary DB, promote replica | Время промоции, корректность работы приложения |
| Потеря основного сервера | DNS failover, время переключения |
| Corruption данных (accidental delete) | PITR восстановление, RPO |
| Полная потеря региона/ДЦ | Поднятие из IaC + данные из DR Site |
| Компрометация секретов | Ротация всех credentials, время |
Процесс проведения Full-Scale Drill
До начала (T-60 минут):
- Все участники онлайн, роли назначены
- Мониторинг в отдельном окне у наблюдателя
- Начальное состояние задокументировано (скриншоты дашбордов)
Активация сценария (T=0):
- Наблюдатель запускает таймер
- Симуляция сбоя (в зависимости от сценария)
Восстановление:
- Команда следует runbook (не импровизирует)
- Наблюдатель фиксирует каждый шаг с временной меткой
- Отклонения от runbook документируются
Верификация (после переключения):
- Smoke-тесты критических функций приложения
- Проверка целостности данных
- Фиксация фактического RTO/RPO
Восстановление исходного состояния (после успешной верификации).
Post-Drill анализ
Через 24-48 часов после учений — встреча команды:
- Что прошло по плану
- Что пошло не так (без поиска виноватых)
- Конкретные задачи по улучшению runbook
- Обновлённые целевые RTO/RPO на следующие учения
Результаты учений — документ, который хранится рядом с runbook.
Частота проведения
- Tabletop exercise — ежеквартально
- Functional exercise — раз в полгода
- Full-scale drill — раз в год (или после крупных изменений инфраструктуры)
Сроки организации
- Подготовка первых учений (tabletop) — 2-3 дня
- Организация functional exercise — 3-5 дней
- Подготовка full-scale drill — 1-2 недели







