GH GambleHub

Incidents et SRE-playbooks

1) Qu'est-ce qu'un incident et comment il est corrélé avec SLO

L'incident est un événement qui perturbe la fonction SLO/service ou crée un risque de violation (un budget erroné est inacceptable rapidement).
Métriques classiques : MTD, MTTA, MTR, MTBF.
L'erreur de budget et burn-rate définit la priorité et les fenêtres d'escalade.


2) Niveaux de gravité (SEV) et critères

SEVSigneImpactObjectif MTTR
SEV-1Le SLO/down complet critique pour le trafic clé est perturbéTous les utilisateurs/paiements≤ 60 min
SEV-2Dégradation (p95 latence, 5xx/erreurs de paiement ↑)Partie significative≤ 4 h
SEV-3Problèmes locaux/Baselines rejetésService séparé/région≤ 1 jour ouvrable
SEV-4Risque/défaut potentiel sans influence actuellePréparation des fichescomme prévu

Déclencheurs SEV : dépassement de 5xx %, p95> seuil, paiement décline spike, Kafka-lag> seuil, NodeNotReady> X min, TLS expire <7 jours, signaux DDoS/fuite.


3) Rôles et responsabilités (RACI)

Incident Commander (IC) - prise de décision unique, gestion du flux de tâches, changement de statut SEV.
Ops Lead (Tech Lead) - stratégie technique, hypothèses, coordination des fiches.
Communication Lead (Comms) - Status Update (interne/externe), StatusPage/Chat/Mail.
Scribe (Chroniqueur) - temps, solutions, artefacts, liens graphiques/logs.
On-call Engineers/SMEs - exécution des actions sur le pleybuck.
Security/Privacy - activé en cas d'incident de sécurité ou PII.
FinOps/Payments - avec un impact sur la facturation/PSP/coût.


4) Cycle de vie de l'incident

1. Detect (alert/report/synthétique) → auto-création de la carte d'incident.
2. Triage (IC attribué, SEV attribué, collection du contexte minimum).
3. Stabilisation (mitigation : éteindre fich/rollback/rate-limit/failover).
4. Enquête (hypothèses RCA, collecte de faits).
5. Restauration du service (validate SLO, observation).
6. Communication (intérieur/extérieur, rapport final).
7. Post mortem (sans charges, plan CAPA, propriétaires, délais).
8. Prevention (tests/alertes/playbooks/drapeaux, pré-formation de l'équipe).


5) Communications et « salle de guerre »

Un seul canal d'incident ('# inc-sev1-YYYYMMDD-hhmm'), seulement les faits et les actions.
Commandes dans le style du protocole radio : "IC : j'attribue un rollback à la version 1. 24 → ETA 10 min".
Statut Apdate : SEV-1 toutes les 15 min, SEV-2 toutes les 30 à 60 min.
Page d'état/communication externe - via Comms Lead par modèle.
Interdit : chambres parallèles « silencieuses », hypothèses non testées dans le canal commun.


6) Alerting et SLO-burn (exemple de règles)

Canal rapide (1-5 min) et canal lent (1-2 h) burn-rate.
Signaux multiples : erreur de budget, 5xx %, p95, Kafka-lag, paiement décline-rate, synthétique.
La recherche de la cause première n'est effectuée qu'après la stabilisation des symptômes.

Exemples (généralisés) :
promql
Ошибочная доля 5xx > SLO sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.01

Burn-rate быстрый (пример)
(sum(rate(http_requests_total{status=~"5.."}[1m])) / sum(rate(http_requests_total[1m])))
/ (1 - SLO) > 14.4

7) Pleybooks vs ranbooks

Pleybuk est un scénario d'action par type d'incident (branches, conditions, risques).
Ranbook est une « carte » spécifique des étapes/commandes (vérifications, fiches, vérification).
Règle : Pleybuck fait référence à plusieurs classements (rollbacks, feature-flags, failover, zoom, blocage du trafic, etc.).


8) Modèle de carte d'incident

