58
Continuous Delivery E seus princípios e práticas Agradecimento ao Flávio Costa pela ajuda! Carlos Felippe Cardoso (CFC) [email protected] @carlosfelippe slideshare.net/cfelippe

Continuous delivery principios e praticas - Knowledge21 no Serpro Agil

Embed Size (px)

Citation preview

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

O que é CD?

Case SiGA-UFRJ

Principal dificuldade nas empresas

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

Dev + Ops = DevOps!

“DevOps is much of the ‘how’ of achieving

continuous delivery,”

Jez Humble

Ops

https://devcentral.f5.com/articles/there-are-4-dev-ops-in-it

ContextoO time, o projeto e o trabalho

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

Um sentimento reinava...

Nossa situação

O que já tínhamos automatizado?

Integração Contínua funcionando!

Parque com milhares de testes automatizados

Um de nossos projetos no Jenkins2500+ testes

A cultura de testes já estava na veia

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

O gatilhoOu quando começamos a tentar automatizar tudo!

Servidores de produção ficaram sem garantia de hardware!

Novos servidores comprados!

Novos servidores comprados!

E agora?

Configurar todos servidores na mão?

E agora, o que fazemos?

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

A TI cria barreiras para o Negócio colocar código novo em produção!

Mãos à obra!O que fizemos?

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?

Automatizar o provisionamento & configuração!

ServidoresWorkstations

O que fizemos?

Monitoramento & DashboardsReação mais rápida a problemasMaior visibilidade!

Jenkins Dashboard

Jenkins DashboardNem sempre está verde! =(

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

Olhando para trásUma rápida retrospectiva

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çadosOu aonde esse trabalho nos levou…

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

Jenkins Pipeline Plugin

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!!!

O futuroAonde queremos chegar?

Aonde queremos chegar?

Sabem qual o principal problema para adotar tudoisso que falamos?

Colaboração

Time Multi-disciplinar

Senso de Time

“Indivíduos e interações mais que processos e ferramentas”

Perguntas?

Obrigado!

Email: [email protected]: @carlosfelippeSlides em: slideshare.net/cfelippe