POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

CI/CD con GitHub Actions, Docker y Terraform: aprendizajes

## CI/CD con GitHub Actions, Docker y Terraform: aprendizajes

Publicado el 03/09/2025

Hace poco ejecuté un proyecto que me permitió revisitar conceptos clave de CI CD, contenerización y la práctica de infraestructura como código. Más que un repaso de herramientas, fue un ejercicio de diseño de arquitectura, integración y criterio para decidir cómo y cuándo usar tecnologías modernas en un flujo real de entrega continua.

El objetivo fue construir una API en Python con Flask que devuelve frases motivacionales aleatorias, empaquetarla con Docker y orquestar su despliegue automático con GitHub Actions y Terraform hacia un proveedor cloud. Todo el pipeline se activa con cada commit en la rama main.

El resultado del pipeline incluyó tres etapas bien definidas: construcción de la imagen Docker de la aplicación, ejecución de pruebas básicas de salud y endpoints, y aprovisionamiento y despliegue en la nube con Terraform y la integración nativa del proveedor. Con esto se garantizó que cada cambio pasara por build, test y release de forma repetible y auditable.

Stack y decisiones técnicas principales: Python y Flask para una API ligera, Docker para portabilidad y consistencia de entorno, GitHub Actions para CI CD con flujos separados por responsabilidad, Terraform como IaC para declarar recursos y estados, y un proveedor cloud para el alojamiento. Este enfoque facilita escalar el servicio, migrarlo entre entornos y mantener trazabilidad de cambios.

La API expone una ruta raíz con un mensaje de bienvenida, una ruta de frase que devuelve una selección aleatoria y un manejo de error 404 consistente, todo con respuestas JSON sencillas. El contenedor se basa en una imagen ligera de Python, instala dependencias desde requirements, expone el puerto 80 y arranca el servicio con un comando único. Localmente se valida con un build y un run asignando el puerto 80 del host al contenedor.

En GitHub Actions configuré un flujo que se dispara en pull request y push sobre main. El job principal construye la imagen Docker, levanta el contenedor en segundo plano y valida rutas con curl para asegurar que la raíz, el endpoint de frase y el manejo de 404 funcionen correctamente. Al terminar, detiene el contenedor y deja el resultado listo para el siguiente paso.

Para la infraestructura, un segundo workflow se activa ante cambios en la rama infra. Ejecuta init, plan y apply de Terraform con variables sensibles inyectadas desde secretos de GitHub. El provider describe el servicio web en modo docker, el plan de capacidad, el entorno, la rama de despliegue y el repositorio fuente. Este enfoque evita cambios manuales en consola, mantiene estado versionado y acelera rollbacks si son necesarios.

Lecciones aprendidas más relevantes: la contenerización reduce drásticamente el clásico problema de funciona en mi máquina; GitHub Actions permite diseñar pipelines declarativos y modulares que escalan con el proyecto; Terraform obliga a pensar la infraestructura como parte del código, con variables, outputs y estados que documentan y automatizan cada recurso; separar la aplicación del código de infraestructura mejora la mantenibilidad y el troubleshooting.

Dificultades y cómo las abordé: repasé sintaxis y módulos de Terraform para alinear versiones y buenas prácticas, y dediqué tiempo a entender el modelo de despliegue del proveedor cloud para aprovechar sus integraciones con repositorios y ramas. La curva fue breve y el beneficio de la automatización compensa con creces.

Herramientas que aceleraron el trabajo: ChatGPT para resolver dudas puntuales y comparar enfoques, GitHub Copilot para generar esqueletos de archivos de configuración y pruebas, y Claude Sonnet 3.7 para proponer mejoras en la organización del proyecto y en la estructura del pipeline.

Conclusión y recomendaciones prácticas: construir un pipeline CI CD de extremo a extremo con Docker, GitHub Actions y Terraform es un ejercicio valioso para cualquier equipo. Te obliga a estandarizar, automatizar y documentar, y sienta bases para una evolución saludable del producto. Si estás empezando, crea una API pequeña, añade pruebas de salud y de endpoints, automatiza build y deploy y describe tu infraestructura con código. La experiencia práctica es insustituible.

En Q2BSTUDIO acompañamos a empresas a diseñar y operar pipelines robustos, integrando aplicaciones a medida y software a medida con prácticas de DevOps, automatización y observabilidad. Combinamos servicios cloud aws y azure, ia para empresas con agentes IA, ciberseguridad y pentesting, y servicios inteligencia de negocio con power bi para escalar soluciones con seguridad, eficiencia y datos accionables. Si te interesa mejorar tu arquitectura y despliegue, explora nuestros servicios cloud AWS y Azure o impulsa tu operación con automatización de procesos orientada a CI CD.

Separación de pipelines que recomiendo replicar: un pipeline CI que construye la imagen, ejecuta pruebas automatizadas y valida salud de endpoints en contenedor, y un pipeline de infraestructura que gestiona Terraform en una rama dedicada. Esta división reduce acoplamientos, acelera diagnósticos y permite evolucionar cada pieza de forma independiente sin afectar la otra.

Palabras clave para quien quiera profundizar y posicionar capacidades internas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Integrarlas de forma orgánica en tu estrategia técnica y de contenido te ayudará a comunicar valor real y a atraer proyectos alineados con tus objetivos.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio