Terraform: cómo evitar módulos que nadie se anima a tocar
Reutilizar no significa convertir toda la infraestructura en un módulo con cincuenta variables.
La abstracción prematura se paga caro
Cuando un módulo intenta servir para todos los proyectos, acumula flags, condicionales y outputs difíciles de entender. El resultado es reutilizable en teoría y riesgoso de cambiar en la práctica.
Una estructura que suele funcionar
- Root modules por ambiente o sistema: componen recursos y expresan decisiones del despliegue.
- Módulos pequeños: encapsulan patrones repetidos con una responsabilidad clara.
- Versiones fijadas: evitan que un cambio compartido llegue sin revisión.
- Plan en pull request: hace visible el impacto antes del apply.
Qué no debería entrar en una variable
Si una opción rompe el modelo de seguridad o crea una arquitectura completamente distinta, probablemente merece otro módulo. La flexibilidad útil mantiene contratos claros; la flexibilidad total elimina cualquier garantía.
Refactorizar sin frenar producción
Primero se estabilizan providers, state y pipelines. Después se extraen módulos sin recrear recursos, usando planes revisables y cambios pequeños. El objetivo es reducir riesgo, no alcanzar una estructura perfecta de una vez.
Fuentes consultadas
Este contenido es una síntesis editorial de Nubent. Las fuentes permiten revisar el fundamento y ampliar cada tema.