SlideShare une entreprise Scribd logo
1  sur  51
2015-10-30
http://pt.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
Amazon entre 2006-2011
● 300 deployments por hora
● 4x menos falhas de deployment
● 10x menos indisponibilidade
● ~0,0001% dos deployments falham
● Rollback automático e instantâneo
● Processo simplificado
https://www.youtube.com/watch?v=dxk8b9rSKOo
Google
Facebook
LinkedIn
Netflix
Etsy
Apple
Target
Walmart
Norstrom
Adobe
Sony
...
2015 State of DevOps Report
“Organizações de alto-desempenho
fazem 30x mais deployments com um
lead time 200x menor; sofrem 60x
menos falhas e se recuperam 168x
mais rápido.”
puppetlabs.com/2015-devops-report
2015 State of DevOps Report
Entregam valor mais rápido aplicando práticas
de Lean management e de continuous
delivery.
Conseguem isso em aplicações novas ou
legadas.
Os gestores têm papel crítico em qualquer
iniciativa DevOps.
puppetlabs.com/2015-devops-report
Como Medir o Desempenho de TI?
Métricas de Fluxo Métricas de Estabilidade
Frequência de Deploys
Lead Time de Mudança
Taxa de Falhas
Tempo de Recuperação
puppetlabs.com/2014-devops-report
Práticas DevOps Correlacionadas
Métricas de Fluxo Métricas de Estabilidade
Frequência de Deploys
❏ Controle de Versões
❏ Continuous Delivery
Lead Time de Mudança
❏ Controle de Versões
❏ Testes Automáticos
Taxa de Falhas
Tempo de Recuperação
❏ Controle de Versões
❏ Monitoração Proativa
puppetlabs.com/2014-devops-report
1990 1995 2000 2005 2010 2015
ITIL ITILv2 ITILv3
DevOps
Visible
Ops
Agile
Lean
Kanban
XP
Scrum
RUP
From Concept to Cash
The authors used well-proven lean concepts
from the 1980’s and 1990’s to help explain why
agile methods are a very effective approach to
software development, …, offering basic ideas
and practices, building blocks which a team can
use to incrementally build an exceptional
process over time.
This book is written for anyone who wants a more effective development
process - managers, project leaders, senior developers, and architects in
enterprise IT and software companies alike.
A Novel About IT, DevOps, and
Helping Your Business Win
ABOUT THE BOOK
❏ how to recognize problems that happen in IT organizations
❏ how these problems jeopardize nearly every commitment
the business makes: Development, IT Operations and
Information Security
❏ how DevOps techniques can fix the problem to help the
business win
“It's a gripping read that captures brilliantly the dilemmas that face
companies which depend on IT, and offers real-world solutions.
As Deming reminds us, "It is not necessary to change. Survival is
not mandatory." The Phoenix Project will have a profound effect
on IT, just as The Goal did for manufacturing.”
–Jez Humble, co-author of the Jolt award winning book "Continuous
Delivery," and Principal at ThoughtWorks Studios
Desperdícios no Desenvolvimento de Software
● Funcionalidade extra
● Trabalho incompleto
● Retrabalho (“churn”)
Prática fundamental de DevOps
Continuous Deployment
commit
unit
tests
integration
tests
acceptance
tests
deploy to
production
Prática: Infraestrutura é Código
commit
unit
tests
integration
tests
acceptance
tests
deploy to
production
version
control
Prática: Tudo sobre Controle de Versão
● Código da aplicação
● Configuração da aplicação
● Configuração do sistema
● Scripts de teste
● Scripts de deployment
● Manifestos de infraestrutura
4.0.0
1.0.1
4.x
2.x
3.x
2.1.0
2.1.1
3.1.1
3.2.0
3.0.1
2.2.1
2.3.1
4.0.1
2.1.x
3.2.x
3.1.x
3.0.x
4.0.x
1.0.x
2.2.x
2.3.x
merge
merge
merge
2.0.0
1.0.1
trunk
2.0.1
1.0.2
1.1.0
1.1.1
1.0.x
1.1.x
2.0.x
Prática: Trunk-based Development
trunk
r325623
r296343
r259878
r218633
r184589
r168782
“Se seus testes rotineiramente encontram defeitos é
porque o seu processo de desenvolvimento é defeituoso.”
“Há dois tipos de teste: os que encontram defeitos e os
que previnem defeitos. Os primeiros são puro desperdício.
O objetivo é prevenir a inserção de defeitos no código em
primeiro lugar e a ferramenta pra fazer isso é test-driven
development.”
-- Mary e Tom Poppendieck
Prática: Test-Driven Development
Prática: Revisão de Código
Todo commit é revisado por um colega e validado por
checks automáticos antes de ser integrado.
Elimina código “porco”
Elimina “feudos” e “órfãos” no código
Maneira mais barata de treinar novatos
Melhor investimento pra evitar que o código “apodreça”
Arquitetura Monolítica
simples quando pequeno
baixa latência
repositório único
difícil coordenar quando grande
difícil manter modularizado
impossível escalar horizontalmente
builds demoradas
deploy “tudo ou nada”
UI
Business
Logic
Data Access
Layer
Database
Prática: Arquitetura de Micro-serviços
UI
Microservice
Microservice
Database
Microservice
Database
Microservice
Database
Práticas Técnicas
Put everything under version control
Trunk-based development
Code Review
Automated acceptance testing
Canary testing
A/B testing
Proactive monitoring
Microservices architecture
Peer-reviewed change approval process
Infrastructure configuration management
Ops using Dev tools
...
Alto custo de comunicação entre equipes
UI
Business
Logic
Data Access
Layer
Database
requisitos
arquitetura
implementação
testes
implantação
configuração
infraestruturabanco de dados
Qual é o problema?
Como Dev vê Ops
Como Ops vê Dev
Como vemos InfoSec
♡ O que gostaríamos de ver ♡
http://devopsreactions.tumblr.com/post/51462515324/encouraging-the-usage-of-coding-standards
Prática: Equipes Multidisciplinares
“Donas” de seus Serviços
UI
Microservice
Microservice
Database
Microservice
Database
Microservice
Database
“An important aspect of Facebook's development culture is
the idea that developers are fully responsible for how their
code behaves in production. This philosophy mirrors the
"DevOps" movement, which encourages lowering the wall
between software development and IT operations.
If any of the code in a Facebook update causes problems
in production, the developer who wrote it is on the hook for
making sure that the issue gets resolved as quickly as
possible.”
http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/
Lei de Little da Teoria de Filas
Número médio de
items no sistema
Taxa média de
chegada
Tempo médio de espera
de um item no sistema
W = L ⁄ λ
Lei de Little da Teoria de Filas
aplicada ao Desenvolvimento de Software
Lead Time =
Tasks in Process
Average Completion Rate
Ocupação
Eficiência
Velocidade
Google 20% de
tempo “livre”
Prática: Kanban
Lead Time
Prática: Kanban
Visualizar todo o trabalho
Identificar bloqueios
Swarm to solve it!
Garantir lead time ao invés de prazo de entrega
Limitar Work In Progress (WIP)
Gestão de Comando e Controle (C2)
“O Sistema Militar de Comando e Controle
(SISMC²) do Ministério da Defesa objetiva
otimizar o exercício da direção, do controle e
da coordenação das forças militares em
operação, possibilitando o acompanhamento
em tempo real das ações em curso.”
“Quando você quer construir um navio,
não diga às pessoas pra juntar madeira,
cortar pranchas ou distribuir trabalho,
mas desperte em cada homem o desejo
pela imensidão do mar.”
-- Antoine de Saint-Exupéry
Prática: Gestão por Comando de Missão
Prática: Cultivar e Cultuar a Cultura
Organizacional
Respeito
Confiança
Excelência
Alto-desempenho
Franqueza
Honestidade
Escute, pense e aja
Dê responsabilidade e propósito
Peça desculpas ao invés de permissão
Great Workplace = Stunning Colleagues
Hire well & fire well...
https://hbr.org/2014/01/how-netflix-reinvented-hr
Referências
❏10+ Deploys Per Day
❏y2u.be/LdOe18KhtT4
❏What Is DevOps?
❏theagileadmin.com/what-is-devops
❏2014 State of DevOps Report
❏puppetlabs.com/2014-devops-report
❏2015 State of DevOps Report
❏puppetlabs.com/2015-devops-report
❏E mais…
❏diigo.com/user/gnustavo/devops+good
❏goodreads.com/review/list/25759596?shelf=devops
Dois outros ótimos livros!
www.cpqd.com.br
Gustavo Chaves
gustavo@cpqd.com.br
(19) 3705 7003
go.cpqd.com.br/devops

