GH GambleHub

Управління інцидентами

(Розділ: Технології та Інфраструктура)

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

Управління інцидентами - це повторюваний процес швидкого відновлення користувацької цінності і мінімізації збитку бізнесу. Опора - чіткі ролі (Incident Manager, Tech Lead, Comms), SLO-гейти, ескалації, ChatOps-процеси, підготовлені рунабуки і «безобвинні» пост-інцидентні розбори з вимірними action items.

1) Цілі та принципи

Швидкість і безпека: швидкий діагноз → безпечна стабілізація → стійке відновлення.
Єдиний власник: призначений Incident Manager (IM) приймає процесні рішення.
Комунікації як продукт: передбачувані апдейти для стейкхолдерів і користувачів.
Дані> думки: SLO/метрики/трейси/логи - джерело правди.
Blameless: розбір причин без персональних звинувачень; фокус на системних поліпшеннях.

2) Класифікація інцидентів (Severity/Impact/Urgency)

Severity (приклад):
  • SEV1 (критичний): серйозний збиток виручці/TTW/платежам,> 20% користувачів або цілі регіони; SLA порушений/загроза PII.
  • SEV2 (високий): часткова деградація ключових потоків (депозит/ставка/запуск ігор), вплив 5-20%.
  • SEV3 (середній): помітна деградація вторинних сервісів, обхід є.
  • SEV4 (низький): мінор, обмежений ефект, без впливу на SLO/SLA.

Impact: хто торкнуться (все/регіон/тенант/канал). Urgency: швидкість деградації (fast-burn/slow-burn по бюджету помилок).

3) Життєвий цикл інциденту

1. Detect - сигнал з алертів/SLO/синтетики/репортів.
2. Acknowledge - on-call підтверджує прийом, призначає IM.
3. Triage - оцінка SEV/Impact, збір гіпотез, відкриття War-Room.
4. Mitigate - стабілізація (відкат/перемикання маршруту/фічефлаги/масштабування).
5. Communicate - регулярні статус-апдейти (всередині/назовні).
6. Recover - повне відновлення SLO/бізнес-метрик.
7. Close - фіксація хронології, збір артефактів, PIR (RCA + action items).

4) Ролі та відповідальність (RACI-схема)

Incident Manager (IM) - власник процесу, призначає ролі, стежить за часом, приймає процесні рішення (R).
Technical Lead (TL) - веде діагностику/гіпотези/фікси, координує інженерів (A/R).
Communications (Comms) - статус-апдейти, зв'язок з підтримкою/бізнесом/PR, статус-сторінка (R).
Scribe - протокол (таймлайн, прийняті рішення, посилання, артефакти) (R).
Stakeholders - продукт/платежі/ігрові провайдери/безпека (C/I).

Мінімум на SEV1: IM + TL + Comms + Scribe. На SEV2 допускається поєднання ролей.

5) War-Room и ChatOps

Окремі канали: '#incident -warroom- <id>'( робочий),'#incident -status'( тільки апдейти).
Шаблонні команди: `/incident start`, `/status update`, `/call <owner>`, `/rollback`, `/freeze`, `/scale +N`.
Бот підтягує контекст: останні релізи, дашборди, пов'язані алерти, trace exemplars, схеми залежностей.
Правила спілкування: коротко, за фактами, один спікер (TL), IM модерує.

6) Тригери і гейти

SLO-гейти: fast/slow burn, падіння конверсії платежів, TTW p95> порогу, p99 API ↑, черги виплат «горять».
Автодії: stop canary, rollback, включення degrade-режиму (обмеження функцій), включення синтетики високої частоти.
Freeze: всі релізи/міграції стоп до стабілізації і PIR.

7) Типові сценарії (рунабук-патерни)

A) Платежі: зростання таймаутів/відмов у PSP

1. Stop promote і заморожування релізів платіжного контуру.
2. Перемкнути маршрут PSP на резервний, підняти таймаут/ретраї по політиці.
3. Звірка незавершених транзакцій, повтор з ідемпотентними ключами.
4. Комунікація Comms → саппорт: Чи працюєш резерв? ETA.

B) API p99↑ і 5xx після релізу

1. Відкат (blue-green/canary → stable).
2. Перевірити кеш-хіт, глибину черг, гарячі точки БД/провайдерів ігор.
3. Тимчасове масштабування, обмеження важких фіч через feature flags.

C) Провайдер ігор недоступний

1. Перемкнути трафік на доступні студії/ігри, показати банер статусу.
2. Включити синтетичні перевірки кожні 30-60с.
3. Узгодити компенсації/бонуси (по політиці) - внести в PIR.

D) Витік/підозра на PII

1. Ізоляція компонент, ревокація ключів/токенів, збір логів (WORM).
2. Узгодження правової комунікації/регуляторики.
3. Пост-інцидентні дії: секрет-ротація, маскування, доступи.

8) Комунікації (внутрішні/зовнішні)

Частота апдейтів: SEV1 - кожні 15-30 хв, SEV2 - 30-60 хв.

Шаблон внутрішнього статусу:
  • Що зламано: "Депозити через PSP-X: зростання таймаутів"
  • Кого торкнулося: «TR/BR, ~ 18% користувачів потоку».
  • Коли почалося: «12:07 EET, SEV1.»
  • Що робимо: «Перемикаємо маршрут на PSP-Y, включені ретраї/обмеження ставки».
  • Наступний апдейт: «через 20 хвилин».
  • Контакт: «IM @duty-im, TL @oncall-pay.»

