O que é CI/CD
CI/CD (Continuous Integration / Continuous Delivery/Deployment) é uma prática de automação no desenvolvimento de software.
- CI (Integração Contínua): Integra alterações de código frequentemente ao branch principal, executando builds e testes automaticamente
- CD (Entrega Contínua): Além do CI, automatiza a preparação para deploy em ambiente de produção
- CD (Implantação Contínua): Faz deploy automaticamente em produção quando os testes são aprovados
Por que CI/CD é importante: Build, testes e deploy manuais consomem tempo e são fonte de erros humanos.
Fluxo do Pipeline de CI/CD
flowchart LR
Source["Source"] --> Build["Build"] --> Test["Test"] --> Deploy["Deploy"] --> Monitor["Monitor"]
- Source: Commit, push, criação de PR
- Build: Instalação de dependências, compilação
- Test: Testes unitários, de integração, E2E
- Deploy: Deploy para ambientes de staging e produção
- Monitor: Health check, monitoramento de erros
Exemplo de GitHub Actions
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run build
Estratégias de Deploy
| Estratégia | Descrição |
|---|---|
| Rolling Update | Substituição gradual |
| Blue-Green | Alternância entre 2 ambientes |
| Canary | Nova versão apenas para parte do tráfego |
Resumo
CI/CD é uma prática essencial no desenvolvimento de software moderno. Através da automação, é possível reduzir erros humanos e obter feedback rápido.
← Voltar para a lista