Integração contínua
Download
Report
Transcript Integração contínua
Uma Visão Geral Sobre
Entrega Contínua
De onde vem? O que é? Considerações finais
Fábio Nogueira de Lucena
Instituto de Informática (UFG)
“O que observamos não é a natureza,
mas a natureza exposta ao nosso
método de questionamento.”
Werner Heisenberg
“A chave para a autonomia humana
é o conhecimento.”
Sandra Bozza
15º. Congresso Pensar
11/10/2014
Goiânia
De onde vem?
Top-down Programming:
“módulos são integrados
à medida que são escritos”
Mills, Harlan D.,
"Top Down System Development" (1970). The Harlan D. Mills Collection.
“Meu principal critério para julgar se
programação top down foi usada é a
ausência de dificuldades na integração.”
1988
“... a equipe de desenvolvimento produzirá muitas liberações
internas, poucas serão passadas adiante. Estas internas
representam a integração contínua do sistema,
e existem para forçar a qualidade.”
1994
(segunda edição, página 256)
12 práticas, dentre elas:
Integração contínua:
“Construa o sistema várias vezes
ao dia, toda vez que uma tarefa é
realizada.”
“Integre e teste mudanças tão
Construir com qualidade
1999
logo sejam introduzidas.”
“Nossa maior prioridade é satisfazer o
cliente, através da entrega adiantada e
contínua de software de valor.”
Primeiro princípio do Manifesto Ágil (2001)
Princípios:
•
...
•
Construa com qualidade
•
Entregue rápido
(liberar para produção com
frequência)
•
2003
...
Integração contínua
“Todo o trabalho realizado é unido e a consistência
obtida com frequência, onde problemas
são detectados e corrigidos rapidamente.”
2004
“Integração Contínua:
melhorar a qualidade do software
e reduzir riscos”
2007
http://www.integratebutton.com/
• Vivemos em um mundo de
incertezas
• Informações valiosas estão
constantemente surgindo
• Feedback rápido para
alimentar decisões
2009
Não insira requisitos,
obtenha mudanças do feedback.
“Inovação contínua para
criar negócios de sucesso.”
2011
Além de
integrar continuamente
também precisamos
“validar continuamente”
2011
Primeiro parágrafo:
“Se alguém tem uma boa ideia,
como entregá-la aos usuários
o mais rápido possível?
Este livro mostra como resolver
este problema.”
2011
Página 55:
“O primeiro texto acerca de
integração contínua é o livro
do Kent Beck (XP Explained).”
O que é
Entrega Contínua?
“Entrega contínua permite que você
entregue software e manutenções
mais rápido e com menor risco.”
The Business Value of Continuous Delivery (CloudBees)
“Entrega contínua é uma técnica de
desenvolvimento de software projetada
para assegurar que código está pronto
para produção mais rápido.”
Jenkins and Continuous Delivery: Handing developers more power
Sacha Labourey (CloudBees).
“Entrega contínua é uma metodologia
que visa assegurar que o software está
sempre em um estado entregável por
todo o seu ciclo de vida.”
2014 State of DevOps Report
“Tem o foco na redução de custo,
tempo e risco na entrega de mudanças
incrementais aos usuários.”
Adopting Continuous Delivery, Jezz Humble, 2013
•
Por todo ciclo de vida o software está entregável
•
Entregável tem prioridade sobre novas funções
•
Feedback rápido para qualquer mudança
•
Selecione uma versão, um ambiente e aperte um
botão para implantar
Martin Fowler
“Práticas que habilitam o fluxo contínuo de
funcionalidades liberadas para produção
de forma segura e sem defeitos.”
Lean Software Development: A Tutorial, Poppendieck e Cusumano, IEEE Software, 2012
“Entrega contínua é uma estratégia que
busca oferecer novos recursos aos
usuários de forma tão eficiente
quanto possível.”
5 things you need to know about Continuous Delivery Software Development,
Network World, 2013
Documentos formais (não fazem referência)
• ISO/IEC/IEEE 24765
System and Software Engineering Vocabulary, 2010
• SWEBOK V3
Guide to the Software Engineering Body of Knowledge,
2014
Relação com outros termos
No ambiente
de produção
Liberação
Equipe de
desenvolvimento
Entrega
contínua
Integração
contínua
Implantação
(deployment) contínua
http://continuousdelivery.com
Quais as
evidências?
Continuous delivery
http://en.wikipedia.org/wiki/Continuous_delivery
Pipeline
Requisitos
funcionais
Commit inicia uma
“instância” do pipeline
Requisitos não
funcionais
O que é essencial?
Informação sobre o que está acontecendo
Erro
Erro
Erro
Ok
Ok
Ok
?
Ok
?
Erro
Ok
Erro
?
?
Erro
Feedback, visibilidade
Erro
Existem três formas de fazer as coisas:
o jeito certo,
o jeito errado
e o meu jeito,
que é igual ao jeito errado,
só que mais rápido.
Homer Simpson
Os Simpsons
Considerações
finais
“Práticas específicas, por mais que sejam valiosas em outras
situações, raramente são a melhor solução para o problema em
questão. Trate-as como pontos de partida”.
Lean Software Development: A Tutorial
Mary Poppendieck e Michael Cusumano
IEEE Software, 2012