Ir al contenido

Deriva

La deriva es una diferencia entre lo que dice el código y lo que de verdad existe en la nube. En general significa que alguien cambió algo fuera de un merge request: en la consola de Google Cloud, con una concesión de tiempo limitado, o con un comando ejecutado a mano. Airframe no intenta impedir cada cambio así; se asegura de que ninguno pase inadvertido, revisando cada raíz todos los días y abriendo un issue cuando los dos no coinciden.

Toda la plataforma descansa en una promesa: lo que está en el código en main es lo que se ejecuta. Las revisiones, el paquete de políticas y el registro de auditoría miran el código. Un cambio hecho a mano se salta los tres y, peor, el siguiente apply de esa raíz puede deshacerlo en silencio, o fallar por su causa, en un momento que nadie espera.

La deriva no siempre es un error. Un mantenedor que corrige una caída con una concesión crea deriva a propósito. Lo que importa es que se vea y después se resuelva, de una forma o de la otra.

el códigoen mainlo que existeen la nubeun plan diarioprogramadoun issue por cadaraíz con derivacodificar o revertir;el issue se cierra

Cada repositorio con raíces de Terraform tiene un pipeline programado diario. En él, el trabajo de deriva del componente tf-apply planifica cada raíz contra la infraestructura real sin aplicar nada. Un plan vacío significa que la raíz coincide. Un plan que no está vacío significa que algo derivó.

Las dos raíces de la plataforma que despliegan imágenes, la de la compuerta de aprobación y la del catálogo de arquitectura, se planifican contra las imágenes que aplicaron por última vez, que registran en la salida images de su estado. Por eso una imagen construida para un commit y nunca desplegada no es deriva: el plan pregunta si la nube difiere de la última aplicación.

Las tres raíces de landing-zone que todavía se aplican desde una laptop se planifican de la misma forma, con una identidad que solo puede leer, así que un cambio hecho con una concesión aparece en menos de un día.

Después de los trabajos de deriva, el componente drift-report convierte sus resultados en issues de GitLab, como la identidad de auditoría de la plataforma:

  • un issue abierto por cada raíz con deriva, con la etiqueta audit::drift y el nombre de la raíz en el título;
  • el issue enumera los recursos que difieren y lo que el plan haría con cada uno, nunca sus valores, así que ningún secreto puede filtrarse a un issue;
  • mientras dura la deriva, cada ejecución diaria reescribe el issue;
  • la primera ejecución que encuentra la raíz coincidiendo otra vez lo cierra.

Por ejemplo, el Drift: gate de control-plane fue una deriva falsa. Cada merge de control-plane construía una nueva imagen de la compuerta de aprobación, mientras que la compuerta se desplegaba solo cuando cambiaba su propio código, y el plan diario comparaba contra la construcción más reciente, así que desde el 2026-09-29 la mayoría de las mañanas lo informaron. La corrección del 2026-10-02 hizo que el plan comparara contra las imágenes que la raíz aplicó por última vez, y la ejecución del 2026-10-03 encontró la raíz coincidiendo y cerró el issue.

Lee el issue, averigua quién cambió qué y por qué, y elige una de dos correcciones:

  • Codificarlo. Si el cambio era correcto, escribe ese cambio en el código en un merge request. Una vez aplicado, el siguiente plan diario sale vacío y el issue se cierra.
  • Revertirlo. Si el cambio era incorrecto, deja que gane el código: el siguiente apply de esa raíz, desde un pipeline en su rama main, devuelve la infraestructura a lo que dice el código, y la siguiente ejecución diaria cierra el issue.

De cualquier forma, el código sigue siendo la única fuente de verdad, y todo cambio en él pasa por un merge request y sus verificaciones.

Por qué la consola no es la forma de cambiar las cosas

Sección titulada «Por qué la consola no es la forma de cambiar las cosas»

La consola sirve para mirar. Para cambiar, se salta todo lo que hace seguro un cambio en Airframe: nadie más lo revisa, ninguna regla lo verifica, ningún plan muestra lo que toca, y nada registra por qué se hizo. De todos modos, las cuentas de uso diario de las personas no pueden cambiar la infraestructura de producción; las concesiones de tiempo limitado existen para las emergencias, y la detección de deriva es lo que asegura que una corrección de emergencia vuelva al código.

Dónde está

En el repositorio control-plane:

Licencia MIT. Copyright de los colaboradores de Airframe.

Este sitio describe la versión 2026.10.20-1 de la plataforma.