Integrando IaC a pipelines de CI/CD

Automatizando implantações na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Código primeiro, infraestrutura depois

code-first

  • Código implanta via CodePipeline; infra atualizada à mão
  • Devs escalam Lambda; ops redimensiona a fila SQS
  • Desalinhamento entre código e infra causa quedas
  • Conecte CloudFormation ao mesmo pipeline
Automatizando implantações na AWS

CloudFormation como ação no pipeline

pipeline-action

  • CodePipeline tem uma ação de deploy do CloudFormation
  • O pipeline passa um artefato de template para a ação
  • Modos: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Execute junto com ações de source, build e deploy do app
Automatizando implantações na AWS

Um pipeline ponta a ponta típico

typical

  • Source: push no Git dispara o pipeline
  • Build: gera um template + artefato do app
  • Deploy da infra: CloudFormation cria ou atualiza a stack
  • Deploy do app: CodeDeploy envia a nova versão
Automatizando implantações na AWS

Rollback automático em falha da stack

  • Atualizações com falha fazem rollback automático para o último estado bom
  • O estágio do pipeline falha, parando os seguintes
  • Alertas de falha do Capítulo 1 disparam automaticamente

automatic

Automatizando implantações na AWS

Stacks aninhadas para templates modulares

  • Uma nested stack é declarada como tipo AWS::CloudFormation::Stack
  • Quebre um template de 2.000 linhas em módulos reutilizáveis
  • A stack pai passa parâmetros e lê saídas
  • Cada módulo implanta de forma independente dentro da pai

nested

Automatizando implantações na AWS

StackSets para multi-conta e multi-região

  • Um StackSet implanta um template em muitas contas e regiões
  • Útil para baselines de segurança, guardrails, infra compartilhada
  • Adicione ou remova instâncias de stack sem reescrever o template
  • Gestão central, implantação local

stackset

Automatizando implantações na AWS

Escolhendo o formato certo

right-shape

  • Stack única: app pequeno, um ambiente
  • Stacks aninhadas: template grande, componentes modulares
  • StackSets: mesmo template, muitas contas e regiões
  • As três funcionam bem com CodePipeline
Automatizando implantações na AWS

Vamos praticar!

Automatizando implantações na AWS

Preparing Video For Download...