Suche senden
Hochladen
Continuous delivery com o build quebrado sem remorso
•
Als PPTX, PDF herunterladen
•
2 gefällt mir
•
386 views
Luiz Ribeiro
Folgen
Melden
Teilen
Melden
Teilen
1 von 82
Jetzt herunterladen
Empfohlen
Continu
Continu
Lucas Medina
SRE for dummies - Sebastian Webber
SRE for dummies - Sebastian Webber
Tchelinux
6tos 2011
6tos 2011
Colegio María Auxiliadora
Case BlackBerry Music
Case BlackBerry Music
Hyves
Presentacion
Presentacion
XxjosemaxX
Agil como Bruce Lee
Agil como Bruce Lee
Luiz Ribeiro
Case simbo
Case simbo
Hyves
Blue talk
Blue talk
ntemiracatu
Empfohlen
Continu
Continu
Lucas Medina
SRE for dummies - Sebastian Webber
SRE for dummies - Sebastian Webber
Tchelinux
6tos 2011
6tos 2011
Colegio María Auxiliadora
Case BlackBerry Music
Case BlackBerry Music
Hyves
Presentacion
Presentacion
XxjosemaxX
Agil como Bruce Lee
Agil como Bruce Lee
Luiz Ribeiro
Case simbo
Case simbo
Hyves
Blue talk
Blue talk
ntemiracatu
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
elliando dias
Times plataforma-tdc2020
Times plataforma-tdc2020
Leonardo Ferreira Leite
TDC 2018
TDC 2018
Leandro Ferreira
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
Globalcode
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
Samanta Cicilia
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
Walmyr Lima e Silva Filho
Java web fj21-- apostila da caelum
Java web fj21-- apostila da caelum
Agenor Neto
Docker - minicurso utfpr 2017
Docker - minicurso utfpr 2017
Fabio Janiszevski
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
Danilo Sato
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
Sandro Andrade
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Vinicius Quaiato
Menos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na prática
Rodrigo Vieira
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
tdc-globalcode
Integração Contínua com Hudson
Integração Contínua com Hudson
Luis Reis
Alm open source
Alm open source
Bruno Souza
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
alexandre freire
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Fabiano Weimar
Revisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia Ágil
Danilo Sato
Equipes de sucesso final
Equipes de sucesso final
Paulo Mattos
Workshop Performance Rails
Workshop Performance Rails
Vitor Pellegrino
Weitere ähnliche Inhalte
Ähnlich wie Continuous delivery com o build quebrado sem remorso
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
elliando dias
Times plataforma-tdc2020
Times plataforma-tdc2020
Leonardo Ferreira Leite
TDC 2018
TDC 2018
Leandro Ferreira
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
Globalcode
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
Samanta Cicilia
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
Walmyr Lima e Silva Filho
Java web fj21-- apostila da caelum
Java web fj21-- apostila da caelum
Agenor Neto
Docker - minicurso utfpr 2017
Docker - minicurso utfpr 2017
Fabio Janiszevski
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
Danilo Sato
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
Sandro Andrade
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Vinicius Quaiato
Menos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na prática
Rodrigo Vieira
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
tdc-globalcode
Integração Contínua com Hudson
Integração Contínua com Hudson
Luis Reis
Alm open source
Alm open source
Bruno Souza
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
alexandre freire
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Fabiano Weimar
Revisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia Ágil
Danilo Sato
Equipes de sucesso final
Equipes de sucesso final
Paulo Mattos
Workshop Performance Rails
Workshop Performance Rails
Vitor Pellegrino
Ähnlich wie Continuous delivery com o build quebrado sem remorso
(20)
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
Times plataforma-tdc2020
Times plataforma-tdc2020
TDC 2018
TDC 2018
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
Java web fj21-- apostila da caelum
Java web fj21-- apostila da caelum
Docker - minicurso utfpr 2017
Docker - minicurso utfpr 2017
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Menos reunião e mais post-it: Kanban na prática
Menos reunião e mais post-it: Kanban na prática
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
Integração Contínua com Hudson
Integração Contínua com Hudson
Alm open source
Alm open source
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Revisitando as Práticas de Engenharia Ágil
Revisitando as Práticas de Engenharia Ágil
Equipes de sucesso final
Equipes de sucesso final
Workshop Performance Rails
Workshop Performance Rails
Continuous delivery com o build quebrado sem remorso
1.
Continuous Delivery com o build
quebrado sem remorso Lucas Medina @medinalucas Luiz Ribeiro @luizfar Jun 2013
2.
2 Nós fazemos uma
média de 5 deploys para produção por dia
3.
3 Às vezes, mesmo
que o build esteja quebrado...
4.
4 Como assim?
5.
5 • > O
Projeto • Os Times • O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
6.
6 O Projeto Painel de
controle para Rackspace Cloud Servers
7.
7 O Projeto 8-10K visitas
únicas diárias
8.
8 O Projeto Thick client
com Google Closure e Knockout.js
9.
9 O Projeto Thin backend
com Django e Twist
10.
10 O Projeto APIs públicas
do Rackspace
11.
11 • O Projeto •
> Os Times • O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
12.
12 Os Times 5 times
distribuídos em 2 localidades
13.
13 Os Backlogs Kanban por
time
14.
14 Os Times Todos os
times trabalham na mesma base de código e em qualquer funcionalidade
15.
15 Os Times Qualquer “trabalho”
entra no backlog
16.
16 Os Times Dev completo
== Produção
17.
17 • O Projeto •
Os Times • > O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
18.
18 O Desenvolvimento
19.
19 O Desenvolvimento
20.
20 O Desenvolvimento
21.
21 O Desenvolvimento
22.
22 O Desenvolvimento
23.
23 O Desenvolvimento
24.
24 O Desenvolvimento
25.
25 • O Projeto •
Os Times • O Desenvolvimento • > A Automação • Os Ambientes • O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
26.
26 A Automação Testes de
aceitação são parte das estórias
27.
27 A Automação 3 Quality Engineers
28.
28 A Automação Backlog exclusivo para
QE
29.
29 A Automação Contém estórias
para: - Melhorar estabilidade - Cobrir “gaps” - Manutenção de suites - Implementação de “sad paths”
30.
30 • O Projeto •
Os Times • O Desenvolvimento • A Automação • > Os Ambientes • O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
31.
31 Os Ambientes
32.
32 Os Ambientes
33.
33 Os Ambientes
34.
34 Os Ambientes
35.
35 • O Projeto •
Os Times • O Desenvolvimento • A Automação • Os Ambientes • > O Pipeline • O Deploy • Os Desafios • Considerações Finais Agenda
36.
36 O Pipeline
37.
37 O Pipeline
38.
38 • O Projeto •
Os Times • O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • > O Deploy • Os Desafios • Considerações Finais Agenda
39.
39 O Deploy
40.
40 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/
41.
41 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes.
42.
42 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good
43.
43 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok.
44.
44 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good
45.
45 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good [13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your changes. [mozair, jnott] already confimed their changes are ok.
46.
46 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good [13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your changes. [mozair, jnott] already confimed their changes are ok. [13:04] <lucasmedina>: !good
47.
47 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good [13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your changes. [mozair, jnott] already confimed their changes are ok. [13:04] <lucasmedina>: !good [13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm deploying revision [82459d1db17e177150d139d063f26c90d4ba3889].
48.
48 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good [13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your changes. [mozair, jnott] already confimed their changes are ok. [13:04] <lucasmedina>: !good [13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm deploying revision [82459d1db17e177150d139d063f26c90d4ba3889]. [13:04] <reach-dn-prod>: jenkins is deploying reach to ord1_prod:ord1 - https://reach- dreadnot.k1k.me/stacks/reach/regions/ord1/deployments/1950
49.
49 O Deploy [13:02] <reach-jenkins>:
Project Reach_Production_Deploy_OK build #843: SUCCESS in 52 sec: https://reach- ci.k1k.me/job/Reach_Production_Deploy_OK/843/ [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair] please check your changes. [13:02] <mozair>: !good [13:02] <bluffynarwhalbot>: Hey [jnott, lucasmedina] please check your changes. [mozair] already confimed their changes are ok. [13:03] <jnott>: !good [13:03] <bluffynarwhalbot>: Hey [lucasmedina] please check your changes. [mozair, jnott] already confimed their changes are ok. [13:04] <lucasmedina>: !good [13:04] <bluffynarwhalbot>: Hey [jnott, lucasmedina, mozair], I'm deploying revision [82459d1db17e177150d139d063f26c90d4ba3889]. [13:04] <reach-dn-prod>: jenkins is deploying reach to ord1_prod:ord1 - https://reach- dreadnot.k1k.me/stacks/reach/regions/ord1/deployments/1950 [13:10] <reach-dn-prod>: deployment #1950 of reach to ord1_prod:ord1 succeeded
50.
50 • O Projeto •
Os Times • O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • O Deploy • > Os Desafios • Considerações Finais Agenda
51.
51 Os Desafios Suites muito
lentas
52.
52 Suites muitos lentas Saucelabs? Infra-estrutura
para testes em paralelo?
53.
53 Falhas por comunicação
com as APIs Baixo custo para replicar ambientes e criar novas contas
54.
54 Os Desafios Testes que
falham aleatoriamente
55.
55 Testes que falham
aleatoriamente Testes que não são confiáveis são piores que testes que sempre falham
56.
56 Testes que falham
aleatoriamente A prioridade é o pipeline
57.
57 Testes que falham
aleatoriamente “Non-blocking tests”
58.
58 Testes que falham
aleatoriamente “Firefighter”
59.
59 Os Desafios Problemas do
papel “Firefighter”
60.
60 Trabalho do “Firefighter”
excedia o seu dia de apagar o incêndio Problemas do papel “Firefighter”
61.
61 Problemas do papel
“Firefighter” Passou a ser o monitorador do pipeline
62.
62 Problemas do papel
“Firefighter” Despedimos o “Firefighter”
63.
63 Problemas do papel
“Firefighter” Pipeline é responsabilidade de quem fez merge
64.
64 Problemas do papel
“Firefighter” Criação de estórias para corrigir testes instáveis
65.
65 Os Desafios Testes falham
por problemas na comunicação com a API
66.
66 Falhas por comunicação
com as APIs “Mock all the things!”
67.
67 Falhas por comunicação
com as APIs Alto custo para programar mocks
68.
68 Falhas por comunicação
com as APIs “Full stack” é desejável
69.
69 Falhas por comunicação
com as APIs + contas + tentativas
70.
70 Os Desafios Quebrar funcionalidade em produção
71.
71 Quebrar funcionalidade em
produção Pequenos múltiplos deploys facilitam identificação dos problemas
72.
72 Erros sérios são
detectados por testes Quebrar funcionalidade em produção
73.
73 Re-deploy Quebrar funcionalidade em
produção
74.
74 Deixamos até outro
deploy se problema for pequeno Quebrar funcionalidade em produção
75.
75 “Root Cause Analysis” Quebrar
funcionalidade em produção
76.
76 • O Projeto •
Os Times • O Desenvolvimento • A Automação • Os Ambientes • O Pipeline • O Deploy • Os Desafios • > Considerações Finais Agenda
77.
77 Considerações Finais Design, testes
manuais e validação são atividades externas
78.
78 Considerações Finais Story Branches + Feature
Flags
79.
79 Considerações Finais Foco no
testes Sem tratá-los religiosamente
80.
80 Considerações Finais DevOps!!!
81.
81 Q&A 81
82.
82 Muito Obrigado! 82 Lucas Medina @medinalucas Luiz
Fernando Ribeiro @luizfar
Jetzt herunterladen