Jakub Kornafel
← Log

Mi propia web me estuvo mintiendo tres semanas

Tres despliegues fallaron. La web seguía contestando 200. Me enteré de casualidad, mientras buscaba otra cosa.

Me gano la vida construyendo sistemas que sepan avisar a una persona de que algo ha salido mal.

Mi propia web estuvo tres semanas sirviendo una versión dos commits por detrás. Y yo, tan tranquilo.

Lo que pasó, por orden. El 6 de agosto subí dos cambios a una subpágina. Arrancaron tres despliegues. Los tres fallaron. Cada uno anotó una duración de build de cero milisegundos y el mensaje «Page build failed.». Ni un detalle, ni un aviso, nada en el correo.

Cero milisegundos quiere decir que el build ni llegó a empezar, así que mi código no tenía nada que ver. Se había caído algo más arriba.

¿Y la web? La web, estupenda. HTTP 200, certificado en regla, todo cargando. Seguía sirviéndose el último build correcto, igual que el día anterior. El fallo no tenía superficie visible por ningún lado. Desde fuera, desde mi navegador, desde el de cualquiera: una web sana.

Lo descubrí porque andaba enredando con otra cosa y miré el estado de los despliegues por curiosidad.

El paralelismo que incomoda

Es el mismo modo de fallo contra el que levanto puertas todos los días. Solo que llegó por un flanco que yo no había defendido.

El agente informa de éxito. Las pruebas pasan. El diff se ve limpio. Todo lo que asoma en la superficie dice que el trabajo está hecho, y la única forma de saber lo contrario es comprobar algo que quien informa no controla: abrir la aplicación de verdad, consultar el estado de verdad, contrastar con algo que el optimizador no alcance.

Ese reflejo lo tenía con los agentes. Con mi propio pipeline de despliegue, no. Y ahí estaba, veintiún días sirviendo contenido rancio sin decir ni mu.

El arreglo, por cierto, consistió en quitar, no en añadir. La web es HTML plano y aun así cada despliegue la pasaba por un motor de plantillas que nunca hizo falta: 165 segundos para publicar medio megabyte. Un fichero vacío después, el despliegue es una copia de ficheros y tarda 19 segundos. Nueve décimas partes del tiempo se iban en un paso cuya única aportación real era poder fallar.

Lo que me llevo

Un sistema que no sabe decirte que ha fallado te dejará creer que todo va bien tanto tiempo como tú se lo permitas. El silencio no es un estado. Si en tres semanas nada ha dado señal de problema, eso es una afirmación que conviene poner a prueba, no una razón para relajarse.

Ve ahora a mirar el último despliegue correcto de aquello de lo que estés más seguro. Te espero. Si el resultado te sorprende, cuéntamelo — colecciono estas historias.