Terraform para SREs y DevOps: Infraestructura como código y que se versiona

Terraform es una herramienta esencial para gestionar infraestructura como código (IaC). A diferencia del enfoque manual o de scripts ad hoc, Terraform te permite versionar, auditar y reproducir tu infraestructura de forma declarativa.
Como SRE o DevOps, dominar Terraform significa tener control sobre tu entorno cloud con la misma disciplina que tienes sobre tu código.
Conceptos fundamentales
| Término | Qué es |
| Provider | Define qué plataforma estás gestionando (AWS, GCP, Azure...) |
| Resource | Es la unidad de infraestructura: una instancia, un bucket, etc. |
| Module | Conjunto reutilizable de recursos |
| State | Archivo que guarda la representación actual de tu infraestructura |
| Backend | Dónde se guarda el estado (local, S3, etc.) |
Ejemplo mínimo: bucket S3 en AWS
provider "aws" {
region = "us-east-1"
}
resource "aws_s3_bucket" "logs" {
bucket = "my-log-bucket"
acl = "private"
}
Comandos esenciales
terraform init # Inicializa el proyecto
terraform plan # Muestra qué se va a aplicar
terraform apply # Aplica los cambios
terraform destroy # Elimina los recursos
Buenas prácticas
Usa módulos incluso para estructuras pequeñas.
Controla versiones de proveedores.
Formatea y valida:
terraform fmt terraform validateUsa
tflintycheckovpara asegurar calidad y seguridad.Nunca guardes
terraform.tfstateen local si trabajas en equipo.
Organización por entornos
Usa archivos
.tfvarspara manejar configuraciones por entorno:terraform apply -var-file="prod.tfvars"Divide por carpetas o usa
workspaces:terraform workspace new staging
CI/CD con Terraform
Usa Terraform como parte de tus pipelines para evitar cambios manuales. Ejemplo con GitHub Actions:
- name: Terraform Init
run: terraform init
- name: Terraform Plan
run: terraform plan -input=false
Problemas comunes
Estado corrupto: siempre usa
terraform state listy backups del estado.Cambios fantasmas: revisa los
lifecycleblocks.Drift: usa
terraform planregularmente para detectar diferencias.
Terraform como fuente de verdad
La infraestructura ya no vive en tu consola ni en tu click manual. Vive en un repositorio, versionada, revisable y auditable.
Cada recurso tiene su historia, su autor, y su propósito claro.
Terraform es más que una herramienta: es una filosofía. Infraestructura como código no es solo automatización, es control y claridad.
Sigue explorando, versionando… y sí, cayendo más profundo en The Rabbit Hole 🐇



