En el subcapítulo anterior montamos un pipeline básico con GitHub Actions. Funciona muy bien, pero existen herramientas especializadas en el flujo de Terraform que lo hacen aún más cómodo y seguro. La más conocida es Atlantis. En este subcapítulo entenderás qué aporta y por qué muchos equipos la adoptan para llevar el GitOps de su infraestructura a otro nivel.

Recordatorio: GitOps

Vimos el concepto de GitOps en el subcapítulo 12.5: gestionar la infraestructura a través de Git y Pull Requests, de forma que todo cambio se propone, se revisa y se aplica mediante el flujo de Git. Atlantis es una herramienta diseñada específicamente para hacer GitOps con Terraform de la forma más fluida posible.

Qué es Atlantis

Atlantis es una herramienta open source que automatiza Terraform directamente desde los Pull Requests, mediante comentarios. En vez de que el pipeline ejecute el plan y el apply «por su cuenta», con Atlantis tú y tu equipo controláis esas acciones escribiendo comentarios en el propio PR.

En el Pull Request, escribes un comentario:
   "atlantis plan"   →  Atlantis ejecuta el plan y lo publica como respuesta
   "atlantis apply"  →  Atlantis aplica los cambios (tras aprobación)

Analogía: Atlantis es como un asistente que vive dentro de tus Pull Requests. Le das órdenes por comentarios («planifica esto», «aplícalo») y él las ejecuta y te responde ahí mismo, dejando todo registrado en la conversación del PR. Es como tener a Terraform «metido» en la discusión del cambio.

Cómo funciona el flujo con Atlantis

El flujo típico es muy natural y conversacional:

1. Alguien abre un Pull Request con cambios en Terraform
        │
        ▼
2. Atlantis detecta el PR y ejecuta "plan" AUTOMÁTICAMENTE
   → publica el plan como comentario en el PR
        │
        ▼
3. El equipo REVISA el plan en el PR (subcap. 12.5)
        │
        ▼
4. Un compañero APRUEBA el PR
        │
        ▼
5. Alguien comenta "atlantis apply"
   → Atlantis aplica los cambios y publica el resultado
        │
        ▼
6. El PR se fusiona

Todo ocurre dentro del Pull Request: el plan, la revisión, la aprobación y el apply quedan registrados en un solo sitio, como una conversación. Es trazabilidad total y muy fácil de seguir.

Qué aporta Atlantis frente a un pipeline genérico

Podrías hacer algo parecido con GitHub Actions (subcapítulo 22.1), entonces ¿qué ventajas tiene Atlantis?

  1. Diseñado específicamente para Terraform

Atlantis «entiende» Terraform: gestiona el plan y el apply, el estado, los locks, los workspaces... de forma nativa. No tienes que construir toda esa lógica a mano en un pipeline genérico.

  1. El plan, siempre visible en el PR

Atlantis publica automáticamente el plan como comentario, integrándolo perfectamente en la revisión. La «red de seguridad» de revisar el plan (subcapítulo 12.5) queda incorporada de serie.

  1. Control mediante comentarios

Tú decides cuándo se aplica, escribiendo atlantis apply solo cuando todo está revisado y aprobado. Da un control explícito y deliberado sobre el momento del despliegue.

  1. Locking a nivel de Pull Request

Atlantis añade un bloqueo inteligente: si un PR está «trabajando» sobre cierta infraestructura, bloquea que otro PR toque lo mismo a la vez. Esto complementa el state locking (subcapítulo 20.2) evitando conflictos entre cambios simultáneos, ya desde la fase de revisión.

Una consideración: hay que alojarlo

Una diferencia práctica importante: Atlantis es una aplicación que tienes que ejecutar y mantener tú (normalmente en un servidor o contenedor dentro de tu infraestructura). No es un servicio que «simplemente usas» como GitHub Actions. Esto da más control y privacidad (tu código y credenciales no salen de tu entorno), pero también supone responsabilidad de mantenimiento.

GitHub Actions:  lo gestiona GitHub (no mantienes nada)
Atlantis:        lo alojas y mantienes tú (más control, más responsabilidad)

¿Cuándo usar Atlantis?

Situación Recomendación
Empezando, equipo pequeño Un pipeline simple (GitHub Actions) basta
Equipo que quiere GitOps fluido para Terraform Atlantis encaja muy bien
Muchos repos/equipos usando Terraform Atlantis centraliza y ordena el flujo
No quieres mantener una herramienta extra Pipeline genérico o Terraform Cloud (subcap. 22.3)

Consejo: como con otras herramientas (recuerda Kubernetes en el Capítulo 17, o Terragrunt en el 19.3), no adoptes Atlantis solo porque sea popular. Empieza con un pipeline simple. Si tu equipo crece y el flujo GitOps con Terraform se vuelve central en tu día a día, Atlantis aporta mucho. Elige por necesidad real.

Lo que debes recordar

  • Atlantis es una herramienta open source que automatiza Terraform directamente desde los Pull Requests, controlada mediante comentarios (atlantis plan, atlantis apply). Como un «asistente dentro del PR».
  • El flujo es conversacional y queda todo registrado en el PR: Atlantis ejecuta el plan automáticamente, el equipo lo revisa, se aprueba, y alguien comenta atlantis apply para desplegar.
  • Aporta frente a un pipeline genérico: diseñado para Terraform, el plan siempre visible en el PR, control por comentarios y locking a nivel de PR.
  • A diferencia de GitHub Actions, tú alojas y mantienes Atlantis (más control y privacidad, pero más responsabilidad).
  • No lo adoptes por moda: empieza simple y pásate a Atlantis si el GitOps con Terraform se vuelve central para tu equipo.

En el siguiente subcapítulo veremos la opción «gestionada» que evita mantener herramientas: Terraform Cloud / HCP Terraform, el servicio de la propia HashiCorp.

Cloud, AWS & Terraform — De cero a experto

Capítulo 1 · Qué es el cloud computing

Capítulo 2 · El mercado cloud y los grandes proveedores

Capítulo 3 · Regiones, zonas de disponibilidad y edge

Capítulo 4 · Cómputo: EC2

Capítulo 5 · Almacenamiento: S3

Capítulo 6 · Redes: VPC

Capítulo 7 · Identidad y acceso: IAM

Capítulo 8 · Bases de datos gestionadas

Capítulo 9 · Por qué Infraestructura como Código

Capítulo 10 · HCL: el lenguaje de Terraform

Capítulo 11 · Providers y estado

Capítulo 12 · Tu primera infraestructura real en Terraform

Capítulo 13 · Balanceo de carga y autoescalado

Capítulo 14 · Serverless con Lambda

Capítulo 15 · Mensajería y eventos

Capítulo 16 · Entrega de contenido y DNS

Capítulo 17 · Contenedores en AWS

Capítulo 18 · Módulos: reutilización y composición

Capítulo 19 · Workspaces y gestión de entornos

Capítulo 20 · Backends remotos y locking

Capítulo 21 · Testing de infraestructura

Capítulo 22 · Terraform en CI/CD

Capítulo 23 · Seguridad en profundidad

Capítulo 24 · Observabilidad: logs, métricas y trazas

Capítulo 25 · Optimización de costes

Capítulo 26 · Alta disponibilidad y disaster recovery

Capítulo 27 · Well-Architected Framework de AWS

Capítulo 28 · Arquitecturas serverless a escala

Capítulo 29 · Plataformas de datos en AWS

Capítulo 30 · Multi-cuenta y landing zones

Capítulo 31 · Platform Engineering e Internal Developer Platform

Capítulo 32 · Certificaciones AWS relevantes

Capítulo 33 · Proyectos para consolidar lo aprendido

Capítulo 34 · Recursos y comunidad

© Copyright 2024. Todos los derechos reservados