SlideShare uma empresa Scribd logo
Dezembro 2013

Seminário Online:
Implementando
Entrega Contínua
Marco Valtas
mvaltas@thoughtworks.com
twitter: @mavcunha
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."
Definição desenvolvida pelo grupo de
Entrega Contínua da ThoughtWorks

"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
© 2013

!2
Instalação de Entrega Contínua - CD

© 2013

!3
Pessoas

© 2013

!4
Papéis na entrega de software

Desenvolvimento
Produto

Operações

Testes

Usuários

© 2013

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

!6
A liderança deve estar a bordo
tempo & pessoas

aplicar em melhorias

já comprometido

© 2013

!7
Defina suas métricas

YouTube

© 2013

!8
Mudanças

© 2013

!9
Introdução de mudanças
Mudanças

Tempo

© 2013

!10
Changes

Mudanças pelo tempo

Changes to production

}

}

lots of change

long time

Time

© 2013

!11
Changes

Mudanças pelo tempo

Changes to production

}

} SMALL changeS

short time

Time

© 2013

!12
Times

© 2013

!13
Nokia Test
Primeira Parte - Desenvolvimento Iterativo?

•
•

Iterações duram menos que 4 semanas

•

A iteração inicia antes do final da especificação

Funcionalidades testadas e prontas ao final da
iteração

© 2013

!14
DevOps
Devs e Ops

DevOps

© 2013

!15
Aquecedores e Congeladores

versus

© 2013

!16
Práticas

© 2013

!17
Integração Contínua

© 2013

!18
O que está pronto?

Pronto!

Pronto!

Pronto!

Pronto?

?

© 2013

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

!20
Sempre pronto para produção

© 2013

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

!22
O impacto da arquitetura

© 2013

!23
Flexibilizando a arquitetura
Estratégias

• micro-serviços
• feature toggles
• branch by abstraction
Considere o que pode ser
implantado separadamente.

© 2013

!24
Melhoria
Contínua

© 2013

!25
Força G - O que muda?

© 2013

!26
Tempo e Processo
implantações

processos

Mais rápido

tempo para implantação
© 2013

!27
Emergências - O que muda?

• Todos os

processos são os
mesmos?

• Quais são

maleáveis?

© 2013

!28
Estamos fazendo Entrega Contínua
Hoje tem
implantação em
produção.

© 2013

!29
Etsy - 6.149 implantações

aplicação

configuração

final 2009

final 2012
© 2013

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

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

© 2013

!32
Dezembro 2013

Obrigado, perguntas?
?

?

?

?
?

Contatos
mvaltas@thoughtworks.com
twitter: @mavcunha

www.thoughtworks.com
33

?

Mais conteúdo relacionado

Mais procurados

DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
Rodrigo Campos
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
Leo Lorieri
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
Adriano Tavares
 
Explicando DevOps
Explicando DevOpsExplicando DevOps
Explicando DevOps
s4nx
 
DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013
Felipe Freire
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
Alefe Variani
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
José Alexandre Macedo
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
Leonardo Comelli
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
Taller Negócio Digitais
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Denis Santos
 
Integração contínua - Parte 1
Integração contínua - Parte 1Integração contínua - Parte 1
Integração contínua - Parte 1
Fernando Fabricio
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
Denis Santos
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estrutura
Fernando Celarino
 
Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração Contínua
Thoughtworks
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
Jose Augusto Carvalho
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
José Bringel Filho
 
DevOps é cultura, processo ou cargo ?
DevOps é cultura, processo ou cargo ?DevOps é cultura, processo ou cargo ?
DevOps é cultura, processo ou cargo ?
Carlos Felippe Cardoso
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
Thoughtworks
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
Graziella Bonizi
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
Carlos Felippe Cardoso
 

Mais procurados (20)

DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
DevOps, por onde começar
DevOps, por onde começarDevOps, por onde começar
DevOps, por onde começar
 
Explicando DevOps
Explicando DevOpsExplicando DevOps
Explicando DevOps
 
DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
 
Integração contínua - Parte 1
Integração contínua - Parte 1Integração contínua - Parte 1
Integração contínua - Parte 1
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estrutura
 
Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração Contínua
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Startups e DevOps
Startups e DevOpsStartups e DevOps
Startups e DevOps
 
DevOps é cultura, processo ou cargo ?
DevOps é cultura, processo ou cargo ?DevOps é cultura, processo ou cargo ?
DevOps é cultura, processo ou cargo ?
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 

Semelhante a Implementando Entrega Contínua

Implementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco ValtasImplementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco Valtas
Thoughtworks
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Renato Groff
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
Izabel Rodrigues
 
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do ConhecimentoMétodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Claudia Hofart Guzzo
 
Metodos ageis
Metodos ageisMetodos ageis
Metodos ageis
Fábio Giordani
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
Renato Groff
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
Emmanuel Neri
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
Fabricio Schlag
 
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
VolneiBarbosa2
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
Elaine Cecília Gatto
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
Ricardo Martins ☁
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Thiago Reis da Silva
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
André Abe Vicente
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiável
Alan Braz
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Cris Fidelix
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Rebecca Betwel
 
Arquitetura evolutiva
Arquitetura evolutivaArquitetura evolutiva
Arquitetura evolutiva
Edlaine Zamora
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
GrupoAlves - professor
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
Lucas Vinícius
 

Semelhante a Implementando Entrega Contínua (20)

Implementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco ValtasImplementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco Valtas
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do ConhecimentoMétodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
Métodos Ágeis de Gestão de Projetos aplicados à Gestão do Conhecimento
 
Metodos ageis
Metodos ageisMetodos ageis
Metodos ageis
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
cms_files_140426_1663596610dm-difference-between-plm-and-pdm-ebook-pt-br_MAPD...
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de softwareScrum uma metodologia ágil paragestão e planejamento de projetos de software
Scrum uma metodologia ágil paragestão e planejamento de projetos de software
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
WBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiávelWBMA2013 - Método Ágil para desenvolvimento de software confiável
WBMA2013 - Método Ágil para desenvolvimento de software confiável
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Arquitetura evolutiva
Arquitetura evolutivaArquitetura evolutiva
Arquitetura evolutiva
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 

Implementando Entrega Contínua