5 min leitura • Guide 628 of 877
Melhores Práticas de Pipeline CI/CD
Pipelines CI/CD bem projetados aceleram a entrega sem sacrificar qualidade capturando problemas no estágio mais cedo possível. A integração do GitScrum com ferramentas de pipeline fornece visibilidade no status de build, resultados de teste e progresso de implantação, ajudando equipes a coordenar em torno de seus processos de entrega automatizados.
Princípios de Design de Pipeline
Velocidade vs Minúcia
OTIMIZAÇÃO DE ESTÁGIO DE PIPELINE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FEEDBACK RÁPIDO PRIMEIRO: │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ Lint │→│ Unit │→│ Build │→│ Int. │→│ E2E │ │
│ │ (30s) │ │ (2m) │ │ (3m) │ │ (10m) │ │ (20m) │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │
│ ↓ ↓ ↓ ↓ ↓ │
│ Falha Falha Falha Falha Falha │
│ rápido rápido médio mais mais lento │
│ lento │
│ │
│ PRINCÍPIO: Capturar problemas baratos antes de verificações│
│ caras │
└─────────────────────────────────────────────────────────────┘
Execução Paralela
ESTRATÉGIA DE PARALELIZAÇÃO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SEQUENCIAL (lento): PARALELO (rápido): │
│ │
│ Lint ──→ Unit ──→ Build ┌── Lint ──┐ │
│ 5m 3m │ │ │
│ ├── Unit ──┼── Build ──→ │
│ Total: 8 minutos │ 2m │ 3m │
│ └── Type ──┘ │
│ Check │
│ Total: 5 minutos │
│ │
│ CANDIDATOS A PARALELO: │
│ • Linting + Verificação de tipo + Varredura de segurança │
│ • Testes unitários entre módulos │
│ • Testes de integração por serviço │
│ • Testes E2E por área de funcionalidade │
└─────────────────────────────────────────────────────────────┘
Confiabilidade de Pipeline
Tratando Falhas
PADRÕES DE TRATAMENTO DE FALHAS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FALHAR RÁPIDO: │
│ • Parar pipeline na primeira falha │
│ • Não desperdiçar recursos em builds condenados │
│ • Fornecer feedback imediato aos desenvolvedores │
│ │
│ REPETIR FALHAS TRANSITÓRIAS: │
│ • Timeouts de rede: repetir 2-3 vezes │
│ • Falhas de serviço externo: repetir com backoff │
│ • Não repetir falhas determinísticos │
│ │
│ DEGRADAÇÃO GRACIOSA: │
│ • Verificações não críticas podem alertar vs bloquear │
│ • Builds de documentação não bloqueiam releases de código │
│ • Testes de performance podem ser consultivos │
└─────────────────────────────────────────────────────────────┘
Estratégias de Cache
CACHE EFETIVO:
┌─────────────────────────────────────────────────────────────┐
│ TIPO DE CACHE │ BENEFÍCIO │ INVALIDAÇÃO │
├───────────────────┼────────────────────┼────────────────────┤
│ Dependências │ Pular npm/pip │ mudança de lockfile │
│ │ install │ │
│ Artefatos de build│ Builds incrementais│ mudança de fonte │
│ Camadas Docker │ Builds de imagem │ mudança de │
│ │ mais rápidos │ Dockerfile │
│ Fixtures de teste │ Setup de teste │ mudança de fixture │
│ │ mais rápido │ │
└───────────────────┴────────────────────┴────────────────────┘
MELHORES PRÁTICAS DE CACHE:
• Usar chaves endereçáveis por conteúdo (hash de entradas)
• Definir TTLs apropriados (1 semana para deps)
• Monitorar taxas de acerto de cache
• Limpar caches em falhas estranhas
Monitoramento e Observabilidade
Métricas de Pipeline
MÉTRICAS-CHAVE DE PIPELINE:
┌─────────────────────────────────────────────────────────────┐
│ MÉTRICA │ META │ AÇÃO SE PERDIDA │
├─────────────────────┼─────────────┼─────────────────────────┤
│ Tempo de build │ < 15 min │ Otimizar estágios lentos │
│ Taxa de sucesso │ > 90% │ Corrigir testes instáveis│
│ Tempo de fila │ < 5 min │ Adicionar mais runners │
│ Tempo de recuperação│ < 30 min │ Melhorar rollback │
│ Frequência de deploy│ Diário+ │ Reduzir tamanho de lote │
└─────────────────────────────────────────────────────────────┘
Alertas
ALERTAS DE PIPELINE:
┌─────────────────────────────────────────────────────────────┐
│ CONDIÇÃO │ ALERTAR PARA │
├────────────────────────────┼─────────────────────────────────┤
│ Branch principal quebrado │ Canal da equipe (alta prioridade)│
│ Tempo de build > 2x normal │ Equipe de plataforma │
│ Taxa de sucesso cai 20%+ │ Tech lead + plataforma │
│ Deploy de produção falhou │ On-call + tech lead │
│ Varredura de segurança │ Equipe de segurança + tech lead│
│ crítica │ │
└─────────────────────────────────────────────────────────────┘
Integração GitScrum
Sincronização de Status
VISÃO DE PIPELINE GITSCRUM:
┌─────────────────────────────────────────────────────────────┐
│ Tarefa #234: Implementar autenticação de usuário │
├─────────────────────────────────────────────────────────────┤
│ │
│ PIPELINES LINKADOS: │
│ │
│ Branch: feature/user-auth │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ ✅ Lint │ │ ✅ Test │ │ ✅ Build│ │ ⏳ Deploy│ │
│ │ 32s │ │ 2m 14s │ │ 3m 01s │ │ running│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ Última execução: 5 minutos atrás │
│ Cobertura: 87% (+2%) │
│ [Ver Pipeline Completo] [Re-executar] [Ver Logs] │
└─────────────────────────────────────────────────────────────┘