El incidente simulado, de la alerta al postmortem. Sin solutions.md hasta entregar.
Ejercicio 1 — El protocolo en frío
- Escribe el protocolo de 5 pasos (§1) como checklist imprimible del on-call (el fichero
docs/oncall.md): con los comandos de cada paso (dash, trace, log, diff, rollback/flag). - El simulacro de confirmación: genera un síntoma falso (un spike de CPU sin impacto en usuarios: un job del 31 pesado). Con tu checklist: ¿el paso 1 (¿es real?) te salva del page innecesario? Documenta el criterio que distingue síntoma real de ruido.
- La acotación: para el incidente real del §2, escribe las 5 preguntas del paso 2 (¿quiénes? ¿dónde? ¿desde cuándo? ¿qué cambió? ¿cuánto impacto?) con la respuesta de cada una usando las herramientas del 45/46.
Ejercicio 2 — El incidente del curso
- Reproduce el incidente del §2 en staging: el prefetch con rate limit, el p95 a 2.8 s, y la cronología completa (dash con anotación de deploy → trace con el span nuevo → log con los WARNING → git diff → flag).
- La mitigación quirúrgica vs el martillo: mide el tiempo de cada mitigación: (a) el flag (¿cuánto en aplicar y volver al p95 base?); (b) el rollback completo (41: ¿cuánto? ¿qué se pierde con el rollback — las otras features del deploy?); (c) scale-out (55: ¿ayuda a este incidente o disfraza?). Documenta la decisión.
- El finding de la ironía: la PR era una "optimización". Escribe el guard que evita el regreso: ¿qué revisión del 50 habría cazado el prefetch bajo rate limit? ¿Qué test del 36 lo habría medido?
Ejercicio 3 — La reproducción
- Captura el estado del incidente: la query del prefetch, el patrón de rate limit, y el dataset anonimizado (la 23: los identificadores y el patrón, sin PII). Pega el dataset de reproducción.
- El test de reproducción: con las herramientas del 34 (integración) o del 36 (carga): el test que FALLA con la firma del incidente. Pégalo rojo.
- El fix con su regresión: aplica el fix correcto (¿el caché del 38 con TTL y single-flight? ¿el prefetch async? decide) y verifica: test verde + la meseta del 36 en verde. El test de regresión entra a la suite con el nombre que lo documenta.
Ejercicio 4 — El postmortem
- Escribe el postmortem completo del incidente (§4) con la plantilla: timeline UTC, impacto (¿cuántos usuarios, cuánto SLO del budget?), causas raíz + contribuyentes, acciones con dueño y fecha.
- El test blameless: revisa tu postmortem: ¿aparece algún nombre/rol humano como causa? Reescríbelo en términos del sistema. ¿La diferencia en el tono del documento?
- Las acciones que se cierran: marca las 4 acciones del §4 como issues reales (o su equivalente). La regla: una acción sin issue con dueño y fecha es un deseo. ¿Cuál de las 4 es P1 y por qué?
Ejercicio 5 — El on-call sostenible
- El game day completo del 46 (el Redis apagado) llevado a postmortem: escribe el documento con la cronología real del ejercicio, y las acciones que surgieron (¿la alerta del outbox que faltó? el runbook del heartbeat).
- La métrica de madurez: lista los incidentes del curso (el del §2, el game day, los hallazgos del 42-46) con su MTTR estimado: ¿la tendencia? ¿Qué inversión de las de este módulo (45/46) la explica?
- El documento final
docs/oncall.md: el protocolo, las 5 alertas page con su runbook, el checklist del postmortem, y las reglas del on-call de 1 (MOC, blackout, recuperación). Máximo 2 páginas: el manual que el tú de las 3 a.m. sigue sin pensar.
Entrega
Pega el oncall.md, la cronología del incidente con la mitigación elegida, el test de reproducción y el postmortem blameless. Después: Lección 48 — Documentación y ADRs (módulo 11).