Continuous DeliveryE seus princípios e práticas
Agradecimento ao Flávio Costa pela ajuda!
Carlos Felippe Cardoso (CFC)
[email protected]@carlosfelippe
slideshare.net/cfelippe
Sócio e Agile Coach - Knowledge 21Instrutor nos treinamentos:
CSD – Certified Scrum DeveloperTestes AutomatizadosContinuous DeliveryTécnicas de Facilitação
Prof. Colaborador/Funcionário - UFRJ“Agilista” desde 2004
Quem sou eu?
Palestra do Scrum Gathering RJhttp://scrumrio.com
Ingressos deste ano no Early BirdEm até 5x sem juros
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
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
ContextoProjeto:
Sistema de Gestão AcadêmicaERP - UFRJ
Time:Mescla de Bolsistas e FuncionáriosMultidisciplinar – Dev / DB / Test / Ops
Parte técnica:Java EE + JBoss , Linux , MS SQL ServerIntegração com outros DBs corporativos
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
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
Nossa situação
O que já tínhamos automatizado?
Integração Contínua funcionando!
Parque com milhares de testes automatizados
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
E agora, o que fazemos?
“If it hurts, do it more often and bring the pain forward”
Martin Fowler - Continuous Integration
Nosso quadro KanbanNotem a quantidade de Post Its na raias de Ready, Testes Exploratórios e Pronto para Produção
O que fizemos?
Construir o binário somente uma vez!
E utilizá-lo em todos os lugares!
Testes de aceitação automatizadosTestes manuais exploratóriosHomologaçãoProdução
Jenkins
O que fizemos?
Deploy " tão" simples quanto o apertar de um botãoRecentemente deploy para homologação ficou automático!
Fabric
O que fizemos?
Entregar valor com frequência!
“Feito é melhor que perfeito”
Sheryl Sandberg, COO @ Facebook
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 retrospectivaEm qual estágio estávamos?
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
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
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
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 :)
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
O que ainda dá para melhorar
Versionamento do Banco de Dados
Visualização do Estágio de Build
(Jenkins pipeline plugin)
Volta de uma versão (rollback) é manual
Monitoramento dos logs
Dia D – Vamos fazer release ?
Inscrição
Expectativa
3000+ usuários simultâneos
Deploy durante horário pico, 0 downtime, 100% confiança
Dia D – Vamos fazer release ?
Inscrição
Expectativa
3000+ usuários simultâneos
Deploy durante horário pico, 0 downtime, 100% confiança
5 RELEASES!!!
Colaboração
Time Multi-disciplinar
Senso de Time
“Indivíduos e interações mais que processos e ferramentas”