La deriva siempre llega
Por mucha disciplina que haya, la realidad se aleja del código: un cambio de urgencia hecho a mano, un ajuste automático del proveedor, una actualización que modificó una configuración. A esa distancia se le llama deriva.
No es un fracaso que exista. Es un fracaso no saberlo. La deriva no detectada es la que provoca que un cambio inocente en el código "deshaga" un arreglo de urgencia que nadie trasladó, o que un entorno reconstruido desde código no se comporte como el original.
Comprobar con calendario
La detección se hace de forma periódica y automática:
- Para la infraestructura: se calcula el plan contra el entorno sin aplicarlo. Si el plan no está vacío, hay deriva.
- Para los servidores: se comprueba cada uno contra su línea base, como vimos en el artículo anterior.
Cuanto más frecuente es la comprobación, más pequeñas son las diferencias y más fácil es saber de dónde salieron.
Cada diferencia, una decisión
Detectar no basta: cada diferencia exige elegir entre dos caminos.
- La realidad tenía razón. El cambio a mano era necesario (por ejemplo, un ajuste de urgencia). Se lleva al código, se revisa y se aplica formalmente.
- El código tiene razón. El cambio a mano no debía existir. Se vuelve a aplicar el código para devolver la realidad a lo declarado.
Lo que no vale es la tercera opción, la más habitual: dejarla estar. Cada deriva ignorada hace la siguiente más difícil de entender.
Reducir la fuente
La mejor forma de tener poca deriva es dejar poco margen para crearla: permisos de escritura en la consola solo para emergencias, con registro de quién los usa, y la regla de que todo cambio de urgencia se traslada al código ese mismo día.
Con la realidad y el código alineados, se puede afrontar lo que más miedo da: cambiar cosas importantes en producción.
Cómo lo aplicamos: Automatización e IaC.