Contenu connexe

Tendances

Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega ContínuaMarlon Bernardes
 
Explicando DevOps
Explicando DevOpsExplicando DevOps
Explicando DevOpss4nx
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?Thiago Ganzarolli
 
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 IIAlefe Variani
 
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel
 
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareQATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareWelington Monteiro
 
Palestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGPalestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGWelington Monteiro
 
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 FerrariTaller Negócio Digitais
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arteilegra
 
Implementando Entrega Contínua
Implementando Entrega ContínuaImplementando Entrega Contínua
Implementando Entrega ContínuaMarco Valtas
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
ABTesting: Não há nada como testar em produção!
ABTesting: Não há nada como testar em produção!ABTesting: Não há nada como testar em produção!
ABTesting: Não há nada como testar em produção!Daniel Semedo
 
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 DevOpsJosé Alexandre Macedo
 

Tendances (20)

Da Integração à Entrega Contínua
Da Integração à Entrega ContínuaDa Integração à Entrega Contínua
Da Integração à Entrega Contínua
 
APS - RAD x Ágeis
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x Ágeis
 
Explicando DevOps
Explicando DevOpsExplicando DevOps
Explicando DevOps
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?
 
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
 
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
 
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de SoftwareQATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
QATEST - Agile Brazil 2014 - O impacto do DEVOPS na Qualidade de Software
 
Palestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MGPalestra sobre DevOps na ASSESPRO-MG
Palestra sobre DevOps na ASSESPRO-MG
 
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
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arte
 
Implementando Entrega Contínua
Implementando Entrega ContínuaImplementando Entrega Contínua
Implementando Entrega Contínua
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
DevOps - visão geral
DevOps - visão geralDevOps - visão geral
DevOps - visão geral
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
ABTesting: Não há nada como testar em produção!
ABTesting: Não há nada como testar em produção!ABTesting: Não há nada como testar em produção!
ABTesting: Não há nada como testar em produção!
 
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
 
O que é DevOps afinal?
O que é DevOps afinal?O que é DevOps afinal?
O que é DevOps afinal?
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Extreme Programming XP
Extreme Programming XPExtreme Programming XP
Extreme Programming XP
 

En vedette

Integração continua com hudson
Integração continua com hudsonIntegração continua com hudson
Integração continua com hudsonEduardo Souza
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveisQualister
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

En vedette (6)

Integração continua com hudson
Integração continua com hudsonIntegração continua com hudson
Integração continua com hudson
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveis
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Similaire à DevOps

E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsEdson Celio
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testesFelipe Freire
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook Marcio Sete
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsAdriano Bertucci
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerAlan Carlos
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APPDouglas Alonso
 
Os príncipios por trás do DevOps
Os príncipios por trás do DevOpsOs príncipios por trás do DevOps
Os príncipios por trás do DevOpsGuilherme Cardoso
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementRamon Durães
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TICarlos Buzeto
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 

Similaire à DevOps (20)

Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testes
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
DevOps
DevOpsDevOps
DevOps
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APP
 
Os príncipios por trás do DevOps
Os príncipios por trás do DevOpsOs príncipios por trás do DevOps
Os príncipios por trás do DevOps
 
Monografia-Devops
Monografia-DevopsMonografia-Devops
Monografia-Devops
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TI
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 

