TL;DR — Resumen Rápido
Compara la gestión de configuración (Ansible) con la gestión declarativa (Terraform) y lenguajes de programación nativos (Pulumi).
La Infraestructura como Código (IaC) ya no es opcional para los equipos DevOps. Analicemos Ansible, Terraform y Pulumi.
1. Ansible: El Gestor de Configuración
Ansible ejecuta Playbooks en YAML secuencialmente a través de SSH (sin agentes). Ventajas: Fácil de aprender y excelente para aplicar parches o instalar software. Desventajas: Su diseño procedural hace difícil rastrear la “deriva de configuración” en el tiempo.
2. Terraform: El Estándar Declarativo
Terraform (HashiCorp) es el rey del aprovisionamiento en la nube usando el lenguaje HCL. Ventajas: Archivo de estado verdadero (State File). Ecosistema masivo. Desventajas: HCL no es un lenguaje de programación real; carece de bucles complejos naturales.
3. Pulumi: La Elección del Desarrollador
Pulumi te permite definir infraestructura usando Python, TypeScript o Go. Ventajas: Puedes usar lógica de programación real (bucles for, pruebas unitarias). Desventajas: La flexibilidad excesiva puede llevar a código de infraestructura demasiado complejo y acoplado.
Conclusión
Usa Terraform para aprovisionar nubes con estándares estrictos. Usa Pulumi si tu equipo está lleno de programadores que desean usar Python. Usa Ansible para configurar el software una vez que los servidores ya están creados.