Publicado el

Declarar, no ordenar

Un script dice qué pasos dar; una declaración dice cómo debe quedar. La diferencia parece pequeña y lo cambia todo: qué pasa si se ejecuta dos veces, si algo ya existía o si a mitad de camino falla.

Línea de servicio Automatización e IaC

Dos formas de pedir lo mismo

Supón que necesitas tres servidores detrás de un balanceador. Hay dos maneras de escribirlo.

Ordenando (un script): crea un servidor, crea otro, crea un tercero, crea el balanceador, conecta los tres. Funciona la primera vez. ¿Y la segunda? Crea tres servidores más. ¿Y si ya había dos? Crea tres, y quedan cinco. ¿Y si falla en el paso cuatro? Queda a medias, y hay que adivinar qué se hizo.

Declarando (infraestructura como código): "deben existir tres servidores de este tamaño detrás de un balanceador". Una herramienta compara lo declarado con lo que existe y hace solo lo que falta.

Ordenar pasos o declarar el resultadoUn script repetido crea duplicados; una declaración se compara con lo que existe y solo hace lo que falta.IAC · DECLARAROrdenar pasos o declarar el resultadoORDENAR (SCRIPT)1. crear servidor2. crear servidor3. crear servidor4. crear balanceador5. conectarSegunda ejecución:6 servidores, 2 balanceadoresFalla en el paso 4:queda a mediasDECLARAR (ESTADO DESEADO)servidores = 3tamaño = medianobalanceador = sícompara con lo que existeSegunda ejecución:no hace nada: ya está asíSi ya había 2 servidores:crea solo el que faltaDeclarar se puede repetir sin miedo.Lo existente se respeta y un fallo se recupera volviendo a ejecutar.N100F · n100f.com

Por qué declarar es más seguro

  • Se puede repetir sin miedo. Ejecutar dos veces lo mismo deja el mismo resultado. Si ya está como debe, no se toca nada.
  • Lo existente se respeta. Si dos de los tres servidores ya existen, solo se crea el tercero.
  • Los fallos se recuperan. Si algo falla a mitad, se vuelve a ejecutar y la herramienta continúa desde donde quedó.
  • El código se lee como una descripción. Quien lo abre ve qué hay, no una receta que tiene que ejecutar en la cabeza para entenderla.

Cuándo se sigue necesitando ordenar

Algunas tareas son pasos por naturaleza: migrar datos, rotar una clave, reiniciar servicios en un orden concreto. Para esas, los scripts siguen siendo la herramienta adecuada, con dos condiciones: que comprueben antes de actuar (no crear lo que ya existe) y que se puedan repetir sin romper nada.

Declarar lo que debe existir tiene una consecuencia práctica: la herramienta necesita recordar qué creó y cómo lo relaciona con el código. Esa memoria es el estado.


Cómo lo aplicamos: Automatización e IaC.

Si tu costo cloud crece sin que nadie sepa por qué, o tu arquitectura depende de quien la montó, conversemos.

Conversemos