Проведення навчань з аварійного відновлення (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, час переключення |
| Пошкодження даних (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 тижні







