Saltar al contenido
Runbooks y guardias

La página que abres a las 3 de la mañana
es la que nadie ha leído desde que se escribió.

Un runbook es el único documento cuyo fallo se mide en minutos de caída. También es el que menos probabilidades tiene de leerse un martes cualquiera, que es justo cuando descubrirías que está mal.

Empieza el incidente. Alguien encuentra el runbook, y el tercer paso remite a un panel que se dio de baja, a un script que se movió y al alias de un equipo que ya no existe. Nada de eso era visible ayer.

Los runbooks se deterioran de otra forma que el resto de la documentación. Una especificación desactualizada la lee alguien con tiempo para darse cuenta; un runbook lo lee bajo presión quien esté de guardia, a menudo por primera vez, y cada línea errónea cuesta minutos en el peor momento posible.

El problema real es que nadie sabe qué runbooks son fiables. No porque falte la información, sino porque nada la reúne. ¿Quién ha leído este desde la última reescritura? ¿Siguen funcionando sus enlaces? ¿Ha cambiado desde entonces el servicio que describe?

«Tres de los cinco ingenieros de guardia han leído la versión actual» es una frase que solo puedes decir si la lectura se contó por versión y no por documento.

Qué hace al respecto

Las partes que importan aquí

No toda la lista de funciones, sino las de las que depende este problema concreto.

Acuses de lectura en los que confiar

Se cuentan tras diez segundos de lectura visible, nunca con un clic en el árbol, y solo para la versión actual. Reescribe el runbook y el recuento vuelve a cero, porque quienes leyeron el anterior no han leído este.

Enlaces rotos, detectados antes del incidente

Un enlace relativo que no lleva a ningún documento es un hallazgo, recalculado a partir del corpus en lugar de registrarse una vez y olvidarse. Deja de ser un hallazgo cuando deja de ser cierto.

Obsolescencia medida por el contenido, no por fechas

Se mide desde el último cambio real de contenido, así que un archivo que el worker de sincronización tocó por otros motivos no parece reciente. Un repository recién conectado no informa de ninguna obsolescencia, y la pantalla lo dice en lugar de dar a entender que todo está bien.

Documentación por detrás del código

Un runbook que nombra una ruta de código modificada después que él es la única señal del producto que conecta el código con la documentación, y lo más parecido que hay a una alerta temprana.

Búsqueda en todos los servicios

Estar de guardia en una plataforma significa estarlo para servicios que no escribiste. Una sola tecla busca en todos los repositories conectados, no solo en el que tengas abierto.

Copy for LLM, en pleno incidente

Lleva el runbook y sus vecinos a un modelo como markdown limpio, con el recuento de tokens antes de pegar. Es el motivo por el que se abre un runbook en una segunda pestaña, y requiere una acción en lugar de seis.

En la práctica

Qué pasa de verdad

  1. 01
    Conecta los repositories que cubre la rotación de guardiasNormalmente varios, porque una rotación rara vez corresponde a un solo servicio. Llegan a un mismo proyecto y la búsqueda los abarca todos.
  2. 02
    El análisis de salud encuentra lo que ya está rotoEnlaces relativos rotos, documentos cuyo contenido no ha cambiado en más tiempo que tu umbral y documentos que nombran archivos de código que cambiaron después que ellos. Nada de esto llama a un modelo, así que nada cuesta.
  3. 03
    Alguien descarta los hallazgos equivocadosEl descarte es lo único duradero aquí: sobrevive a la reconstrucción y absorbe su propio redescubrimiento, así que el mismo falso positivo no vuelve en cada pasada.
  4. 04
    El equipo valida los runbooks que están al díaUn estado de revisión en cada uno, fijado sobre el texto exacto. Ahora fiable y sin clasificar se ven distintos en el árbol.
  5. 05
    Un servicio cambia y el runbook noEl push tocó una ruta de código que el runbook nombra. El hallazgo aparece sin que nadie lo registre, y la insignia de validado pasa a indicar desviado.
  6. 06
    Ocurre el incidente y la página es correctaO es incorrecta de una forma que alguien ya conocía, que es la versión realista de esta promesa y la que merece la pena pagar.
Con honestidad

Qué no resuelve esto

Cada página de este sitio lleva una, por lo mismo: una página de caso de uso sin límites es un folleto.

No verifica los pasos
Podemos decirte que un enlace está roto y que el código se movió. No podemos decirte si el paso cuatro sigue funcionando: solo ejecutarlo puede hacerlo.
No es una herramienta de incidentes
Sin alertas, sin avisos de guardia, sin cronología, sin plantilla de postmortem. Convive con esas herramientas; no las sustituye.
La obsolescencia es un umbral que eliges tú
Ningún modelo decide qué significa «antiguo». Un runbook de algo que nunca cambia no está desactualizado a los noventa días, y solo tú sabes cuáles son.