CI/CD AWS-nativo: CodeBuild, CodeDeploy e CodePipeline
- ⬜🔏 KMS: envelope encryption e quando usar CMK(AWS Developer Associate (DVA-C02))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
buildspec.yml exemplo
version: 0.2
phases:
install:
runtime-versions: { nodejs: 20 }
commands:
- npm ci
pre_build:
commands:
- npm run lint
build:
commands:
- npm run test
- npm run build
post_build:
commands:
- aws s3 sync dist/ s3://$BUCKET/
artifacts:
files:
- '**/*'
base-directory: dist
cache:
paths:
- 'node_modules/**/*'Onde isso entra no exame
O exame cobra a estratégia de deploy pelo risco aceito: canary e linear no CodeDeploy para Lambda, blue/green para ECS, in-place com hooks para EC2. Reconheça `appspec.yml` (CodeDeploy, o que fazer no deploy) versus `buildspec.yml` (CodeBuild, como compilar) — trocar os dois é pegadinha frequente.
Estratégias de deploy
| Estratégia | Downtime | Rollback | Custo |
|---|---|---|---|
| In-place | Sim (parcial) | Redeploy versão antiga | Baixo |
| Blue/green | Zero | Switch instantâneo | Alto (2x infra) |
| Canary 10% then all | Zero | Instantâneo nos 10% | Médio |
| Linear 10%/5min | Zero | Graceful | Médio |
- → artefato aprovado
- → ajusta o peso
- → 90%
- → 10%
- → métrica
- → dispara ROLLBACK
- → aprova ou barra
- Gestão e governança
- Compute
- Rede e entrega
A estratégia é escolhida pela tolerância a risco, e todas dependem de uma coisa: métrica que diga que a versão nova está pior. Deploy sem alarme atrelado não tem rollback — tem esperança.
- Canário: fatia pequena primeiro. A versão nova recebe 10% do tráfego por alguns minutos. Se as métricas seguem boas, o peso cresce até 100%. Se pioram, o rollback é automático — e só 10% dos usuários viu o problema.
- Linear e all-at-once são os outros dois. Linear desloca em degraus iguais (10% a cada minuto). All-at-once troca de uma vez — rápido, e sem rede de proteção. A questão dá a tolerância a risco; a estratégia segue disso.
- Sem alarme não existe rollback automático. É a peça que as pessoas esquecem: o CodeDeploy precisa de um alarme do CloudWatch para saber que a versão nova está pior. Sem isso, o deploy "sucedido" segue com a versão ruim em 100%.
- Hooks validam antes de liberar. BeforeAllowTraffic e AfterAllowTraffic rodam Lambda de teste. Falha no hook aborta o deploy antes de o tráfego chegar. É onde entra o smoke test automatizado.
- Blue/green é o caso extremo. Duas frotas completas; o tráfego vira de uma para outra e a antiga fica de pé por um tempo. Rollback é instantâneo, e você paga as duas durante a janela.
Um deploy canário promoveu a versão nova a 100% mesmo com a taxa de erro subindo. O que faltava?
Quando sair do AWS-native
Em 2026, muitos times usam GitHub Actions em vez de CodePipeline (DX melhor, mesmo repo). CodePipeline ganha quando: deploy cross-account complexo, compliance exige ferramentas AWS-only, ou integração profunda com AWS Config/Systems Manager.
Perguntas frequentes
❓ Como fazer implantação sem indisponibilidade?
❓ Onde guardar variável de ambiente e segredo no pipeline?
❓ Como testar infraestrutura no pipeline?
Fixando
Qual arquivo define os comandos de build no CodeBuild?
Em que situação sair do CI/CD nativo da AWS é justificável?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…