yaml id: INC-YYYYMMDD-XXXX title: "[SEV-1] Рост 5xx на API /payments"
status: active    monitoring    resolved sev: 1 reported_at: 2025-11-03T17:42Z ic: <ФИО>
ops_lead: <ФИО>
comms_lead: <ФИО>
scope: regions: [eu-west-1], tenants: [prod], services: [api, payments]
impact: "5xx=12% (обычно <0.5%), конверсия депозитов -20%"
mitigation: "откат на 1.23.4, включен rate-limit 2k rps, фича X выключена"
timeline:
- "17:42: алерт SLO burn-rate быстрый"
- "17:46: назначен IC, открыт war-room"
- "17:52: найден релиз 1.24 как кандидат"
- "18:02: откат завершен, 5xx вернулись к 0.3%"
artifacts:
dashboards: [...]
logs: [...]
traces: [...]
risk: "возможен очередной всплеск при включении фичи X"
next_steps: "канареечный релиз, тесты, постмортем до 2025-11-05"

9) Modèle SRE-playbook (Markdown)

markdown
Плейбук: <название>
Область/симптомы
Список детекторов, сигнатуры в метриках/логах/трассах.

Быстрая стабилизация (Triage & Mitigation)
- [ ] Ограничить трафик/включить WAF-правило/фичефлаг OFF
- [ ] Роллбэк/канареечный релиз/выкатить фикс конфигурации
- [ ] Включить деградационный режим (read-only, кэш-форс)

Диагностика (RCA hints)
- Метрики: … Логи: … Трассы: …
- Частые первопричины/чек-лист гипотез

Риски и коммуникации
- Внутренние/внешние апдейты, SLA-обязательства

Верификация
- [ ] SLO восстановлено (порог/время окна)
- [ ] Нет регресса по смежным сервисам

Последующие действия
- CAPA, задачи в backlog, обновление алертов/дашбордов/плейбука

10) Playbooks types

10. 1 API 5xx Spike

Stabilisation : Désactiver la flagellation problématique ; augmenter les répliques de l'API ; activer la mise en cache ; Retour sur la sortie.
Diagnostic : diff release, erreurs dans les logs (top-exceptions), croissance p95, pression OBD/cache.
Risques : cascade dans les paiements/backends.

10. 2 БД: replication lag / lock storm

Stabilisation : suspension des jobs/reports lourds ; Rediriger les lectures vers l'assistant ; Augmenter le wal_buffers/replika-sloty.
Diagnostics : longues transactions, demandes de blocage, changements de plan.
Fixation : indices/hints, réaménagement des jobs, partitionnement des requêtes.

10. 3 Kafka consumer lag

Stabilisation : dimensionner temporairement le consumer's ; réduire la production à partir de services non critiques ; augmenter les lots/quotas.
Diagnostic : rebalances, lentes désérialisations, pauses GC.
Vérification : lag → à la valeur cible, pas de drop.

10. 4 K8s NodeNotReady/tempête de ressources

Stabilisation : cordon + drain ; redistribuer les charges ; vérifier le CNI/overlay ; éteindre les DaemonSet bruyants.
Diagnostic : disk pressure, OOM, throttling, drops réseau.
Prévention : pod dissolution des budgets, limites de ressources/demandes.

10. 5 TLS/certificats expirent

Stabilisation : mise à jour forcée du secret/ingress ; override temporaire.
Diagnostic : chaîne de confiance, clock-skew.
Prévention : alertes T-30/T-7/T-1, auto-renewal.

10. 6 DDoS/trafic anormal

Stabilisation : WAF/bot règles, rate-limit/geo-filtres, upstream shed load.
Diagnostic : profils d'attaque (L3/4/7), sources, « parapluies ».
Prévention : anycast, autoscaling, cache, play-nice avec les fournisseurs.

10. 7 Paiement PSP-Outdoor

Stabilisation : routage intelligent sur d'autres PSP/méthodes ; Soulevez retry avec un gitter ; dégradation « douce » de l'IU.
Diagnostic : spike des pannes par code, statuts API/PSP Status Page.
Communications : Apdates transparentes pour les entreprises et le Sapport, statistiques de ND/conversion correctes.

10. 8 Incident de sécurité/fuite de PII

Stabilisation : Isolation des nœuds/rotation secrète, verrouillage d'exfiltration, Legal Hold.
Diagnostic : accès temporel, sujets/champs touchés.
Avis : organismes de réglementation/partenaires/utilisateurs selon les exigences des juridictions.
Prévention : renforcement de la DLP/segmentation, « least privilège ».


11) Automatisation des playbooks

Commandes ChatOps : '/ic set sev 1 ', '/deploy rollback api 1. 23. 4`, `/feature off X`.
Runbook-bots : étapes semi-automatiques (drain node, flip traffic, purge cache).
Self-healing hooks : détecteur → mitigation standard (rate-limit, restart, scale).
Auto-création de cartes/temporisation à partir d'alerts et de commandes.


12) Qualité des playbooks : check-list

  • Symptômes clairs et détecteurs (métriques/logs/tracés).
  • Étapes rapides de stabilisation avec évaluation des risques.
  • Les commandes/scripts sont à jour, vérifiés dans staging.
  • Vérification de la récupération de SLO.
  • Modèles de communication et critères d'updates externes.
  • Référence post mortem et APA après fermeture.

13) Post mortem (blameless) et CAPA

L'objectif est de s'instruire, pas de trouver le coupable.
Contenu : ce qui s'est passé, comment on a découvert ce qui était bon/mauvais, la contribution des facteurs (ceux + processus), les actions pour prévenir.
Délai : SEV-1 - dans les 48 heures ; SEV-2 - 3 jours ouvrables.
CAPA : propriétaires spécifiques, échéancier, effets mesurables (diminution du TTMT/croissance du TTMT).


14) Aspects juridiques et base de preuve

Legal Hold : gel des logs/pistes/alerts, stockage write-once.
Chaîne de stockage des artefacts : accès par rôle, contrôle de l'intégrité.
Avis réglementaires : délais/modèles pour les administrations (en particulier pour les paiements/IPI touchés).
Privacy : minimiser et masquer les IPI lors de l'analyse.


15) Mesures de l'efficacité du processus d'incident

MTTD/MTTA/MTR par quartier et par domaine.
SEV correct (underrating/overrating).
Proportion d'incidents auto-mitigate.
Couverture de pleybuks top N scénarios (> 90 %).
Exécution du CAPA dans les délais.


16) Mise en œuvre par étapes

1. Semaine 1 : matrice SEV, rôles on-call, modèle de carte générale, règlement war-room.
2. Semaine 2 : Pleybooks pour le top 5 des symptômes (5xx, DB-lag, Kafka-lag, NodeNotReady, TLS).
3. Semaine 3 : ChatOps/bots, auto-création de cartes, modèles de communication/StatusPage.
4. Semaine 4 + : Pleybooks de sécurité, PSP-outeiji, Legal Hold, régulièrement drague/jeux de chaos.


17) Exemples de rangées « rapides » (fragments)

Rollback API (K8s)

bash kubectl rollout undo deploy/api -n prod kubectl rollout status deploy/api -n prod --timeout=5m
Верификация:
kubectl -n prod top pods -l app=api

Drain node

bash kubectl cordon $NODE && kubectl drain $NODE --ignore-daemonsets --delete-emptydir-data --timeout=10m

Feature-flag OFF (exemple)

bash curl -X POST "$FF_URL/toggle" -H "Authorization: Bearer $TOKEN" -d '{"feature":"X","enabled":false}'

18) Mini-FAQ

Quand soulever un SEV-1 ?
Lorsque la fonction clé SLO/Business (paiements, login, jeu) souffre, et burn-rate « mange » le budget des heures à l'avance.

Qu'est-ce qui est plus important - RCA ou récupération ?
Toujours stabilisation, puis RCA. Le temps avant la stabilisation est le principal indicateur.

Dois-je tout automatiser ?
Automatiser les étapes fréquentes et sécurisées ; rare/risqué - via semi-auto et confirmation IC.


Total

Un processus d'incident robuste repose sur trois piliers : des rôles clairs et des règles SEV, des playbooks/ranks de qualité avec automatisation et une culture post mortem sans frais. Fixez les modèles, entraînez-vous en ligne, mesurez le MTTR/budget défectueux et améliorez constamment les détecteurs et les playbooks, ce qui réduit directement les risques et le coût des interruptions de service.

Contact

Prendre contact

Contactez-nous pour toute question ou demande d’assistance.Nous sommes toujours prêts à vous aider !

Commencer l’intégration

L’Email est obligatoire. Telegram ou WhatsApp — optionnels.

Votre nom optionnel
Email optionnel
Objet optionnel
Message optionnel
Telegram optionnel
@
Si vous indiquez Telegram — nous vous répondrons aussi là-bas.
WhatsApp optionnel
Format : +code pays et numéro (ex. +33XXXXXXXXX).

En cliquant sur ce bouton, vous acceptez le traitement de vos données.