"Solo era cambiar un nombre"
Hay incidentes que empiezan con un cambio inocente. Se renombra un recurso en el código, se aplica y la herramienta, que no sabe que es el mismo, destruye el antiguo y crea uno nuevo. Si era una base de datos, el nombre nuevo llega con una base de datos vacía.
La herramienta lo habría avisado. Bastaba con leer el plan.
Qué dice un plan
Antes de aplicar, una herramienta de infraestructura como código calcula la diferencia entre lo declarado y lo que existe, y la muestra:
- Crear: recursos nuevos.
- Modificar: cambios que se aplican sobre un recurso existente sin sustituirlo.
- Destruir y recrear: cambios que exigen borrar el recurso y crear otro. Son los peligrosos.
- Destruir: recursos que dejan de estar en el código.
El plan es el equivalente a la revisión de un cambio de código: se lee antes, no después.
Cómo convertir el plan en una compuerta
- El plan se genera automáticamente en cada propuesta de cambio y se adjunta a la revisión.
- Lo que se aplica es exactamente el plan revisado, no uno calculado de nuevo minutos después (entre tanto, la realidad puede haber cambiado).
- Todo lo destructivo exige aprobación explícita de una persona, con nombre, igual que las compuertas de la serie de Plataforma.
- Los recursos críticos se protegen contra el borrado en el propio código, para que ni siquiera un plan aprobado por error pueda eliminarlos.
Un plan que dice algo más
El plan dice qué cambia. Falta una pregunta que casi nunca se hace en ese momento y que importa tanto como la otra: ¿cuánto va a costar?
Cómo lo aplicamos: Automatización e IaC.