Slide 1

Slide 1 text

Práticas de CI/CD com AWS Developer Tools

Slide 2

Slide 2 text

Agenda ● Problema e contextualização ● Nomenclatura ● Demonstrações ● Leitura cuidadosa de um pipeline complexo ● Conclusões ● Pontos de atenção ● Referências

Slide 3

Slide 3 text

Marcelo Palladino (@mfpalladino) Programador e Arquiteto de soluções Hi Platform

Slide 4

Slide 4 text

Ouvir primeiro para conversar depois. Automatize atendimentos e facilite sua vida. Fácil de conversar, simples de atender. omni social bot Plataforma SaaS para atendimento ao consumidor

Slide 5

Slide 5 text

Problema

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

● Micro serviços ● Lock-in Isenção de responsabilidade

Slide 9

Slide 9 text

O que temos feito? Source Build Pre- Test Deploy Post- Test Continuous integration Continuous delivery Continuous deployment

Slide 10

Slide 10 text

Encaixando o mínimo no AWS Codepipeline Source Build Deploy to integration stack Integration tests Deploy to production Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest

Slide 11

Slide 11 text

Encaixando o mínimo no AWS Codepipeline Source Build Deploy to integration stack Integration tests Deploy to production Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest

Slide 12

Slide 12 text

O processo no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Pipeline

Slide 13

Slide 13 text

O processo no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Stage

Slide 14

Slide 14 text

O processo no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Action

Slide 15

Slide 15 text

O processo no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Transitions Códigos e Artefatos

Slide 16

Slide 16 text

O processo de release no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest ● Alteração no código ○ Começa a rodar ○ Cria artefatos que serão usados em outros ações

Slide 17

Slide 17 text

O processo de release no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Alteração 1 ● Alteração no código ○ Começa a rodar ○ Cria artefatos que serão usados em outros ações

Slide 18

Slide 18 text

O processo de release no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Alteração 1 Pipeline rodando

Slide 19

Slide 19 text

O processo de release no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Alteração 1 Pipeline rodando

Slide 20

Slide 20 text

O processo de release no CodePipeline Source App CodeCommit Build Build CodeBuild Integration DeployToInteg CodeDeploy Production DeployToProd CodeDeploy IntegTest EndToEndTest Alteração 1 Pipeline rodando

Slide 21

Slide 21 text

Demonstrações

Slide 22

Slide 22 text

Conclusões

Slide 23

Slide 23 text

● Integrado com outros serviços AWS ● Flexível

Slide 24

Slide 24 text

Pontos de atenção

Slide 25

Slide 25 text

Sobre a estrutura na AWS ● Imagens próprias para diminuir o tempo de provisionamento ● IAM: Permissões, roles, policies, … ● VPC (ações que requerem acesso à internet)

Slide 26

Slide 26 text

Sobre entrega contínua ● Código fonte versionado (qualquer tipo de código fonte, inclusive aqueles necessários para rodar build/deploy automatizados) ● Fluxo claro e documentado de trabalho com GIT ● Testes de unidade ● Testes de integração/aceitação ● Deploy para mais de uma instância

Slide 27

Slide 27 text

Continuous Integration, Delivery, Deployment and Maturity Model

Slide 28

Slide 28 text

● http://blog.arungupta.me/continuous-integration-delivery-deployment-maturity-model/ Continuous Integration, Delivery, Deployment and Maturity Model

Slide 29

Slide 29 text

Referências

Slide 30

Slide 30 text

Blue/green deployment https://martinfowler.com/bliki/BlueGreenDeployment.html

Slide 31

Slide 31 text

Blue/green deployment

Slide 32

Slide 32 text

Blue/green deployment

Slide 33

Slide 33 text

Blue/green deployment

Slide 34

Slide 34 text

Canary release https://martinfowler.com/bliki/CanaryRelease.html

Slide 35

Slide 35 text

Canary release

Slide 36

Slide 36 text

Canary release

Slide 37

Slide 37 text

Canary release

Slide 38

Slide 38 text

Outras referências relacionadas ● https://aws.amazon.com/pt/codepipeline/ ● https://aws.amazon.com/pt/s3/ ● https://aws.amazon.com/pt/cloudformation/ ● https://www.terraform.io/ ● https://martinfowler.com/bliki/BlueGreenDeployment.html ● https://martinfowler.com/bliki/CanaryRelease.html

Slide 39

Slide 39 text

● Encontros mensais regulares ● Mão na massa ● Desconferências ● Palestras internacionais ● Maratonas https://www.awsugsp.com/

Slide 40

Slide 40 text

Obrigado! http://twitter.com.br/mfpalladino https://www.linkedin.com/in/mfpalladino