El problema real
Cuando trabajas en DevOps, inevitablemente enfrentas el caos de gestionar infraestructura manualmente. Cambios undocumentados, configuraciones inconsistentes entre ambientes y actualizaciones que rompen lo que funcionaba. Terraform resuelve esto con un workflow estructurado que convierte tu infraestructura en código versionable y reproducible.
¿Qué es el Terraform Workflow?
El workflow de Terraform es el ciclo de vida estándar que ejecutas cada vez que despliegas o modificas infraestructura. Consta de tres fases principales: init, plan y apply. Este flujo garantiza que entiendas exactamente qué cambios ocurrirán antes de ejecutarlos, eliminando sorpresas en producción.
Cómo funciona en la práctica
Init (Inicialización): Ejecutas terraform init en el directorio raíz. Terraform descarga los providers necesarios (AWS, Azure, Google Cloud, etc.) y configura el estado local. El estado es fundamental: es el registro de qué recurso existe realmente en tu cloud.
Plan (Planificación): Con terraform plan, Terraform compara tu código (.tf files) contra el estado actual. Te muestra exactamente qué recursos se crearán, modificarán o destruirán. Es tu momento para validar antes de tocar nada en producción.
Apply (Aplicación): Ejecutas terraform apply para implementar los cambios. Terraform solicita confirmación explícita (a menos que uses -auto-approve, que no recomendamos en producción) y luego modifica tu infraestructura en el cloud.
Ejemplo técnico práctico
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
resource "aws_instance" "web_server" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.micro"
tags = {
Name = "production-web"
}
}
Ejecutas:
terraform init # Descarga el provider AWS
terraform plan # Muestra que creará 1 instancia EC2
terraform apply # La crea realmente
Si después cambias instance_type a t3.small y ejecutas plan nuevamente, verás que modificará la instancia existente, no creará una nueva.
Beneficios reales en tu día a día
Reproducibilidad: Recrear exactamente el mismo stack en otro AWS Account o región es trivial. Solo ejecutas init y apply.
Versionabilidad: Tu infraestructura vive en Git. Puedes auditar quién cambió qué, cuándo y por qué.
Prevención de errores: El plan actúa como revisión antes de mergear. Ves destructivas operations antes de confirmar.
Escalabilidad: Gestionar 5 recursos manualmente es viable. Gestionar 500 es imposible sin código. Terraform lo hace trivial.
Buenas prácticas esenciales
Almacena estado remotamente: Nunca guardes el archivo terraform.tfstate localmente en un proyecto de equipo. Usa S3 con versionado y DynamoDB para locks, o Terraform Cloud. Esto previene conflictos cuando múltiples personas aplican cambios.
Usa módulos: Encapsula configuraciones reutilizables. En lugar de repetir código VPC en cada proyecto, crea un módulo.
Valida siempre con plan: Convertir terraform plan en un paso obligatorio en tu CI/CD evita desastres.
Sensibilidad con cambios destructivos: En producción, revisa manualmente cualquier destroy. Terraform es poderoso precisamente porque puede destruir, así que respétalo.
Valor práctico
El workflow de Terraform transforma infrastructure management de una actividad manual y propensa a errores a un proceso auditado, repetible y seguro. No es solo un tool, es el fundamento de cualquier operación DevOps moderna seria. Empezar simple con init-plan-apply te abre puertas a automatización real con CI/CD después.




Top comments (0)