- Inicio
- Habilidades
- Despliegue
- Infraestructura como Codigo
Infraestructura como Codigo
Domina los patrones de IaC con Terraform y Pulumi — define, versiona y reproduce toda tu infraestructura desde codigo.
El Problema
Tu infraestructura vive en una docena de pestañas del navegador — consola de AWS, dashboard de Cloudflare, paneles de admin de bases de datos. Nadie conoce la configuracion exacta de produccion, staging se configuro diferente “porque si,” y recrear el entorno despues de un desastre tomaria dias de clics en interfaces graficas. La gestion manual de infraestructura es irreproducible, no auditable y esta a un error humano de la catastrofe.
El Prompt
Eres un arquitecto de Infraestructura como Codigo. Ayudame a codificar mi infraestructura.
CONFIGURACION ACTUAL:
- Proveedor cloud: [ej., AWS, GCP, Azure, multi-cloud]
- Servicios usados: [ej., EC2/ECS, RDS PostgreSQL, S3, CloudFront, Route53]
- Entornos: [ej., dev, staging, produccion]
- Preferencia de herramienta IaC: [Terraform / Pulumi / OpenTofu / sin preferencia]
- Tamaño del equipo: [ej., solo, 3-5 devs, 10+ devs]
Diseña una arquitectura IaC que cubra:
1. **Estructura del proyecto**: Layout de directorios, organizacion de modulos, separacion de entornos.
2. **Gestion de estado**: Donde almacenar el estado (S3 + DynamoDB lock, Terraform Cloud, Pulumi Cloud), estrategia de backup.
3. **Diseño de modulos**: Modulos reutilizables para patrones comunes (VPC, base de datos, computo, CDN) con variables de entrada y outputs.
4. **Estrategia de entornos**: Como compartir codigo de modulos variando configuracion por entorno (workspaces, tfvars, estructura de directorios).
5. **Gestion de secretos**: Como manejar valores sensibles (AWS Secrets Manager, Vault, SOPS) sin commitearlos.
6. **Integracion CI/CD**: Como hacer plan en PR, apply en merge, con deteccion de drift.
7. **Codigo inicial**: Genera la configuracion IaC inicial para mis servicios mas criticos.
Ejemplo de Salida
Estructura del proyecto:
infra/
modules/
vpc/ — VPC reutilizable con subnets publicas/privadas
database/ — RDS con backups automatizados, encriptacion
compute/ — Servicio ECS Fargate con ALB
environments/
dev/ — terraform.tfvars (instancias mas pequeñas, una sola AZ)
staging/ — terraform.tfvars (similar a produccion, una sola AZ)
production/ — terraform.tfvars (multi-AZ, monitoreo mejorado)
backend.tf — Estado en S3 + Lock en DynamoDB
CI/CD: PR → terraform plan (comentar diff en PR) → merge a main → terraform apply (con aprobacion manual para produccion)
Cuando Usarlo
Usa este skill cuando administres mas de 3 recursos en la nube, cuando necesites replicar entornos, o despues de que un drift de configuracion cause un incidente. Esencial al incorporar nuevos miembros al equipo que necesitan entender la infraestructura, o cuando el cumplimiento requiere un registro de auditoria de cambios de infraestructura.
Consejos Pro
- Empieza con lo que mas duele — no intentes codificar todo de una vez. Comienza con los recursos que cambian mas frecuentemente o son mas dificiles de recrear (bases de datos, redes, DNS).
- Importa recursos existentes —
terraform importypulumi importte permiten traer recursos creados manualmente bajo gestion IaC sin recrearlos. - Nunca almacenes secretos en archivos de estado — el estado de Terraform contiene todos los atributos de recursos en texto plano. Encripta tu backend de estado y restringe el acceso.
- Usa
terraform plancomo herramienta de code review — requiere la salida del plan en cada PR. Los revisores deben verificar que el diff muestre solo cambios intencionales antes de aprobar.