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

Infraestrutura como Código com AWS CDK

Ana Cunha
November 29, 2020

Infraestrutura como Código com AWS CDK

53º Python Floripa on-line

Ana Cunha

November 29, 2020
Tweet

More Decks by Ana Cunha

Other Decks in Programming

Transcript

  1. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Ana Cunha
    @mcunhaana
    Infraestrutura como Código
    com AWS CDK

    View Slide

  2. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Python Floripa – Novembro/2020
    • Infraestrutura como Código
    • AWS CloudFormation
    • AWS Cloud Development Kit (CDK)
    • Demo

    View Slide

  3. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Quem sou eu?
    • Ana (Luiza)
    • Catarinense em São Paulo
    • ❤
    • Developer Tools
    • Java (zona de conforto)
    • Desenvolvimento Web
    • Videogames, Cervejas, Gatos

    View Slide

  4. © 2020, Amazon Web Services, Inc. or its Affiliates.
    O que eu faço?
    • Developer Advocate, AWS – 2020
    • Software Development Engineer, Amazon – 2017/2020
    • Mestrado em Ciência da Computação – 2014/2016
    • Graduação em Sistemas de Informação – 2010/2014

    View Slide

  5. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Infraestrutura como Código

    View Slide

  6. © 2020, Amazon Web Services, Inc. or its Affiliates.
    • DevOps
    • Colaboração
    • Versionamento
    • Replicável
    • Aplicações Modernas
    • Inúmeros recursos
    • Gestão do ciclo de vida
    Infraestrutura como Código

    View Slide

  7. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual Manuais, Wiki, Perguntar para alguém
    Provisionamento de Infraestrutura

    View Slide

  8. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual

    View Slide

  9. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual
    Fácil de começar
    Não reproduzível
    Passível de erros
    Demorado

    View Slide

  10. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual
    Scripts
    Manuais, Wiki, Perguntar para alguém
    #!/bin/bash, AWS SDKs
    Provisionamento de Infraestrutura

    View Slide

  11. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Scripts

    View Slide

  12. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Scripts

    View Slide

  13. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Scripts
    Fácil de compartilhar e versionar
    O que acontece quando uma chamada de API falha?
    Como manter atualizado?
    Como saber se um recurso está pronto?
    Como reverter mudanças?

    View Slide

  14. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual
    Scripts
    Declarativa
    Manuais, Wiki, Perguntar para alguém
    #!/bin/bash, AWS SDKs
    AWS CloudFormation, Terraform
    Provisionamento de Infraestrutura

    View Slide

  15. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS CloudFormation

    View Slide

  16. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS CloudFormation
    AWS CloudFormation
    template
    (JSON/YAML)
    Configuração de estado desejada

    View Slide

  17. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS CloudFormation Template

    View Slide

  18. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Definição da infraestrutura
    em YAML ou JSON
    Criação da stack usando
    console, API, ou CLI
    Stack e recursos
    são provisionados
    Upload de arquivos
    locais ou a partir de
    um bucket S3
    AWS CloudFormation

    View Slide

  19. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Declarativa
    Fácil de automatizar
    Reproduzível
    Gestão do estado da aplicação
    Sintaxe de configuração
    Sem abstrações, muitos detalhes

    View Slide

  20. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual
    Scripts
    Geradores
    Declarativa
    Manuais, Wiki, Perguntar para alguém
    #!/bin/bash, AWS SDKs
    AWS CloudFormation, Terraform
    Troposphere, GoFormation
    Provisionamento de Infraestrutura

    View Slide

  21. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Geradores
    AWS CloudFormation
    Template

    View Slide

  22. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Geradores
    Código de verdade
    Estado desejado de configuração
    Sem abstrações em alto nível

    View Slide

  23. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Manual
    Scripts
    Geradores
    Abstrações
    Declarativa
    Manuais, Wiki, Perguntar para alguém
    #!/bin/bash, AWS SDKs
    CloudFormation, Terraform
    Troposphere, GoFormation
    AWS CDK, Pulumi
    Provisionamento de Infraestrutura

    View Slide

  24. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Cloud Development Kit
    (CDK)

    View Slide

  25. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Cloud Development Kit (CDK)

    View Slide

  26. © 2020, Amazon Web Services, Inc. or its Affiliates.
    • Sua linguagem preferida
    • Apenas classes e métodos
    • Auto Complete
    • Documentação Inline
    • Defaults
    • Classes reutilizável
    AWS Cloud Development Kit (CDK)

    View Slide

  27. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS Cloud Development Kit (CDK)

    View Slide

  28. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Conceitos

    View Slide

  29. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Construct Construct
    Constructs

    View Slide

  30. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Stack(s)
    Construct Construct
    Stacks

    View Slide

  31. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS CDK application
    Stack(s)
    Construct Construct
    Apps

    View Slide

  32. © 2020, Amazon Web Services, Inc. or its Affiliates.
    AWS
    CloudFormation
    template
    AWS CDK application
    Stack(s)
    Construct Construct
    AWS CDK
    Resources

    View Slide

  33. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Workflow de Desenvolvimento
    CDK CLI AWS CloudFormation
    Stacks & Constructs
    Source Code
    Templates + Assets
    Cloud Assembly
    Cloud Resources
    execute synthesize deploy provision
    cdk init // create new project
    pip install // install dependencies
    cdk diff // check what will change
    cdk synth // create templates and assets
    cdk deploy // push changes to the cloud

    View Slide

  34. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Demo

    View Slide

  35. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Você vai precisar de
    • Conta na AWS
    • Usuário com permissões de Admin
    • AWS Command Line Interface (CLI)
    • AWS CDK Toolkit (CDK CLI)
    • Node.js (10.3.0+)
    • Python (3.6+)
    • IDE de sua preferência

    View Slide

  36. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Demo

    View Slide

  37. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Próximos Passos

    View Slide

  38. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Ecossistema CDK

    View Slide

  39. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Próximos Passos
    Começar
    • cdkworkshop.com
    • aws.amazon.com/cdk
    Participar
    • github.com/aws/aws-cdk
    • github.com/aws/jsii
    #cdkdemos

    View Slide

  40. © 2020, Amazon Web Services, Inc. or its Affiliates.
    Obrigada!
    Ana Cunha
    @mcunhaana

    View Slide