DevOps8 min

Infrastructure as Code: introducción a Terraform

Infrastructure as Code permite definir tu infraestructura en archivos de texto versionables, reproducibles y automatizables. Terraform es la herramienta más popular para hacerlo.

¿Qué es Infrastructure as Code?

IaC es la práctica de gestionar infraestructura (servidores, redes, DNS, bases de datos) mediante archivos de configuración en lugar de procesos manuales. Los archivos se versionan en Git, se revisan en PRs, y se aplican automáticamente.

¿Por qué IaC?

Reproducibilidad (crear entornos idénticos), documentación viva (el código ES la documentación), versionado (historial de cambios), automatización (CI/CD para infraestructura), y reducción de errores humanos.

¿Qué es Terraform?

Terraform es una herramienta de HashiCorp que permite definir infraestructura en archivos HCL (HashiCorp Configuration Language). Soporta cientos de proveedores: AWS, GCP, Azure, Cloudflare, y muchos más.

Conceptos básicos

Provider: plugin que conecta con un servicio (AWS, Cloudflare). Resource: un componente de infraestructura (servidor, DNS record). State: archivo que trackea el estado actual. Plan: preview de cambios antes de aplicar. Apply: ejecutar los cambios.

Ejemplo práctico

Un archivo main.tf que define un servidor VPS, un registro DNS, y un firewall. Con terraform plan ves qué va a cambiar, con terraform apply lo ejecutás. Si necesitás otro entorno igual, copiás el código y cambiás variables.

¿Cuándo usar Terraform?

Cuando gestionás más de 2-3 servidores, cuando necesitás entornos reproducibles (staging = producción), cuando múltiples personas tocan la infraestructura, o cuando querés automatizar el provisioning en CI/CD.

Alternativas

Ansible (más orientado a configuración que a provisioning), Pulumi (IaC con lenguajes de programación reales), CloudFormation (solo AWS), y CDK (AWS/Terraform con TypeScript/Python).

Published by Equipo Baires Host