DEV Community

Cover image for Terraform Workflow: Automatiza tu infraestructura desde cero
Hassel Muñoz
Hassel Muñoz

Posted on

Terraform Workflow: Automatiza tu infraestructura desde cero

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"
  }
}
Enter fullscreen mode Exit fullscreen mode

Ejecutas:

terraform init      # Descarga el provider AWS
terraform plan      # Muestra que creará 1 instancia EC2
terraform apply     # La crea realmente
Enter fullscreen mode Exit fullscreen mode

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)