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