Developer Tools: CodePipeline, CDK, CloudFormation e SAM
- ⬜🧠 IA e ML na AWS: Bedrock, SageMaker, Q e Amigos(AWS Cloud Practitioner)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
“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
- → push dispara
- → estágio de build
- → publica artefato
- → estágio de deploy
- → provisiona
- → alarme → rollback
- Fora da AWS
- Gestão e governança
- Compute
Cinco peças, cinco papéis: Pipeline orquestra, Build compila, Deploy implanta, CloudFormation/CDK/SAM provisionam, CloudWatch vigia. A questão descreve o papel — o serviço segue disso.
- CodePipeline é o maestro. Ele não compila nem implanta: define os estágios, reage ao commit e chama quem faz. Confundir Pipeline com Build é o erro mais comum deste tema.
- CodeBuild compila e testa. Ambiente gerenciado que roda seu buildspec: compila, executa teste, gera imagem ou pacote. Sem servidor de CI para manter.
- CodeDeploy implanta com estratégia. Blue/green e canário, com rollback automático. É ele que garante que a versão nova não derruba todo mundo de uma vez.
- IaC é o par de tudo isso. CloudFormation descreve a infraestrutura em template; CDK gera esse template a partir de código; SAM é a variante para serverless. Provisionar à mão é o antipadrão que o CLF cobra.
- Rollback precisa de sinal. Sem alarme do CloudWatch amarrado ao deploy, o CodeDeploy não sabe que a versão nova está pior. A automação de rollback depende da métrica — não da sorte.
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 | — |
A AWS anunciou em julho/2024 o deprecation do CodeCommit e CodeStar para novos clientes. No exame CLF-C02 atualizado você pode ver “qual serviço era o repo git da AWS” — a resposta ainda é CodeCommit, mas a tendência é migrar pra GitHub.
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 internamente gera CloudFormation. Ele é um wrapper de alto nível — você escreve TypeScript e o CDK sintetiza o template YAML que o CloudFormation aplica.
// 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 }Qual serviço orquestra os estágios de um pipeline, reagindo ao commit e chamando build e deploy?
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 |
X-Ray se integra com CloudWatch e App Mesh. Aparece no pilar Operational Excellence do Well-Architected.
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?
Perguntas frequentes
❓ Infraestrutura como código: modelo declarativo ou linguagem de programação?
❓ Por que usar infraestrutura como código em vez do console?
❓ O que cada serviço de entrega contínua faz?
Fixando
Qual é a diferença entre CloudFormation, SAM e CDK?
Por que provisionar infraestrutura como código em vez de pelo console?
Take-aways: CodeCommit = repo · CodeBuild = build · CodeDeploy = deploy · CodePipeline = orquestra · CloudFormation = IaC nativo · CDK = IaC imperativo (gera CloudFormation) · SAM = CloudFormation simplificado pra serverless · Amplify = full-stack frontend · X-Ray = tracing distribuído.
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…