Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IaC com AWS CloudFormation na prática

IaC com AWS CloudFormation na prática

Apresentação que fiz para uma das turmas do curso de tecnologia da informação da Etec Jaraguá.

Marcelo Palladino

July 15, 2020
Tweet

More Decks by Marcelo Palladino

Other Decks in Technology

Transcript

  1. “ Reduzir o tempo da entrega de valor em produção,

    aumentar o feedback entre os times e fornecer um ambiente seguro para experimentações e inovações de negócio.
  2. D o m a i s i n t u

    i t i vo a t é o n í v e l m a i s a l t o d e a b s t r a ç ã o Quais são as opções para provisionar recursos na nuvem?
  3. Criando tudo na mão, via console Amazon Simple Queue Service

    Amazon Simple Notification Service AWS Management Console
  4. Prós e contras Intuitivo Não reproduzível Propenso a erros humanos

    Difícil de gerenciar o estado Consome tempo Desperdiça dinheiro
  5. Utilizando chamadas de API, via AWS SDK Script.sh SDK Amazon

    Simple Queue Service Amazon Simple Notification Service
  6. Prós e contras Diversas linguagens suportadas API’s para todos os

    recursos Muito, mas muito código genérico, que vai ser sempre igual Difícil de lidar com falhas Difícil de permitir execução concorrente Difícil de gerenciar o estado Como lidar atualizações? Como lidar com rollback? Consome muito tempo
  7. Declarando a infraestrutura como código Template JSON YAML Amazon Simple

    Queue Service Amazon Simple Notification Service CloudFormation SDK Terraform
  8. Declarando a infraestrutura como código Reproduzível/Previsível Fácil de automatizar Possui

    gerenciamento de estado Curva de aprendizado acentuada Pouca ou nenhuma abstração Difícil compartilhar padrões com o time (CloudFormation) Difícil de modularizar (CloudFormation) Não tem fluxos de controle embutidos
  9. Dois problemas que aparecem com bastante frequência Baixa produtividade para

    escrever templates Dificuldade em modularizar e compartilhar soluções Dificuldade em utilizar fluxos de controle
  10. Utilizando Document Object Model GoFormation (https://github.com/awslabs/goformation) Troposphere (https://github.com/cloudtools/Troposphere) Reproduzível Possui

    gerenciamento de estado Facilita o compartilhamento de padrões Pouca abstração Nem todos os recursos/configurações são suportados Todos os limites do CloudFormation Não é um padrão
  11. AWS Cloud Development Kit (CDK) O AWS CDK é um

    framework de código aberto para definir infraestrutura de nuvem em código utilizando linguagens de programação conhecidas e provisiona-los através do utilitário de linha de comando AWS CDK CLI e do AWS CloudFormation.”
  12. Utilizando o AWS Cloud Development Kit (CDK) Reproduzível/Previsível Testável Pode

    ser escrito em TS, JS, Java, .NET ou Python (https://github.com/aws/jsii) Muita abstração através do uso da AWS Construct Library Nem todos os recursos/configurações são suportados por construtores de “alto nível” Todos os limites do CloudFormation se aplicam ao CDK