Laboratorio 7: Creación de Módulos Reutilizables | Curso Terraform GCP

Laboratorio 7: Modularización de Código (Creando tu Primer Módulo Reutilizable)

Autor: Eduardo Martínez Agrelo

Bienvenidos al séptimo laboratorio del curso de Terraform. En este módulo práctico, aprenderemos a modularizar nuestra infraestructura. Encapsularemos la lógica compleja de creación de recursos en Google Cloud para crear planos de arquitectura consistentes y reutilizables.

La Arquitectura de Módulos: Módulo Raíz versus Módulo Hijo

El desarrollo a nivel empresarial requiere evitar la redundancia y simplificar los archivos principales. Los módulos actúan de forma similar a las funciones en programación, ocultando la complejidad técnica interna tras una interfaz de variables limpia e interactiva:

  • Módulo Raíz: Constituye el punto de entrada principal del proyecto desde donde invocamos las llamadas a los diferentes módulos de infraestructura.
  • Módulo Hijo: Contiene el manifiesto detallado de los recursos y define sus propios parámetros de variables y salidas correspondientes.

Invocación del Módulo Local mediante Rutas Relativas

Para consumir nuestro módulo personalizado de cómputo, debemos declararlo en el archivo raíz. Utilizaremos la propiedad de origen para que el motor localice el subdirectorio de forma relativa:

source = "./modules/gce_instance"

Al ejecutar la inicialización, Terraform registrará de manera interna el módulo local. Pasaremos atributos específicos, como la subred y el script de arranque, abstrayendo así toda la lógica detallada de la máquina virtual del plano de vista principal.

Abstracción y Consistencia en Arquitecturas Cloud

Para mantener políticas consistentes en múltiples entornos como desarrollo o producción, es una práctica recomendada modularizar. No copiaremos configuraciones sueltas; utilizaremos Terraform para encapsular recursos recurrentes y estandarizar despliegues de forma organizada:

  • gce_instance: Empaquetará de manera unificada la plantilla de disco, la interfaz de red de Compute Engine y las opciones seguras de GCP.
  • outputs: Expondrá el valor de la IP pública hacia la raíz permitiendo acoplar la configuración con otros elementos del proyecto.

La Estructura Organizativa del Módulo

En este laboratorio, organizarás la estructura física de tu repositorio de forma rigurosa. Crearemos los archivos de definición del módulo dentro del directorio dedicado modules/gce_instance, separando limpiamente las variables locales del código del módulo hijo.

Conclusión: Infraestructura modular y escalable

Has completado el laboratorio de modularización de código. Has aprendido que el diseño modular consiste en encapsular recursos repetitivos bajo rutas relativas, simplificando la legibilidad general y garantizando la consistencia en múltiples entornos de despliegue. Ya tienes las bases de la arquitectura limpia listas en Google Cloud; el siguiente paso es avanzar al Laboratorio 8 para desplegar bases de datos privadas con Cloud SQL.

Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!