9 puntos por whatsup 2024-08-14 | Aún no hay comentarios. | Compartir por WhatsApp

¿Reducimos el tiempo de despliegue con GitHub Actions?

Este es un artículo sobre varias formas que se intentaron para acortar el tiempo de despliegue usando GitHub Actions, junto con la experiencia de resolver los problemas que surgieron en el proceso.

  • A medida que el tiempo de despliegue fue aumentando gradualmente, empezó a afectar negativamente la velocidad de desarrollo y la productividad del equipo
  • El artículo explica cómo se realizaron varias mejoras para resolver el problema, como convertir el proceso de despliegue a procesamiento en paralelo e introducir disparadores de compilación selectiva

Situación del problema

  • El tiempo de despliegue con GitHub Actions fue aumentando gradualmente hasta registrar un promedio de 27 minutos
  • Empezó a afectar la productividad de desarrollo
  • Frontend, Intro y Backend se compilaban y desplegaban de forma secuencial, y con el tiempo este método se volvió ineficiente, aumentando el tiempo de despliegue

Principales mejoras

  • Introducción del procesamiento en paralelo
    • Al separar en paralelo las tareas de despliegue de Frontend y Backend, que antes se ejecutaban en serie, el tiempo de despliegue se redujo de 27 a 18 minutos.
    • En este proceso también se modularizó el código de Github Workflow
  • Introducción de disparadores de compilación selectiva
    • Se usó path-filter para compilar solo las partes modificadas, pero se detectaron problemas en escenarios de rollback
    • En lugar de usar el método path-filter, se ofreció como opción del Workflow que el desarrollador pudiera elegir el objetivo de despliegue
  • Estrategia de uso de Docker Image Tag
    • Reutilizando Docker Image se redujo el tiempo de despliegue de 18 a 15 minutos.
  • Procesamiento en paralelo del Deploy
    • También se separó la etapa de Deploy para permitir procesamiento en paralelo y reducir aún más el tiempo de despliegue
  • Separación de Intro
    • Se separó la compilación de la página de introducción del build del servicio en el frontend para maximizar la eficiencia del despliegue.

Resultado

  • Reducción del 55% en el tiempo de despliegue (27 min -> 12 min)
  • Posibilidad de reducir hasta un 70% el tiempo, disminuir costos de infraestructura y mejorar la productividad en el desarrollo del producto.
  • Beneficios adicionales
    • Mayor reutilización y facilidad de mantenimiento gracias a la modularización del Workflow
    • Menor tiempo de resolución de problemas y mayor estabilidad del sistema

Aún no hay comentarios.

Aún no hay comentarios.