Qué es Infraestructura como código
Gestión de infraestructura mediante código
Infraestructura como código (IaC) es un enfoque para gestionar y desplegar infraestructura utilizando archivos de configuración legibles por máquinas en lugar de configuración manual.
Beneficios
- Control de versiones — infraestructura en Git, historial de cambios
- Reproducibilidad — mismo entorno en todas partes
- Automatización — despliegue rápido sin acciones manuales
- Documentación — el código sirve como documentación
Herramientas IaC
- Terraform — agnóstico a la nube, declarativo
- AWS CloudFormation — para AWS
- Pulumi — IaC en lenguajes regulares (Python, TypeScript)
- Ansible — gestión de configuración
Declarativo vs Imperativo
- Declarativo (Terraform): describe el estado deseado
- Imperativo (scripts): describe los pasos a seguir
Prácticas
- Almacenamiento del estado en almacenamiento remoto
- Módulos para reutilización de código
- CI/CD para aplicación automática
- Políticas y verificaciones (OPA, Sentinel)
Ejemplo de Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}