implementando entrega contínua - marco valtas
DESCRIPTION
Seminário Online em 05/12/2013TRANSCRIPT
Dezembro 2013
Seminário Online: Implementando Entrega Contínua
Marco Valtas [email protected] twitter: @mavcunha
© 2013 !2
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."
"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
Definição desenvolvida pelo grupo de Entrega Contínua da ThoughtWorks
© 2013 !3
Instalação de Entrega Contínua - CD
© 2013 !4
Pessoas
© 2013 !5
Papéis na entrega de software
Desenvolvimento
TestesOperações
UsuáriosProduto
© 2013 !6
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 !7
A liderança deve estar a bordo
já comprometido
aplicar em melhoriaste
mpo
& p
esso
as
© 2013 !8
Defina suas métricas
YouTube♫
© 2013 !9
Mudanças
© 2013 !10
Introdução de mudanças
♫
Tempo
Mudanças
© 2013 !11
Time
Changes Changes to production
}long time
} lots of change
Mudanças pelo tempo
© 2013 !12
Mudanças pelo tempo
Time
Changes Changes to production
}short time
} SMALL changeS
© 2013 !13
Times
♫
© 2013 !14
Nokia Test
• Iterações duram menos que 4 semanas
• Funcionalidades testadas e prontas ao final da iteração
• A iteração inicia antes do final da especificação
Primeira Parte - Desenvolvimento Iterativo?
© 2013 !15
DevOps
Devs e Ops DevOps
© 2013 !16
Aquecedores e Congeladores
versus
© 2013 !17
Práticas
♫
© 2013 !18
Integração Contínua
© 2013 !19
O que está pronto?
Pronto! Pronto! Pronto! Pronto?
?
© 2013 !20
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 !21
Sempre pronto para produção
© 2013 !22
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 !23
O impacto da arquitetura
© 2013 !24
Flexibilizando a arquitetura
Estratégias
• micro-serviços
• feature toggles
• branch by abstraction
Considere o que pode ser implantado separadamente.
© 2013 !25
Melhoria Contínua
© 2013 !26
Força G - O que muda?
© 2013 !27
Tempo e Processo
Mais rápido
tempo para implantação
implantaçõesprocessos
© 2013 !28
Emergências - O que muda?
• Todos os processos são os mesmos?
• Quais são maleáveis?
© 2013 !29
Estamos fazendo Entrega Contínua
Hoje tem implantação em
produção.
© 2013 !30
Etsy - 6.149 implantações
final 2009 final 2012aplicação configuração
© 2013 !31
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 !32
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
Dezembro 2013Obrigado, perguntas?
Contatos [email protected] twitter: @mavcunha
���33
www.thoughtworks.com
?? ?
???