🧠FFVAcademy
🛠️

Developer Tools: CodePipeline, CDK, CloudFormation e SAM

9 min de leitura·+45 XP

“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ê.

📘 Technology· ~34% do CLF-C02

Pipeline CI/CD na AWS

🗺️ Fluxo típico com os serviços Code*

  ┌─────────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐
  │ 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çoFunçãoAnalogias externas
CodeCommitRepositório Git gerenciado e privadoGitHub · GitLab · Bitbucket
CodeBuildExecuta build e testes em containers gerenciadosJenkins · CircleCI · GitHub Actions runner
CodeDeployDeploy automatizado em EC2, Lambda, ECS (Blue/Green, Canary, Rolling)Argo CD · Spinnaker
CodePipelineOrquestra stages (source → build → test → deploy)Jenkins Pipeline · GitHub Actions workflows
CodeArtifactRepositório de dependências (npm, pip, Maven, NuGet)Artifactory · Nexus
CodeStarDEPRECATED em 2024 — não aparece mais no CLF-C02 novo
⚠️
A AWS anunciou em julho/2024 o deprecation do CodeCommite CodeStar para novos clientes. No exame CLF-C02 atualizado você pode ver “qual serviço erao repo git da AWS” — a resposta ainda é CodeCommit, mas a tendência é migrar pra GitHub.

Infraestrutura como Código (IaC)

FerramentaEstiloQuando usar
CloudFormationDeclarativo (YAML/JSON)Qualquer infra AWS · gratuito (paga recursos criados)
AWS SAMDeclarativo (extensão do CloudFormation)Aplicações serverless (Lambda + API GW + DynamoDB)
AWS CDKImperativo (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.
typescript
// 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.

yaml
# 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çoPara quê
AWS AmplifyHosting + CI/CD para apps web/mobile (React, Vue, Flutter). Gera GraphQL/REST API + auth + storage com poucos comandos
AWS X-RayDistributed 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 (ou CDK se o time prefere TypeScript)

CloudFormation descreve infra declarativamente e cria/atualiza/apaga tudo de forma atômica. CDK é alternativa imperativa que acaba gerando CloudFormation.

Alt: Terraformse precisa multi-cloud.

Alt: Scripts CLI manuaisnão recomendado — quebra idempotência.

📋 Construir pipeline CI/CD que, a cada push, builda, testa e deploya em 3 contas (dev/staging/prod)

CodePipeline + CodeBuild + CodeDeploy

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 CLImuito flexível, mais trabalho de IAM.

Alt: Jenkins self-hostedtrabalho operacional alto.

📋 Debugar latência alta em arquitetura Lambda → DynamoDB → outra Lambda

AWS X-Ray

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 Insightsbom para logs, ruim pra tracing.

Alt: OpenTelemetry self-managedoverhead alto.

Perguntas típicas (Q&A)

Qual a diferença entre CloudFormation e CDK?

CloudFormation é declarativo (YAML/JSON). CDK é imperativo — você escreve código em linguagem de programação (TypeScript, Python, etc.) que o CDK sintetiza em template CloudFormation. CDK oferece loops, condicionais e reuso de componentes; CloudFormation é mais verboso mas universal.

CodeDeploy suporta qual tipo de deploy?

In-place (rolling), Blue/Green (troca completa entre duas frotas) e Canary (10% primeiro, depois 100%). Para Lambda e ECS, é Blue/Green nativo.

CloudFormation é pago?

O serviço em si é gratuito. Você paga só pelos recursos que o template cria (EC2, S3, RDS, etc.). Há um pequeno custo para recursos de terceiros e modules extensions.
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.
🧩

Quiz rápido

3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito