53º Python Floripa on-line
© 2020, Amazon Web Services, Inc. or its Affiliates.Ana Cunha@mcunhaanaInfraestrutura como Códigocom AWS CDK
View Slide
© 2020, Amazon Web Services, Inc. or its Affiliates.Python Floripa – Novembro/2020• Infraestrutura como Código• AWS CloudFormation• AWS Cloud Development Kit (CDK)• Demo
© 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
© 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
© 2020, Amazon Web Services, Inc. or its Affiliates.Infraestrutura como Código
© 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 vidaInfraestrutura como Código
© 2020, Amazon Web Services, Inc. or its Affiliates.Manual Manuais, Wiki, Perguntar para alguémProvisionamento de Infraestrutura
© 2020, Amazon Web Services, Inc. or its Affiliates.Manual
© 2020, Amazon Web Services, Inc. or its Affiliates.Manual Fácil de começar Não reproduzível Passível de erros Demorado
© 2020, Amazon Web Services, Inc. or its Affiliates.ManualScriptsManuais, Wiki, Perguntar para alguém#!/bin/bash, AWS SDKsProvisionamento de Infraestrutura
© 2020, Amazon Web Services, Inc. or its Affiliates.Scripts
© 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?
© 2020, Amazon Web Services, Inc. or its Affiliates.ManualScriptsDeclarativaManuais, Wiki, Perguntar para alguém#!/bin/bash, AWS SDKsAWS CloudFormation, TerraformProvisionamento de Infraestrutura
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS CloudFormation
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS CloudFormationAWS CloudFormationtemplate(JSON/YAML)Configuração de estado desejada
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS CloudFormation Template
© 2020, Amazon Web Services, Inc. or its Affiliates.Definição da infraestruturaem YAML ou JSONCriação da stack usandoconsole, API, ou CLIStack e recursossão provisionadosUpload de arquivoslocais ou a partir deum bucket S3AWS CloudFormation
© 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
© 2020, Amazon Web Services, Inc. or its Affiliates.ManualScriptsGeradoresDeclarativaManuais, Wiki, Perguntar para alguém#!/bin/bash, AWS SDKsAWS CloudFormation, TerraformTroposphere, GoFormationProvisionamento de Infraestrutura
© 2020, Amazon Web Services, Inc. or its Affiliates.GeradoresAWS CloudFormationTemplate
© 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
© 2020, Amazon Web Services, Inc. or its Affiliates.ManualScriptsGeradoresAbstraçõesDeclarativaManuais, Wiki, Perguntar para alguém#!/bin/bash, AWS SDKsCloudFormation, TerraformTroposphere, GoFormationAWS CDK, PulumiProvisionamento de Infraestrutura
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS Cloud Development Kit(CDK)
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS Cloud Development Kit (CDK)
© 2020, Amazon Web Services, Inc. or its Affiliates.• Sua linguagem preferida• Apenas classes e métodos• Auto Complete• Documentação Inline• Defaults• Classes reutilizávelAWS Cloud Development Kit (CDK)
© 2020, Amazon Web Services, Inc. or its Affiliates.Conceitos
© 2020, Amazon Web Services, Inc. or its Affiliates.Construct ConstructConstructs
© 2020, Amazon Web Services, Inc. or its Affiliates.Stack(s)Construct ConstructStacks
© 2020, Amazon Web Services, Inc. or its Affiliates.AWS CDK applicationStack(s)Construct ConstructApps
© 2020, Amazon Web Services, Inc. or its Affiliates.AWSCloudFormationtemplateAWS CDK applicationStack(s)Construct ConstructAWS CDKResources
© 2020, Amazon Web Services, Inc. or its Affiliates.Workflow de DesenvolvimentoCDK CLI AWS CloudFormationStacks & ConstructsSource CodeTemplates + AssetsCloud AssemblyCloud Resourcesexecute 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
© 2020, Amazon Web Services, Inc. or its Affiliates.Demo
© 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
© 2020, Amazon Web Services, Inc. or its Affiliates.Próximos Passos
© 2020, Amazon Web Services, Inc. or its Affiliates.Ecossistema CDK
© 2020, Amazon Web Services, Inc. or its Affiliates.Próximos PassosComeçar• cdkworkshop.com• aws.amazon.com/cdkParticipar• github.com/aws/aws-cdk• github.com/aws/jsii#cdkdemos
© 2020, Amazon Web Services, Inc. or its Affiliates.Obrigada!Ana Cunha@mcunhaana