Dezembro 2013

Seminário Online:
Implementando
Entrega Contínua
Marco Valtas
mvaltas@thoughtworks.com
twitter: @mavcunha
Entrega
Contínua

"Entrega Contínua é uma disciplina de
desenvolvimento de software que reduz
o custo, tempo, e o risco da entrega de
mudanças incrementais aos usuários."
Definição desenvolvida pelo grupo de
Entrega Contínua da ThoughtWorks

"Entrega Contínua é uma disciplina de
desenvolvimento na qual software é
construído de tal maneira que o mesmo
pode ser colocado em produção a
qualquer momento."
Martin Fowler, Jez Humble
© 2013

!2
Instalação de Entrega Contínua - CD

© 2013

!3
Pessoas

© 2013

!4
Papéis na entrega de software

Desenvolvimento
Produto

Operações

Testes

Usuários

© 2013

!5
Por quê?

• Reduzir os custos?
• Colocar funcionalidades em produção mais
rapidamente?

• Menos defeitos em produção?
• Ser mais rápido que meus competidores?
• Dormir em paz em dia de implantação?
© 2013

!6
A liderança deve estar a bordo
tempo & pessoas

aplicar em melhorias

já comprometido

© 2013

!7
Defina suas métricas

YouTube

© 2013

!8
Mudanças

© 2013

!9
Introdução de mudanças
Mudanças

Tempo

© 2013

!10
Changes

Mudanças pelo tempo

Changes to production

}

}

lots of change

long time

Time

© 2013

!11
Changes

Mudanças pelo tempo

Changes to production

}

} SMALL changeS

short time

Time

© 2013

!12
Times

© 2013

!13
Nokia Test
Primeira Parte - Desenvolvimento Iterativo?

•
•

Iterações duram menos que 4 semanas

•

A iteração inicia antes do final da especificação

Funcionalidades testadas e prontas ao final da
iteração

© 2013

!14
DevOps
Devs e Ops

DevOps

© 2013

!15
Aquecedores e Congeladores

versus

© 2013

!16
Práticas

© 2013

!17
Integração Contínua

© 2013

!18
O que está pronto?

Pronto!

Pronto!

Pronto!

Pronto?

?

© 2013

!19
O que está pronto?

"Aquela grande
funcionalidade que você
trabalhou nas últimas duas
iterações não tem qualquer
valor.”
!

Tim Brown - AgileTrends SP/2013
© 2013

!20
Sempre pronto para produção

© 2013

!21
Arquitetura

“Existem dois elementos comuns [nas
definições]: um é a decomposição em
alto nível de um sistema em suas
partes; o outro são decisões difíceis
de alterar.
…existem diversas arquiteturas em
um sistema, e a visão do que é
significativo em termos de arquitetura
pode mudar durante o ciclo de vida
de um sistema."
Martin Fowler - Padrões de Arquitetura
de Aplicações Corporativas.

© 2013

!22
O impacto da arquitetura

© 2013

!23
Flexibilizando a arquitetura
Estratégias

• micro-serviços
• feature toggles
• branch by abstraction
Considere o que pode ser
implantado separadamente.

© 2013

!24
Melhoria
Contínua

© 2013

!25
Força G - O que muda?

© 2013

!26
Tempo e Processo
implantações

processos

Mais rápido

tempo para implantação
© 2013

!27
Emergências - O que muda?

• Todos os

processos são os
mesmos?

• Quais são

maleáveis?

© 2013

!28
Estamos fazendo Entrega Contínua
Hoje tem
implantação em
produção.

© 2013

!29
Etsy - 6.149 implantações

aplicação

configuração

final 2009

final 2012
© 2013

!30
Resumo

• Saiba o por quê.
• Defina métricas
• Encontre suporte da liderança
• Escolha um time
• Inicie pela integração contínua
• Desacople a arquitetura
• Melhore continuamente
© 2013

!31
Referências

• Livro - Entrega Contínua - http://bit.ly/18vbEG9
• Gráficos Estilo XKCD - http://bl.ocks.org/dfm/3914862
• Continuous Delivery by Martin Fowler - http://bit.ly/16snS5s
• Ops Meta-Metrics: The Currency You Pay For Change - http://
•
•
•
•
•
•
•

slidesha.re/9NfNrA
“Ok, now what?” cartoon licensed from http://
www.cartoonstock.com/
Software G forces - Kent Beck - http://youtu.be/KIkUWG5ACFY
Livro - Padrões de Arquitetura de Aplicações Corporativas http://bit.ly/IupBwA
Continuous Deployment Culture at Esty - http://slidesha.re/
PYR6xp
Feature Toggles - Martin Fowler - http://martinfowler.com/bliki/
FeatureToggle.html
Branch by Abstraction - http://paulhammant.com/blog/
branch_by_abstraction.html
Rescue Time - https://www.rescuetime.com

© 2013

!32
Dezembro 2013

Obrigado, perguntas?
?

?

?

?
?

Contatos
mvaltas@thoughtworks.com
twitter: @mavcunha

www.thoughtworks.com
33

?

Implementando Entrega Contínua