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

IaC com AWS Cloud Development Kit (CDK)

IaC com AWS Cloud Development Kit (CDK)

Apresentação feita no "Daily Live Darede" sobre utilização do AWS CDK para definição de código de infraestrutura.

Marcelo Palladino

July 09, 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
  13. O a m b i e n t e e

    a e s t r u t u r a d e u m p r o j e t o t í p i c o Criando a primeira aplicação CDK
  14. A d i f e r e n ç a

    e n t r e c o n s t r u t o r e s d e b a i x o e a l t o n í v e l Criando uma VPC
  15. AWS Solutions Constructs Os “Constructs” de soluções da AWS são

    criados e mantidos pela AWS, usando práticas recomendadas estabelecidas pelo AWS Well-Architected Framework. https://aws.amazon.com/solutions/constructs/ https://aws.amazon.com/solutions/constructs/patterns/
  16. U t i l i z a n d o

    a s o l u ç ã o a w s - a p i g a t e w a y - l a m b d a Criando uma API REST com API Gateway/AWS Lambda
  17. Juntando tudo e tirando as concluões AWS Solutions Constructs CDK

    Patterns Seu time Soluções opinativas aws_apigateway_lambda aws-apigateway-sqs aws-cloudfront-s3 ... The Big Fan The EventBridge ETL The Scalable Webhook ... A B C ...
  18. Links úteis - https://aws.amazon.com/pt/cdk - https://github.com/aws/aws-cdk - https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html - https://aws.amazon.com/solutions/constructs/

    - https://aws.amazon.com/solutions/constructs/patterns/ - https://cdkpatterns.com - https://github.com/cdk-patterns/serverless - https://twitter.com/CdkPatterns - https://www.youtube.com/c/DeconstructingAWSCDKPatterns - https://medium.com/@mfpalladino