80% de Redução em Tempo de Build (CI/CD)
1 Aug 2025
1 min read
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_modulesno GitHub Actions usando hash dopackage-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.