Marcos Brizeno

Entrega
Contínua
E eu com isso?
Quem
sou eu?
Cientista da
Computação
UECE
about.me/
marcosbrizeno
ThoughtWorks
Recife
@marcosbrizeno
© 2013

2
Entregando
Software
Quem decide quando entregar?
Qual a frequência - se existir?
Qual o tamanho?
Desenvolvimento
vs
Negócio
© 2013

3
#história
Testes
Automatizados
TDD / BDD
Integração
Contínua

✓ explorar


repetição ✓


✓ analisar


rapidez ✓


Encontrar
 Automatizar
© 2013

4
#história
Testes
Automatizados
TDD / BDD
Integração
Contínua

© 2013

5
#história
Testes
Automatizados
TDD / BDD
Integração
Contínua

© 2013

6
Automação
Automatize tudo!
Testes, Implantação,
Configuração, Dependências
Externas, Provisionamento,
Notificações, Performance
© 2013

7
Entrega Contínua
>
Automação
http://bit.ly/1aCnAsW

© 2013

8
De volta para
o futuro

m
to
Au

!
Como continuar
melhorando?

Código/Testes
Servidor de Integração
Implantação homologação

o
ad
iz
at

Testes de Aceitação
Implantação produção

[ ]
Pipeline de
Implementação

© 2013

9
Pipeline

#benefícios
Cada commit
gera uma nova
versão
Sempre existe
uma versão para
ser implantada
Visão
centralizada da
qualidade do
projeto
© 2013

10
Entrega
Contínua 
!
!

?!

Implantação
Contínua

{

“Você pode implantar
continuamente em homologação
- sem problemas. O que torna a
Entrega Contínua tão especial é
implantar toda mudança que
passe os testes automatizados
para produção”

Jez Humble, sobre
Entrega Contínua vs
Implantação Contínua

© 2013

11
Porquê
adotar
Entrega
Contínua?

✓ Todo código pode x Quero ser um
ser implantado

✓ Mudanças de
código são
verificadas com
Dados e
Infraestrutura

“profissional
qualificado”

x GitHub faz 12,602
Implantações por
dia

✓ A equipe de
Desenvolvimento
não é mais uma
dependência

✓ O negócio ganha
© 2013

12
Desafios

© 2013

13
Implantação sem
tempo de baixa

© 2013

14
Separação

Web /
Serviços
Infra	

sw/hw

Dados
Serviços
externos

Separar
mudanças de
código, dados,
infraestrutura e
serviços externos
© 2013

15
Evite Mudanças
Destrutivas

Código

V 101

V 102

V 103

V 101

V 104

V 102

Infra
© 2013

16
pessoa = Pessoa.new params[:pessoa]	
#params[:pessoa][:idade]

Código
V 101

V 102

V 103

V 101

V 104

V 102

Infra
desc pessoa;	
nome varchar	
idade varchar

© 2013

17
params[:pessoa].delete :idade	
pessoa = Pessoa.new params[:pessoa]

Código
V 101

V 102

V 103

V 101

V 104

V 102

Infra
desc pessoa;	
nome varchar	
idade varchar

desc pessoa;	
nome varchar
© 2013

18
pessoa = Pessoa.new params[:pessoa]

Código
V 101

V 102

V 103

V 101

V 104

V 102

Infra
desc pessoa;	
nome varchar
© 2013

19
Trabalho
em Equipe!

© 2013

20
Ténicas

Blue/Green Deploy

© 2013

21
Ténicas

Rolling deploy

© 2013

22
Obrigado

© 2013

23

Entrega Contínua - E Eu Com Isso?