DevOps

  • 3. Amazon entre 2006-2011 ● 300 deployments por hora ● 4x menos falhas de deployment ● 10x menos indisponibilidade ● ~0,0001% dos deployments falham ● Rollback automático e instantâneo ● Processo simplificado https://www.youtube.com/watch?v=dxk8b9rSKOo
  • 5. 2015 State of DevOps Report “Organizações de alto-desempenho fazem 30x mais deployments com um lead time 200x menor; sofrem 60x menos falhas e se recuperam 168x mais rápido.” puppetlabs.com/2015-devops-report
  • 6. 2015 State of DevOps Report Entregam valor mais rápido aplicando práticas de Lean management e de continuous delivery. Conseguem isso em aplicações novas ou legadas. Os gestores têm papel crítico em qualquer iniciativa DevOps. puppetlabs.com/2015-devops-report
  • 7. Como Medir o Desempenho de TI? Métricas de Fluxo Métricas de Estabilidade Frequência de Deploys Lead Time de Mudança Taxa de Falhas Tempo de Recuperação puppetlabs.com/2014-devops-report
  • 8. Práticas DevOps Correlacionadas Métricas de Fluxo Métricas de Estabilidade Frequência de Deploys ❏ Controle de Versões ❏ Continuous Delivery Lead Time de Mudança ❏ Controle de Versões ❏ Testes Automáticos Taxa de Falhas Tempo de Recuperação ❏ Controle de Versões ❏ Monitoração Proativa puppetlabs.com/2014-devops-report
  • 9. 1990 1995 2000 2005 2010 2015 ITIL ITILv2 ITILv3 DevOps Visible Ops Agile Lean Kanban XP Scrum RUP
  • 10. From Concept to Cash The authors used well-proven lean concepts from the 1980’s and 1990’s to help explain why agile methods are a very effective approach to software development, …, offering basic ideas and practices, building blocks which a team can use to incrementally build an exceptional process over time. This book is written for anyone who wants a more effective development process - managers, project leaders, senior developers, and architects in enterprise IT and software companies alike.
  • 11. A Novel About IT, DevOps, and Helping Your Business Win ABOUT THE BOOK ❏ how to recognize problems that happen in IT organizations ❏ how these problems jeopardize nearly every commitment the business makes: Development, IT Operations and Information Security ❏ how DevOps techniques can fix the problem to help the business win “It's a gripping read that captures brilliantly the dilemmas that face companies which depend on IT, and offers real-world solutions. As Deming reminds us, "It is not necessary to change. Survival is not mandatory." The Phoenix Project will have a profound effect on IT, just as The Goal did for manufacturing.” –Jez Humble, co-author of the Jolt award winning book "Continuous Delivery," and Principal at ThoughtWorks Studios
  • 12.
  • 13. Desperdícios no Desenvolvimento de Software ● Funcionalidade extra ● Trabalho incompleto ● Retrabalho (“churn”)
  • 14.
  • 15. Prática fundamental de DevOps Continuous Deployment commit unit tests integration tests acceptance tests deploy to production
  • 16. Prática: Infraestrutura é Código commit unit tests integration tests acceptance tests deploy to production version control
  • 17. Prática: Tudo sobre Controle de Versão ● Código da aplicação ● Configuração da aplicação ● Configuração do sistema ● Scripts de teste ● Scripts de deployment ● Manifestos de infraestrutura
  • 18.
  • 22.
  • 23. “Se seus testes rotineiramente encontram defeitos é porque o seu processo de desenvolvimento é defeituoso.” “Há dois tipos de teste: os que encontram defeitos e os que previnem defeitos. Os primeiros são puro desperdício. O objetivo é prevenir a inserção de defeitos no código em primeiro lugar e a ferramenta pra fazer isso é test-driven development.” -- Mary e Tom Poppendieck Prática: Test-Driven Development
  • 24. Prática: Revisão de Código Todo commit é revisado por um colega e validado por checks automáticos antes de ser integrado. Elimina código “porco” Elimina “feudos” e “órfãos” no código Maneira mais barata de treinar novatos Melhor investimento pra evitar que o código “apodreça”
  • 25.
  • 26. Arquitetura Monolítica simples quando pequeno baixa latência repositório único difícil coordenar quando grande difícil manter modularizado impossível escalar horizontalmente builds demoradas deploy “tudo ou nada” UI Business Logic Data Access Layer Database
  • 27. Prática: Arquitetura de Micro-serviços UI Microservice Microservice Database Microservice Database Microservice Database
  • 28. Práticas Técnicas Put everything under version control Trunk-based development Code Review Automated acceptance testing Canary testing A/B testing Proactive monitoring Microservices architecture Peer-reviewed change approval process Infrastructure configuration management Ops using Dev tools ...
  • 29.
  • 30. Alto custo de comunicação entre equipes UI Business Logic Data Access Layer Database requisitos arquitetura implementação testes implantação configuração infraestruturabanco de dados
  • 31. Qual é o problema?
  • 35. ♡ O que gostaríamos de ver ♡ http://devopsreactions.tumblr.com/post/51462515324/encouraging-the-usage-of-coding-standards
  • 36. Prática: Equipes Multidisciplinares “Donas” de seus Serviços UI Microservice Microservice Database Microservice Database Microservice Database
  • 37. “An important aspect of Facebook's development culture is the idea that developers are fully responsible for how their code behaves in production. This philosophy mirrors the "DevOps" movement, which encourages lowering the wall between software development and IT operations. If any of the code in a Facebook update causes problems in production, the developer who wrote it is on the hook for making sure that the issue gets resolved as quickly as possible.” http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/
  • 38.
  • 39. Lei de Little da Teoria de Filas Número médio de items no sistema Taxa média de chegada Tempo médio de espera de um item no sistema W = L ⁄ λ
  • 40. Lei de Little da Teoria de Filas aplicada ao Desenvolvimento de Software Lead Time = Tasks in Process Average Completion Rate Ocupação Eficiência Velocidade
  • 41. Google 20% de tempo “livre”
  • 43. Prática: Kanban Visualizar todo o trabalho Identificar bloqueios Swarm to solve it! Garantir lead time ao invés de prazo de entrega Limitar Work In Progress (WIP)
  • 44.
  • 45. Gestão de Comando e Controle (C2) “O Sistema Militar de Comando e Controle (SISMC²) do Ministério da Defesa objetiva otimizar o exercício da direção, do controle e da coordenação das forças militares em operação, possibilitando o acompanhamento em tempo real das ações em curso.”
  • 46. “Quando você quer construir um navio, não diga às pessoas pra juntar madeira, cortar pranchas ou distribuir trabalho, mas desperte em cada homem o desejo pela imensidão do mar.” -- Antoine de Saint-Exupéry Prática: Gestão por Comando de Missão
  • 47.
  • 48. Prática: Cultivar e Cultuar a Cultura Organizacional Respeito Confiança Excelência Alto-desempenho Franqueza Honestidade Escute, pense e aja Dê responsabilidade e propósito Peça desculpas ao invés de permissão Great Workplace = Stunning Colleagues Hire well & fire well... https://hbr.org/2014/01/how-netflix-reinvented-hr
  • 49. Referências ❏10+ Deploys Per Day ❏y2u.be/LdOe18KhtT4 ❏What Is DevOps? ❏theagileadmin.com/what-is-devops ❏2014 State of DevOps Report ❏puppetlabs.com/2014-devops-report ❏2015 State of DevOps Report ❏puppetlabs.com/2015-devops-report ❏E mais… ❏diigo.com/user/gnustavo/devops+good ❏goodreads.com/review/list/25759596?shelf=devops

