Igor Julliano.dev.br

80% de Redução em Tempo de Build (CI/CD)

O Desafio

No ERP hospitalar da Big Data Health, cada commit disparava builds que demoravam entre 5 a 10 minutos. Esse cenário travava continuamente o ciclo de feedback da grande equipe de desenvolvedores.

Os gargalos estavam claros:

  • Imagens Docker gigantescas (~700MB+).
  • Monorepo reconstruindo pacotes integrais não afetados.
  • Ausência de políticas de caching otimizadas nos arquivos npm.

As Soluções Implementadas

  • Multi-stage Builds no Docker: Migrei para imagens baseadas em node:18-alpine (reduzindo para 150MB o runner) e separei apropriadamente os artefatos compilados das fontes não compiláveis.
  • Remote Caching com Turborepo: Configurei as pipelines de build identificando mudanças (diff) para não reconstruir os pacotes compartilhados que não sofreram iteração no Pull Request.
  • Hasing de Lockfile: Caching forte do node_modules no GitHub Actions usando hash do package-lock.json.

O Impacto

  • Tempo de validação (build no CI) cortado de 10 minutos para apenas 2 minutos em média (80% mais rápido).
  • Economia expressiva de custo recorrente de maquinário em Nuvem (GitHub Actions runtime).
  • Escalada na frequência de Deploy de 2x/dia para até 10x/dia pela flexibilidade da esteira.

Gostou do que leu?

Vamos conversar sobre como posso ajudar no seu projeto.