Tema 3: Infrastructure as Code (IaC)
⏱️ Tiempo estimado: 3-4 días
Infrastructure as Code (IaC) es una práctica clave de DevOps que te permite administrar y aprovisionar infraestructura usando código, en lugar de procesos manuales (como usar la consola). Esto asegura consistencia, repetibilidad y escalabilidad al manejar recursos cloud.
📚 Ruta de aprendizaje
Estudia
- ¿Qué es Infrastructure as Code?
- Como Terraform es agnóstico a la nube (puedes desplegar en cualquier proveedor), es muy popular. Por eso recomendamos Terraform.
- Aprende lo básico de Terraform:
- Explora providers específicos:
🛠️ Tareas hands-on
Proyecto básico de IaC
- Instala Terraform:
- Escribe una configuración Terraform para:
- Crear una máquina virtual en tu proveedor cloud, y/o
- Configurar un security group que permita SSH, y/o
- Desplegar un sitio estático en tu proveedor
- Aprende cómo desplegarlo:
- Corre
terraform initpara preparar el directorio - Corre
terraform planpara previsualizar cambios - Corre
terraform applypara crear recursos
- Corre
- Verifica los recursos en tu proveedor cloud
- Destruye los recursos:
- Corre
terraform destroypara limpiar
- Corre
Reto avanzado (opcional): diseño modular con GitHub Copilot
Usa lo que aprendiste en la Fase 2 y colabora con GitHub Copilot para diseñar una configuración modular de Terraform para una app multi-tier:
- Organiza infraestructura en módulos reutilizables:
- VPC: subnets públicas/privadas, routing
- Capa web: cómputo, load balancing
- Capa DB: base administrada, backups
- Seguridad: security groups, IAM roles, cifrado
- Usa variables para parametrizar
- Crea outputs para comunicación entre módulos
- Implementa manejo de estado (backend state)
- Despliega y verifica
- Destruye al terminar
🧪 Pon a prueba tu conocimiento
Usa un asistente de IA con prompts como:
- ¿Cuáles son los beneficios de Infrastructure as Code?
- ¿Cómo asegura Terraform idempotencia al administrar recursos?
- ¿Cuál es el propósito del archivo
terraform state? - ¿Cómo administras datos sensibles como API keys en Terraform?
- ¿Cuál es la diferencia entre
terraform planyterraform apply? - ¿Qué son los módulos de Terraform y por qué/cómo se usan?
- ¿Cuáles son buenas prácticas para Terraform?
- ¿Qué beneficios tiene usar asistentes de código para generar plantillas de IaC?
- ¿Cómo aseguras calidad y seguridad al usar IaC generado por IA?
Recursos
- Terraform Documentation
- Terraform Best Practices
- AWS Terraform Example
- Azure Terraform Example
- GCP Terraform Example
✅ Checklist del tema
Antes de seguir, asegúrate de tener:
- Entendido conceptos de Infrastructure as Code
- Instalado Terraform
- Aprendido comandos básicos (init, plan, apply, destroy)
- Escrito una configuración Terraform para VM o sitio estático
- Desplegado y verificado recursos en tu proveedor cloud
- Destruido recursos para limpiar
- (Opcional) Diseñado infraestructura modular con GitHub Copilot