Automatización de CI/CD con GitHub Actions para microservicios

Clase 22 de 24Curso de Introducción a los Microservicios

Resumen

Automatizar el proceso de despliegue es vital en proyectos con microservicios. En esta sesión, aprenderás a utilizar GitHub Actions para construir, publicar y desplegar imágenes Docker automáticamente en Azure Container Apps, asegurando eficiencia y seguridad con cada commit realizado.

¿Cómo configurar GitHub Actions para microservicios?

Configurar GitHub Actions implica definir un flujo que construya, publique y despliegue imágenes Docker automáticamente en Azure Container Apps.

  • Comienza estableciendo un nombre claro para tu acción, preferentemente relacionado con el microservicio que despliegas.
  • Define tus variables de ambiente esenciales: nombre del grupo de recursos, imagen Docker, y ambiente de las Container Apps.
  • Incluye el clásico checkout del código y asegúrate de precisar la ruta correcta de trabajo y proyecto.

Es recomendable crear una acción independiente por cada microservicio para facilitar su gestión y ejecución diferenciada.

¿Cuáles son los pasos esenciales en GitHub Actions?

El proceso en GitHub Actions sigue pasos claramente delineados para maximizar claridad y seguridad:

  1. Accede a las credenciales de Azure almacenadas en los secretos.
  2. Genera o compila la imagen Docker del servicio.
  3. Autentícate en Docker Hub utilizando secretos existentes.
  4. Publica la imagen generada en Docker Hub ejecutando docker push.
  5. Ejecuta el comando específico az container app up para desplegar tus servicios en Azure.

Es fundamental definir claramente las variables de ambiente dentro de este comando para mantener la seguridad de tus configuraciones sensibles, como las cadenas de conexión a servicios externos.

¿Cómo manejar configuraciones sensibles y seguridad en microservicios?

Proteger las configuraciones sensibles es crucial para prevenir vulnerabilidades que expongan información confidencial.

  • Evita subir archivos appsettings.json con secretos al repositorio de control de versiones.
  • Configura estas variables como secretos del entorno directamente en GitHub Actions.
  • Utiliza variables de entorno en tu código (Program.cs) para que, si no hay configuraciones en tu entorno local, las variables sean tomadas del entorno Docker o del entorno de producción.

Usa herramientas como Visual Studio Code para verificar claramente tus configuraciones, y asegúrate de que ninguna información sensible quede expuesta en tus imágenes de contenedor.

¿Qué validar después del despliegue?

Una vez completado el proceso de despliegue automático mediante GitHub Actions:

  1. Verifica el estado del despliegue mediante el enlace proporcionado en la acción ejecutada.
  2. Realiza pruebas o consultas utilizando herramientas como archivos HTTP desde Visual Studio, adaptando la URL de producción.
  3. Comprueba que tu aplicación funcione correctamente, recordando que, en entornos productivos, herramientas visuales como Swagger probablemente no estén disponibles.

Considera que, implementada la acción exitosamente para un microservicio, debes replicar este proceso cuidadosamente para los demás servicios que conforman tu aplicación.