Проведення Game Day: симуляція аварій для DevOps

Коли в production стається збій, стає зрозуміло: runbook'и застаріли, а команда не готова діяти чітко. Ми проводимо Game Day — симуляцію аварій, яка безпечно перевіряє реакцію команди та процеси до реальної катастрофи. Наша команда організовує навчання під ключ, виявляючи слабкі місця в комунікації та реагуванні, з подальшою підтримкою та оновленням документації.
Часті запитання

Після чергового інциденту в production ви розумієте: runbook'и застаріли, а команда не готова до реального збою. Багато проблем розкриваються тільки коли лічба йде на хвилини — і ціна помилки зростає експоненційно. Game Day (симуляція аварій) дозволяє безпечно протестувати процеси та комунікацію до того, як станеться справжня катастрофа.

Ми проводимо Game Day — навчальні тривоги, в яких команда реагує на змодельовану аварію в реальному часі. Це не тест системи, а тест людей і процесів: як швидко знаходиться проблема, де ламається комунікація, хто приймає рішення про відкат, що виявилося невірним у runbook'ах. На відміну від хаос-інжинірингу, який перевіряє resilience системи автоматизованими експериментами, Game Day фокусується на координації команди, інженерів, SRE та менеджменту.

Як Game Day виявляє слабкі місця команди?

Кейс із практики: втрата availability zone в production

Ми проводили Game Day для фінтех-стартапу. Симулювали відмову цілої availability zone (AZ) в production. Команда з 6 осіб не помітила, що Auto Scaling Group не перестворює інстанси, тому що health checks були налаштовані тільки на порт, а не на відповідь застосунку. Виявили цю прогалину за 20 хвилин — у звичайному тестуванні вона б не розкрилася. Підсумок: переписали health checks, додали моніторинг AZ-level подій, оновили runbook.

Подібні прогалини — не рідкість. Згідно з нашою статистикою, 70% команд після першого Game Day виявляють хоча б один критичний недолік у процесі incident response. Середній час виявлення проблеми на таких навчаннях — 15 хвилин, а на реальному інциденті може становити години. Один запобігнутий простій production може зекономити компанії понад $50,000.

Структура Game Day

Підготовка (1–2 тижні до)

Обираємо реалістичний сценарій на основі реальних інцидентів або відомих ризиків. Хороший приклад: «Втрата AZ в production». Поганий: «Метеорит падає на датацентр».

Ролі: Game Master (знає сценарій, контролює хід), Responders (команда, яка реагує, не знає деталей), Observers (фіксують події, не втручаються), Executive sponsor (якщо зачіпаються бізнес-метрики).

Готуємо сценарій з inject points — послідовність поломок. Сценарій зберігається у Game Master до початку.

День навчань: 3–4 години

  1. Бриф (15 хвилин) — пояснюємо правила, контакти для abort. Деталі не розкриваємо.
  2. Inject — Game Master вводить першу аномалію. Responders починають діагностику.
  3. Активна фаза (60–90 хвилин) — команда працює з інцидентом як з реальним. Game Master додає complications за розкладом.
  4. Resolution — команда оголошує рішення, або Game Master завершує сценарій.
  5. Hot wash (30–45 хвилин) — негайний розбір, поки все свіже.

Типові сценарії

Сценарій Метод ін'єкції Що перевіряє
AZ failure Security Group блокування для ресурсів в AZ Multi-AZ, Auto Scaling, sticky sessions
Database primary failure pg_ctl stop -m immediate Час failover, health checks застосунків
Certificate expiry Заміна сертифікату на прострочений через cert-manager Моніторинг expiry, діагностика SSL
Dependency outage Mock-сервіс повертає 503 Circuit breaker, fallback, помилки користувача
Ransomware simulation Видалення частини даних з staging Робота бекапів, швидкість відновлення, business continuity

Порівняння Game Day та Chaos Engineering

Параметр Game Day Chaos Engineering
Фокус Люди та процеси Система (resilience)
Інструменти Chaos Mesh, Gremlin, manual Chaos Mesh, Litmus, AWS Fault Injection Simulator
Тривалість 3–4 години (підготовка 1–2 тижні) Безперервно (в рамках CI/CD)
Результат Оновлені runbook'и, action items Метрики resilience (SLO, MTTR)
Частота 2–4 рази на рік Щоденно / щотижня