Notes de l'éditeur

  1. 2ª O’Reilly Velocity Conference. John Allspaw, senior vice president of technical operations, and Paul Hammond, director of engineering at Flickr. VP de Operações e Diretor de Desenvolvimento, apresentação conjunta, mostrando as práticas técnicas e organizacionais que adotaram para conseguirem fazer 10 deploys por dia!
  2. Velocity 2011, Jon Jenkins, Diretor de produto na Amazon.
  3. http://www.infoq.com/news/2014/03/etsy-deploy-50-times-a-day http://aalittle.com/continuous-deployments-an-inside-look http://www.wired.com/2013/04/linkedin-software-revolution/ http://highscalability.com/blog/2011/12/12/netflix-developing-deploying-and-supporting-software-accordi.html http://techbeacon.com/10-companies-killing-it-devops
  4. vazão = throughput latência = lead time
  5. fluxo = throughput latência = lead time
  6. “The Visible Ops Handbook outlines how successful technology companies like Etsy, Netflix, Facebook, Amazon.com, Twitter and Google transformed their ITIL practices to implement effective change control.” 2009 John Allspaw e Paul Hammond, 10+ Deploys per day: Dev & ops cooperation at Flicker, Velocity Conference Lean em Sofware tem raízes na Manufatura Lean, também conhecido como Sistema Toyota de produção, que revolucionou o sistema fabril na década de 1980.
  7. 2006
  8. 2013 Uma versão “pra TI” do livro A Meta do Eliyahu M. Goldratt.
  9. Garanta que o software esteja sempre num estado “releasable”, pra que o deployment seja um “não-evento” que possa ser executado sob demanda, sem rituais complicados.
  10. Menos Linhas de Produto
  11. Uma linha de produto
  12. Quando seus testes encontram um defeito, o problema não termina quando você corrige o código… ele só termina quando você corrige a falha de processo que permitiu que o defeito fosse introduzido no código.
  13. http://pt.slideshare.net/RandyShoup/goto-aarhus2014-enterprisearchitecturemicroservices
  14. http://pt.slideshare.net/RandyShoup/goto-aarhus2014-enterprisearchitecturemicroservices
  15. Desenvolvedores são avaliados pela quantidade de mudanças feitas no produto. Operadores são avaliados pela estabilidade do sistema.
  16. Todos alinhados em prol do atingimento dos objetivos do negócio.
  17. http://pt.slideshare.net/RandyShoup/goto-aarhus2014-enterprisearchitecturemicroservices
  18. John Little, professor do MIT, propôs a lei em 1961. Usado, por exemplo, pra estimar o número de assentos necessários num restaurante a partir da expectativa de tempo médio de refeição e taxa média de chegada de clientes.
  19. John Little, professor do MIT, propôs a lei em 1961. (Não o Stuart Little!)
  20. Google’s 20%! Cansei de sugerir melhorias e ouvir desculpas de que “meu time não tem alocação pra isso”... A ideia é que a tão propalada “melhoria contínua” depende de “investimento contínuo”. Nem sempre financeiro… mas certamente de tempo.
  21. Converse com seu cliente e convença-o a abrir mão do prazo-de-entrega pra você poder lhe dar a gestão de prioridades da fila de entrada e uma garantia de lead time médio e entrega.
  22. Reed Hastings, CEO da Netflix, diz para os seus gerentes: “Quando você fica tentado a ‘controlar” seu time, pergunte a si mesmo que tipo de ‘contexto’ você poderia lhes passar em vez disso. Você está sendo suficientemente articulado e inspirador ao explicar nossas estratégias e objetivos?”
  23. Quando eu fui contratado pelo CPqD eu estava muito orgulhoso e satisfeito, porque a imagem que eu e a maioria dos meus colegas tínhamos do CPqD era de uma organização moderna, desenvolvendo tecnologia de ponta. Era onde todos queríamos estar. Contei a história da entrevista na IBM pro meu filho... Hoje ele está orgulhoso e satisfeito de ter sido chamado pra estagiar numa das empresas de TI de Campinas que valorizam e cultuam sua cultura “moderna”. Mas não era só uma imagem que eu tinha do CPqD… o CPqD tem no seu DNA o “desejo” de ser moderno e excelente. Meu primeiro chefe, deu pra mim e pra meu colega, enquanto ainda éramos estagiários, a responsabilidade por um dos projetos mais importantes da nossa área: desenvolver o depurador simbólico que quase todos os desenvolvedores do Trópico-RA usariam, e que usam até hoje. Ele nos fez sentir o peso da responsabilidade mas também a satisfação pela confiança recebida. E depois, quando entregamos a primeira versão do manual de usuário do depurador, com quase 100 páginas ele leu, olhou pra gente e disse com profunda e doída sinceridade: “Eu esperava muito mais de vocês. Refaçam e me tragam de novo.” Aprendemos ali que a qualidade é importante. E que temos que melhorar sempre… E aí? Vamos esperar mais de nós mesmos? http://programmers.stackexchange.com/questions/179616/a-good-programmer-can-be-as-10x-times-more-productive-than-a-mediocre-one