O documento discute a importância da integração contínua e entrega contínua para entregar valor ao cliente de forma rápida e confiável. Ele descreve como a equipe automatizou os processos de build, teste, implantação e monitoramento para permitir várias implantações por dia com alta confiança e zero tempo de inatividade. A automação removeu barreiras e permitiu que a equipe se concentrasse em entregar valor ao negócio de forma mais ágil.
Continuous delivery principios e praticas - Knowledge21
1. Integração
Contínua até a
Entrega Contínua
Agradecimento ao Flávio Costa pela ajuda!
Carlos Felippe Cardoso (CFC)
cfc@k21.com.br
@carlosfelippe
slideshare.net/cfelippe
2. Sócio e Agile Coach - Knowledge 21
Instrutor nos treinamentos:
CSD – Certified Scrum Developer
Testes Automatizados
Continuous Delivery
Técnicas de Facilitação
Prof. Colaborador - UFRJ
“Agilista” desde 2004
Quem sou eu?
4. O que é CD?
Case UFRJ
Principal dificuldade nas
empresas
5. Mas o que é CD?
"Nossa maior prioridade é satisfazer o cliente
através da entrega contínua e adiantada de
software com valor agregado."
1º princípio do Manifesto Ágil
6. Mas o que é CD?
"Continuous Delivery is a software
development discipline where you build
software in such a way that the software can be
released to production at any time."
Martin Fowler
7. Dev + Ops = DevOps!
“DevOps is much of the ‘how’ of achieving
continuous delivery,”
Jez Humble
9. Contexto
Projeto:
Sistema de Gestão Acadêmica
ERP - UFRJ
Time:
Mescla de Bolsistas e Funcionários
Multidisciplinar – Dev / DB / Test / Ops
Parte técnica:
Java EE + JBoss , Linux , MS SQL Server
Integração com outros DBs corporativos
10. Treinamento em 2011 no RJ
"Vamos jogar nosso servidor de produção pela janela?"
"Quanto tempo para colocar o sistema novamente no ar?“
"Continuous Delivery for DevOps"
Jez Humble / Agosto - 2011
Rio de Janeiro
11. Automação!
“Computers are designed to do simple repetitive tasks.
The second you have humans doing repetitive tasks, all
the computers get together late at night and laugh at
you”
“… Every time you do something for the third time,
automate it. You’ll be doing it a million times…”
Neal Ford
16. Nossa situação (Retrospectiva)
E o que faltava?
Negócio fatiando bem as entregas
Provisionamento de Servers e Workstations
Deploy confiável e automatizado (!!!)
Monitoramento decente
29. O que fizemos?
Construir o binário somente uma vez!
E utilizá-lo em todos os lugares!
Testes de aceitação automatizados
Testes manuais exploratórios
Homologação
Produção
Jenkins
37. Um link para um artigo no Dzone
é enviado (fim de 2013)
8 Principles of Continuous Delivery
De 2011!
http://java.dzone.com/articles/8-principles-continuous
Resolvemos fazer uma rápida retrospectiva
Em qual estágio estávamos?
38. 8 princípios do CD
O processo de liberar/deployar software DEVE ser
reproduzível e confiável
Automatize tudo!
Se alguma coisa for difícil de fazer ou dolorosa,
faça-a com mais frequência
Coloque tudo no controle de versão
39. 8 princípios do CD
Pronto significa “Em produção”
Build quality in!
Todos são responsáveis pelo processo de
release
Melhoria contínua
40. 4 práticas do CD
Build binaries only once.
Use precisely the same mechanism to deploy to
every environment
Smoke test your deployment.
If anything fails, stop the line
Everybody has responsibility for the release
process
42. Objetivos alcançados
Entrega de valor cada vez mais rápida e mais simples
Todos da equipe podem fazer deploy
Alta confiança
Tempo livre para fazer coisas mais produtivas :)
43. O que ainda dá para melhorar
(sempre tem muito a fazer...)
Versionamento do Banco de Dados
Visualização do Estágio de Build mais
customizada
(Jenkins pipeline plugin)
Volta de uma versão (rollback) é manual
Monitoramento dos logs