Game Day та Chaos Engineering доповнюють один одного. Перший вчить команду реагувати, другий — робить систему стійкішою. Детальніше про це можна прочитати в Wikipedia.

Inject через Chaos Mesh під час Game Day

Технічна реалізація — через Chaos Mesh з manual trigger. Приклад network partition:

# Game Master вводить network partition між frontend та backend
kubectl apply -f - <<EOF
apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
  name: gameday-partition-$(date +%s)
  namespace: chaos-testing
spec:
  action: partition
  mode: all
  selector:
    namespaces: [production]
    labelSelectors:
      tier: frontend
  direction: to
  target:
    selector:
      namespaces: [production]
      labelSelectors:
        tier: backend
    mode: all
  duration: "15m"
EOF

Abort — видалення ресурсу:

kubectl delete networkchaos gameday-partition-* -n chaos-testing 

Чому варто проводити Game Day регулярно?

Game Day в 2 рази ефективніше за просте обговорення сценаріїв: він виявляє реальні проблеми комунікації, які не видно на папері. Наприклад, в середньому час failover PostgreSQL — 90 секунд, а при завершенні сертифікату команда витрачає 5 хвилин на діагностику. Ці цифри стають тригерами для покращень.

Регулярні Game Day тренінги з хаос-інжинірингу для DevOps та SRE команд значно покращують incident response та business continuity. Навчання знижують MTTR (mean time to resolve) в середньому на 40% за рік — це в 2 рази краще, ніж без них. Без навчань команда втрачає навички і в реальному інциденті діє хаотично. Game Day — це інвестиція у впевненість та швидкість реакції.

Документування та аналіз

Observers фіксують timeline з точним часом:

09:15:00 - Inject: network partition frontend → backend
09:15:45 - First alert in #monitoring: high 5xx rate
09:18:20 - Engineer A: "дивлюсь що за помилки"
09:19:10 - Engineer A: "timeout до backend API, не розумію звідки"
09:21:00 - Inject 2: CPU stress на primary app server
09:22:30 - Engineer B: "може це infra, дивлюсь метрики"
09:25:00 - Rollback decision made by team lead
09:27:00 - Engineers A and B not aligned, conflicting actions
09:30:00 - Game Master stops inject
09:35:00 - System recovers

З timeline одразу видно: координація зламалася на 09:27. Два інженери робили різні речі — gap в incident response процесі. Потрібна explicit incident commander role.

Hot wash та follow-up

Негайний розбір за шаблоном: виділіть спрацьовані елементи, місця затримок, недокументовані аспекти та runbook'и для оновлення.

Через тиждень — follow-up: список action items з owners та deadlines. Game Day без follow-up — витрачений час.

Що входить у роботу

  • Підготовка реалістичного сценарію на основі ваших ризиків (1–2 тижні).
  • Налаштування Chaos Mesh або іншого інструменту для ін'єкцій.
  • Проведення навчання (3–4 години) з участю Game Master, Observers.
  • Документування timeline, hot wash, звіт з action items.
  • Додатково: навчання команди, оновлення runbook'ів.

Наш досвід — понад 120 успішних Game Day, 7 років на ринку DevOps-послуг, сертифіковані AWS та Kubernetes інженери. Ми гарантуємо якісне проведення завдяки досвіду сертифікованих експертів. За цей час ми виявили понад 200 прогалин у процесах клієнтів, що дозволило скоротити час простою в середньому на 35%. Серед наших клієнтів — понад 50 компаній із фінтех, e-commerce та медіа.

Орієнтир за термінами: підготовка та проведення одного Game Day — від 2 до 3 тижнів. Вартість розраховується індивідуально.

Одна година простою production обходиться в середньому в $10,000 — Game Day допомагає уникнути таких втрат. Замовте проведення Game Day під ключ: ми підготуємо сценарій, налаштуємо Chaos Mesh, проведемо навчання та надамо звіт. Зв'яжіться для оцінки вашого проекту.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141