As tecnologias descritas aqui são apenas exemplos que podem ser utilizadas, mas o mercado oferece muitas outras opções.
O importante é o conceito e o fluxo de validação contínua.
1. Ambiente de Desenvolvimento (Local Dev)
- Etapa totalmente sob controle do desenvolvedor, antes do código chegar ao repositório.
- Execução de testes unitários e de componentes
- Lint de código (padrões e estilo)
- Análise estática opcional (ex: SonarLint local ou SonarQube com pre-check)
- Testes rápidos de build (garantir que compila e roda)
- Execução de containers locais (Docker Compose, Minikube etc.)
💡 Objetivo: garantir que o código enviado para o repositório já esteja limpo e funcional.
2. Etapa Pré–Pull Request (CI no Repositório)
Assim que o dev cria um PR, o CI entra em ação:
- Execução automática de testes unitários
- Lint e formatação de código (GitHub Actions, GitLab CI etc.)
- Análise estática de qualidade (SonarQube, CodeQL, Snyk para segurança)
- Geração de relatórios (coverage, vulnerabilidades, qualidade de código)
- Comentários automáticos no PR (feedback contínuo)
💡 Objetivo: garantir qualidade e segurança antes da aprovação e merge.
3. Etapa de Build e Integração (Pós–Merge)
Após o merge na branch principal (ou release branch):
- Build da aplicação e geração de artefatos (Docker images, pacotes etc.)
- Execução de testes de integração
- Testes de regressão (automatizados ou parciais)
- Testes end-to-end (E2E)
- Scan de vulnerabilidades nos artefatos gerados (Trivy, Grype etc.)
💡 Objetivo: validar se o sistema funciona de ponta a ponta e garantir que a nova versão está segura e estável.
4. Etapa de Deploy (CD)
A partir daqui, entra a parte operacional e estratégica do pipeline:
- Limpeza de caches e artefatos antigos
- Deploy automatizado (Helm, ArgoCD, Terraform, Ansible etc.)
- Deploy controlado (estratégias como Blue/Green, Canary, AB Testing)
- Smoke tests e validação de integração entre serviços
- Rollback em caso de falhas
- Notificações e logs do processo de deploy
💡 Objetivo: entregar a aplicação de forma previsível, segura e reversível.
5. Etapa Pós–Deploy (Monitoramento e Feedback)
- Nem sempre lembrada, mas crucial:
- Verificação de métricas de performance e disponibilidade (Prometheus, Grafana)
- Validação de logs e tracing (Loki, OpenTelemetry, Jaeger)
- Alertas automáticos e dashboards
- Coleta de feedback dos usuários e incidentes
💡 Objetivo: garantir estabilidade contínua e aprendizado a partir do comportamento em produção.
Extras (Melhorias Avançadas)
- Ambientes efêmeros para testes de PRs (pré-merge)
- Automação de versionamento semântico e changelogs
- Releases automatizadas com tagging
- Validação de infraestrutura (Terraform Plan + Policy as Code)
Top comments (0)