Публічний статус (сторінка/соцмережі) - скорочений, без PII і зайвих деталей, з ETA і посиланням на подальші оновлення.

9) Збір артефактів та аудит

Таймлайн подій (хвилинна точність), версії сервісів, фіча-прапори, зміни конфігів.
Знімки дашбордів, приблизні траси (trace_id), логи «до/під час/після».
Посилання на тікети, PR, релізи, рунабуки.
Звіт з комунікацій (коли/кому/що).
Все складається в картку інциденту.

10) Закриття та PIR (Post-Incident Review)

Формат PIR (короткий):
  • Резюме: що сталося, масштаб, тривалість, SEV.
  • Вплив: користувачі/регіони, SLO/SLA, фін. ефект.
  • Таймлайн: детально, по хвилинах.
  • Root Cause: технічна + організаційна (чому недетектували раніше).
  • Detections & Defenses: що допомогло/підвело (алерти, синтетика, фічефлаги).
  • Action Items: конкретні завдання, власники, терміни (і як перевіримо ефект).
  • Lessons Learned: що змінюємо в процесі/архітектурі/спостережуваності.

Правила: без звинувачень, максимум фактів, обов'язковий follow-up через 2-4 тижні перевірки виконаних пунктів.

11) Метрики надійності процесу

MTTD (Mean Time To Detect) - середній час виявлення.
MTTA (… Acknowledge) - до підтвердження on-call.
MTTR (… Restore) - до відновлення SLO.
Change Failure Rate -% релізів, що призвели до інцидентів.
Incident Rate по SEV, розподіл по доменах (Payments/Games/Infra).
Alert Quality: частка галасливих/помилкових, час до дії після алерта.
Комм-SLA: дотримання періодичності статус-апдейтів.

12) Інтеграції з SLO і релізами

Гейти в CD: промоушен канарки тільки при зелених SLO-проксі (availability, p95, conv, TTW).
Freeze-процедури: при fast-burn/SEV1 - стоп релізів до PIR.
Авто-анотації в графах: релізи/прапори/міграції видно на дашбордах.

13) Регуляторика та комплаєнс

PII: маскування/псевдонімізація в логах/трейсах, WORM-сховища аудиту, контроль доступу.
Регіональність: не виносити дані користувача за межі дозволених юрисдикцій.
Звітність: формалізовані листи/повідомлення регуляторам - шаблони і процес ескалації.

14) Навчання та готовність (Game-Day)

Щоквартальні навчання: «падіння PSP», «провайдер ігор недоступний», «p99 сплеск», «витік ключа».
Таймери на MTTA/MTTR, ретро за вправами.
Оновлення рунабуків і контактів, перевірка ChatOps-команд.

15) Чек-лист готовності (до інциденту)

1. Узгоджені SEV-правила і матриця ескалацій.
2. Призначені on-call ротації, IM/TL/Comms/Scribe.
3. Рунабуки за ключовими сценаріями (платежі, ігри, БД, кеші, черги).
4. SLO-карта і burn-rate алерти, статус-сторінка.
5. ChatOps-бот: команди, автоконтекст, шаблони статусів.
6. Шаблони PIR і картки інциденту.
7. Регулярні game-day і ревізії контактів/прав.
8. Політика freeze і «червона кнопка» (rollback/kill-switch).

16) Антипатерни

Немає єдиного IM, «натовп лідирує» → хаос і затримки.
Відсутність SLO-гейтів → пізня детекція, галасливі алерти.
Реліз під час інциденту без freeze → каскадні збої.
Логів і трейсів недостатньо, немає артефактів → слабкий PIR.
Обвинувальна культура → приховані помилки, страх ескалації.
Комунікації «за натхненням» → втрата довіри бізнесу/користувачів.

17) Шаблони (копіюйте у вашу wiki)

A) Картка інциденту (YAML)

yaml id: INC-2025-11-005 title: PSP-X timeouts in TR/BR sev: SEV1 start_at: 2025-11-05T12:07:00+02:00 status: active impact: "Deposits via PSP-X failing for ~18% users (TR, BR)"
im: "@oncall-im"
tl: "@oncall-pay"
comms: "@oncall-comms"
scribe: "@oncall-scribe"
mitigations:
- "Reroute to PSP-Y"
- "Enable retries and raise timeouts"
next_update_in: "20m"
links:
grafana: "<dashboard-url>"
traces: "<tempo-link>"
logs: "<loki-query>"
runbook: "payments/psp_timeout"

B) Статус-апдейт (внутрішній)


[12:25] SEV1 PSP-X timeouts — TR/BR
Impact: ~18% deposits affected. SLO fast-burn active.
Mitigation: Rerouting to PSP-Y; retries enabled; release freeze.
ETA next update: 12:45 EET
IM: @oncall-im      TL: @oncall-pay

C) PIR (шапка)


Summary, Impact, Timeline, Root Cause (tech+org),
Detections/Defenses, Action Items (owner+due), Lessons Learned.

Підсумки

Сильне управління інцидентами - це структура + дисципліна: заздалегідь обумовлені ролі, SLO-гейти, відпрацьовані рунабуки, прозорі комунікації і «безобвинний» PIR. Такий контур скорочує MTTA/MTTR, знижує вартість простоїв, зміцнює довіру користувачів і дозволяє релізувати сміливіше - але безпечно.

Contact

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

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

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

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

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

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