Developer Tools: CodePipeline, CDK, CloudFormation e SAM
“Tudo como código” não é slogan — é exigência operacional. Infraestrutura descrita em arquivo, pipeline automatizado, deploy versionado. A AWS tem uma família inteira de serviços Code* pra CI/CD, e duas vertentes de IaC: a declarativa (CloudFormation/SAM) e a imperativa (CDK). O CLF-C02 espera que você saiba quem faz o quê.
Pipeline CI/CD na AWS
┌─────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
│ CodeCommit │→ │ CodePipeline │→ │ CodeBuild │→ │ CodeDeploy │
│ (git repo) │ │ (orquestra) │ │ (build+test)│ │ (deploy) │
└─────────────┘ └────────────┘ └────────────┘ └────────────┘
▲ push │ │ │
│ ▼ ▼ ▼
dev SNS/EventBridge S3 artifact EC2/ECS/Lambda
notificações CloudWatch Logs Blue/Green · Canary
Serviços Code* um a um
| Serviço | Função | Analogias externas |
|---|---|---|
| CodeCommit | Repositório Git gerenciado e privado | GitHub · GitLab · Bitbucket |
| CodeBuild | Executa build e testes em containers gerenciados | Jenkins · CircleCI · GitHub Actions runner |
| CodeDeploy | Deploy automatizado em EC2, Lambda, ECS (Blue/Green, Canary, Rolling) | Argo CD · Spinnaker |
| CodePipeline | Orquestra stages (source → build → test → deploy) | Jenkins Pipeline · GitHub Actions workflows |
| CodeArtifact | Repositório de dependências (npm, pip, Maven, NuGet) | Artifactory · Nexus |
| CodeStar | DEPRECATED em 2024 — não aparece mais no CLF-C02 novo | — |
Infraestrutura como Código (IaC)
| Ferramenta | Estilo | Quando usar |
|---|---|---|
| CloudFormation | Declarativo (YAML/JSON) | Qualquer infra AWS · gratuito (paga recursos criados) |
| AWS SAM | Declarativo (extensão do CloudFormation) | Aplicações serverless (Lambda + API GW + DynamoDB) |
| AWS CDK | Imperativo (TypeScript, Python, Java, C#, Go) | Times que preferem linguagem de programação sobre YAML |
| Terraform (terceiros) | Declarativo (HCL) | Multi-cloud · comunidade grande |
// CDK — cria um bucket S3 com versionamento em 3 linhas
import { Bucket } from 'aws-cdk-lib/aws-s3';
new Bucket(this, 'MyBucket', {
versioned: true,
encryption: BucketEncryption.S3_MANAGED,
});AWS SAM em profundidade
SAM é uma extensão do CloudFormation com sintaxe mais curta pra serverless. Tem CLI própria (sam build,sam deploy, sam local invoke) que simula Lambda localmente com Docker.
# template.yaml (SAM)
Transform: AWS::Serverless-2016-10-31
Resources:
HelloFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./src
Handler: app.handler
Runtime: nodejs20.x
Events:
Api:
Type: Api
Properties: { Path: /hello, Method: get }Amplify e X-Ray
| Serviço | Para quê |
|---|---|
| AWS Amplify | Hosting + CI/CD para apps web/mobile (React, Vue, Flutter). Gera GraphQL/REST API + auth + storage com poucos comandos |
| AWS X-Ray | Distributed tracing — mostra latência e erros entre microserviços Lambda/ECS/EC2. Instrumentação via SDK |
Cenários
📋 Criar uma stack com VPC + EC2 + RDS + S3 que você possa recriar 100% em outra conta AWS
CloudFormation descreve infra declarativamente e cria/atualiza/apaga tudo de forma atômica. CDK é alternativa imperativa que acaba gerando CloudFormation.
Alt: Terraform — se precisa multi-cloud.
Alt: Scripts CLI manuais — não recomendado — quebra idempotência.
📋 Construir pipeline CI/CD que, a cada push, builda, testa e deploya em 3 contas (dev/staging/prod)
CodePipeline orquestra stages com manual approval entre ambientes. CodeBuild roda build isolado em container. CodeDeploy faz Blue/Green no EC2/ECS/Lambda.
Alt: GitHub Actions + AWS CLI — muito flexível, mais trabalho de IAM.
Alt: Jenkins self-hosted — trabalho operacional alto.
📋 Debugar latência alta em arquitetura Lambda → DynamoDB → outra Lambda
X-Ray traça a request de ponta a ponta mostrando onde o tempo foi gasto. Integra nativamente com Lambda, API Gateway, SDK AWS.
Alt: CloudWatch Logs Insights — bom para logs, ruim pra tracing.
Alt: OpenTelemetry self-managed — overhead alto.
Perguntas típicas (Q&A)
❓ Qual a diferença entre CloudFormation e CDK?
❓ CodeDeploy suporta qual tipo de deploy?
❓ CloudFormation é pago?
Quiz rápido
3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito