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

Pipeline CI/CD con Docker, Flask y Terraform para desplegar una API de frases motivacionales: build, pruebas y despliegue automático con infraestructura como código.

3 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat