Registre Operations
Runbooks, playbooks, procédures de déploiement et protocoles d'incident. Les workflows que les agents exécutent de façon autonome.
Que contient Operations ?
Runbooks · Playbooks d'incident · How-to guides · Procédures de déploiement · Protocoles de rollback · Recettes d'observabilité · Escalade & alerting
Humains vs Agents IA
Se guide en situation de crise, capitalise sur les incidents résolus, onboarde sur les opérations courantes.
Automatise les actions répétables, exécute des playbooks de manière autonome, génère des runbooks depuis les autres registres, propose des mises à jour après chaque incident.
Asymétrie : guidance vs automatisation.
Modes de consommation
Recherche d'incident et récupération de contexte opérationnel par RAG.
Runbooks et playbooks répétables encapsulés comme MCP Skills exécutables.
Runbooks comme MCP Skills
Les runbooks ne sont pas seulement documentés : ils sont encapsulés comme des outils appelables. L'agent n'en fait pas une lecture linéaire — il les invoque avec des paramètres et reçoit un résultat structuré.
from mcp import tool
from dataclasses import dataclass
@dataclass
class RunbookResult:
status: str # "resolved" | "escalate"
lag_before: int
lag_after: int
actions_taken: list[str]
duration_seconds: int
@tool
def catalog_indexation_lag(
partition: str,
consumer_group: str = "catalog-indexer",
) -> RunbookResult:
"""
Runbook: Kafka consumer lag on catalogue indexation partition.
Diagnoses, scales consumer group, waits for lag resorption.
"""
lag_before = get_consumer_lag(partition, consumer_group)
actions = [f"Detected lag: {lag_before} messages"]
if lag_before > 5000:
scale_consumer_group(consumer_group, replicas=6)
actions.append("Scaled consumer group to 6 instances")
lag_after = wait_for_resorption(partition, consumer_group, timeout=600)
actions.append(f"Lag resolved: {lag_after} messages remaining")
return RunbookResult(
status="resolved" if lag_after < 100 else "escalate",
lag_before=lag_before,
lag_after=lag_after,
actions_taken=actions,
duration_seconds=elapsed(),
)
return RunbookResult(
status="resolved", lag_before=lag_before, lag_after=lag_before,
actions_taken=["Lag within threshold — no action taken"], duration_seconds=0,
) Structure d'un runbook
---
register: operations
level: team
owner: platform-engineer
status: active
consumption-mode: skill
mcp-skill: catalog-indexation-lag
last-validated: 2026-06-03
---
# Runbook — Catalogue Indexation Lag
## Trigger
Datadog alert: `kafka.consumer.lag > 5000` on partition `catalog-updates`.
## Known causes
- High-volume operator burst (> 2000 listings updated simultaneously)
- Elasticsearch backpressure during bulk flush window
- Consumer group crash / pod eviction
## Resolution
Execute MCP skill `catalog_indexation_lag` with affected partition.
Expected resolution time: < 10 minutes for lags under 50,000 messages.
## Escalation
If lag persists after 10 min or exceeds 100,000 messages → PagerDuty: platform-oncall.
## Post-incident
Update this runbook with observed cause. Add Decision Context to Knowledge if pattern is new.