9 pontos por whatsup 2024-08-14 | Ainda não há comentários. | Compartilhar no WhatsApp

Vamos reduzir o tempo de deploy com Github Actions?

Este é um artigo sobre várias tentativas de reduzir o tempo de deploy usando Github Actions e sobre a experiência de resolver os problemas encontrados nesse processo.

  • À medida que o tempo de deploy foi aumentando, surgiu um problema que começou a impactar negativamente a velocidade de desenvolvimento e a produtividade da equipe
  • O artigo explica como foram realizadas diversas melhorias para resolver esse problema, como a conversão do processo de deploy para processamento paralelo e a introdução de gatilhos de build seletivos

Situação do problema

  • O tempo de deploy com Github Actions foi aumentando gradualmente, chegando a uma média de 27 minutos
  • Começou a afetar a produtividade de desenvolvimento
  • Como Frontend, Intro e Backend eram buildados e implantados de forma sequencial, com o tempo isso se tornou um método ineficiente e o tempo de deploy aumentou

Principais melhorias

  • Introdução de processamento paralelo
    • Ao separar em paralelo as tarefas de deploy de Frontend e Backend, que antes eram executadas em série, o tempo de deploy foi reduzido de 27 para 18 minutos.
    • Nesse processo, o código do Github Workflow também foi modularizado
  • Introdução de gatilhos de build seletivos
    • Foi usado path-filter para buildar apenas as partes alteradas, mas foi identificada uma situação problemática em casos de rollback
    • Em vez de usar a abordagem com path-filter, foram oferecidas opções no Workflow para que o desenvolvedor pudesse escolher o alvo do deploy
  • Estratégia de uso de Docker Image Tag
    • Com a reutilização de Docker Image, o tempo de deploy foi reduzido de 18 para 15 minutos.
  • Processamento paralelo no deploy
    • O processo foi dividido para permitir paralelização também na etapa de deploy, reduzindo ainda mais o tempo
  • Separação da Intro
    • O build da página de introdução foi separado do build do serviço no frontend para maximizar a eficiência do deploy.

Resultado

  • Redução de 55% no tempo de deploy (27 min -> 12 min)
  • Possibilidade de redução de até 70%, diminuição de custos de infraestrutura e aumento da produtividade no desenvolvimento do produto.
  • Benefícios adicionais
    • Melhoria na reutilização e na facilidade de manutenção por meio da modularização do Workflow
    • Redução do tempo de resolução de problemas e aumento da estabilidade do sistema

Ainda não há comentários.

Ainda não há comentários.