CI/CD (Integração Contínua / Entrega/Implantação Contínua) é uma prática de automação dos processos de build, testes e deploy de aplicações.
Conceitos principais:
- CI (Integração Contínua) – integração frequente de mudanças na branch principal + testes automáticos.
- CD (Entrega Contínua) – preparação automática para lançamento (deploy manual).
- CD (Implantação Contínua) – deploy automático em produção após testes bem-sucedidos.
Estrutura típica de um pipeline:
- Build (compilação do projeto)
- Test (testes unitários e de integração)
- Lint (verificação do estilo de código)
- Package (empacotamento do artefato: .jar, imagem Docker, etc.)
- Deploy (implantação no servidor ou cluster)
Ferramentas básicas de CI/CD:
Ferramenta | Descrição |
---|---|
Jenkins | Clássico da automação |
GitLab CI | CI/CD integrado ao GitLab |
GitHub Actions | Automação via GitHub |
ArgoCD | Abordagem GitOps para Kubernetes |
Drone CI | CI leve e simples para Docker |
Exemplo de .gitlab-ci.yml:
stages:
- build
- test
- deploy
- build
- test
- deploy
build:
stage: build
script:
- echo "Building the project..."
- make build
test:
stage: test
script:
- echo "Running tests..."
- make test
deploy:
stage: deploy
script:
- echo "Deploying application..."
- make deploy
only:
- main
Comandos frequentes em CI/CD:
Comando | Finalidade |
---|---|
docker build | Construir imagem Docker |
docker push | Enviar imagem para o registro |
kubectl apply -f | Aplicar manifesto do Kubernetes |
helm upgrade | Implantar ou atualizar app no Kubernetes |
ansible-playbook | Executar playbook de deploy |
Boas práticas para pipelines:
- Divida o pipeline em etapas pequenas e independentes.
- Minimize o tempo de execução (paralelização, cache).
- Só faça deploy após testes bem-sucedidos.
- Armazene segredos com segurança (Vault, Secrets Manager).
- Implemente rollback para falhas no deploy.
Exemplos rápidos de estágios:
Build Stage (Python):
pip install -r requirements.txt
python setup.py sdist
python setup.py sdist
Test Stage (Node.js):
npm install
npm test
npm test
Deploy Stage (Docker + k8s):
docker build -t myapp:latest .
docker push myregistry/myapp:latest
kubectl rollout restart deployment myapp-deployment
docker push myregistry/myapp:latest
kubectl rollout restart deployment myapp-deployment
Mini checklist para engenheiro(a) CI/CD:
- Verificar a sintaxe do arquivo CI
- Garantir que todos os testes passem
- Configurar corretamente os segredos
- Separar os ambientes (dev/stage/prod)
- Verificar o rollback em caso de falha
Serverspace e CI/CD
Quer simplificar a configuração de CI/CD e ter sempre uma infraestrutura confiável ao seu alcance? Com o Serverspace, você pode criar máquinas virtuais em minutos, automatizar o deploy via API e escalar rapidamente seus projetos conforme a demanda.
Experimente o Serverspace e acelere o seu DevOps!