O slideshow foi denunciado.
A 
prá&ca 
de 
entrega 
de 
so0ware 
com 
rapidez 
e 
qualidade
Rodrigo 
Russo 
@zrusso 
Walmart.com 
iG 
Itautec 
Cetelem 
… 
Coordenador 
de 
Con&nuous 
Delivery
#1 
Walmart 
pela 
Fortune 
• Ranking 
Fortune 
Global 
500 
elegeu 
as 
maiores 
companhias 
em 
lucro 
e 
faturamento 
1...
O 
Departamento 
hUp://api.ning.com/files/z5LYHFwf1ruO8aADGGgDAMNhFm-­‐ydcKSXdej8Szjfwq3fV51MdSpvemYDlo8gWpCwKhkCnMJhBjNOk...
Plataforma 
de 
fornecedor 
hUp://judlaw.files.wordpress.com/2013/12/mesa-­‐ect-­‐368.jpg
hUp://cdn.acidcow.com/pics/20120311/old_west_01.jpg
Testes 
hUp://www.touristmaker.com/images/western-­‐sahara/western-­‐sahara-­‐desert-­‐and-­‐ocean.jpg
Herói
Build 
Master 
hUp://dreamchimney.com/o0heday/otd_images/20110527044721_auto.jpg
… 
Fornecedor 
A 
Fornecedor 
B 
TFS 
2 
Devs 
Code 
review 
Manutenção 
Pequenas 
melhorias 
Máquina 
do 
build 
Master 
...
hUp://images.huffingtonpost.com/2014-­‐06-­‐23-­‐gunfight.jpeg
E 
mesmo 
assim… 
Venda… 
Venda… 
Venda… 
hUp://www.insidemysteryshopping.com/assets/happy%20shopper%202.jpg
hUp://upload.wikimedia.org/wikipedia/commons/8/8e/Marco_zero_de_S%C3%A3o_Paulo_2.JPG
A 
Startup 
hUp://cdni.wired.co.uk/1240x826/a_c/A_startup.jpg
Novas 
dire&vas 
• Data 
center 
próprio 
• Equipe 
de 
infraestrutura 
(~4) 
• Equipe 
de 
System 
Engineers 
(1) 
• Equi...
Nova 
equipe 
• Foco 
na 
entrega 
• Equipe 
enxuta 
• Autonomia 
• Automação 
• Inovação 
• Novas 
tecnologias
Automação 
e 
novas 
tecnologias 
Push 
Pull 
… 
Package 
Repository 
apt-­‐get 
yum
Novo 
sistema 
no 
ar 
em 
poucas 
semanas 
• +90% 
de 
cobertura 
de 
testes 
unitários 
• Testes 
funcionais 
automa&zad...
2012 
hUp://dailypicksandflicks.com/wp-­‐content/uploads/2014/07/Sabella-­‐almost-­‐falling-­‐vs-­‐Beligum.jpg
A 
Empresa
Nova 
plataforma
• A 
equipe 
define 
a 
melhor 
tecnologia 
para 
o 
problema 
– Jenkins 
– Build 
– Deploy 
– Testes 
– …. 
• Não 
abra 
...
Era 
assim 
hUp://ecx.images-­‐amazon.com/images/I/A1Kc-­‐7nR8EL._SL1500_.jpg
Não 
foram 
só 
pessoas 
que 
aumentaram
Vários 
jenkins 
espalhados 
Vários 
padrões 
Perda 
de 
foco 
em 
novas 
features 
hUp://2.bp.blogspot.com/-­‐cN416AOoo_E...
Agile 
InfoSec 
Devs 
Ops 
hUp://www.museumsyndicate.com/images/6/56154.jpg
“Devops 
é 
uma 
cultura” 
hUp://xdesktopwallpapers.com/wp-­‐content/uploads/2012/04/Morning%20Scene%20In%20Green%20Fields...
hUp://www.defense.gov/DODCMSShare/NewsStoryPhoto/2009-­‐11/hrs_DF-­‐ST-­‐91-­‐01423.jpg
Desenvolver 
ferramentas 
para 
facilitar 
a 
prá*ca 
de 
Con*nuous 
Delivery 
e 
promover 
as 
prá&cas 
de 
engenharia 
d...
Mapa 
das 
equipes 
x 
Prá&cas 
de 
engenharia
Build 
automa&zado 
Testes 
unitários 
automa&zado 
Testes 
de 
desempenho 
20 
equipes 
Script 
de 
build 
Servidor 
de 
...
Estratégia
Cultura 
Engenharia 
de 
Releases 
Ferramentas 
hUp://lendio.com/cms/wp-­‐content/uploads/2011/08/ThreePillars.png
“Culture 
is 
the 
way 
you 
think, 
act, 
and 
interact.” 
• Pair 
programming 
• Testes, 
testes, 
testes 
e 
mais 
test...
Works 
on 
my 
machine
Coaching
Con&nuous 
Integra&on 
“Con&nuous 
Integra&on 
(CI) 
is 
the 
prac&ce, 
in 
so0ware 
engineering, 
of 
merging 
all 
devel...
Branching 
Strategy 
• Centralized 
workflow 
• Forking 
workflow 
• Feature 
branch 
workflow 
hUp://th09.deviantart.net/...
Deployment 
pipeline
Testes 
Automa&zados 
• Testes 
Automa&zados 
• Execução 
dos 
testes 
automa&zados 
no 
jenkins 
• O 
resultado 
dos 
tes...
Feedback 
• E-­‐mail 
• Build 
Monitor 
plugin 
• Slack 
no&fica&on 
• … 
hUp://bamboo-­‐river.com/wp-­‐content/uploads/20...
“The 
whole 
point 
of 
con&nuous 
delivery 
is 
that 
every 
check-­‐in 
creates 
a 
poten&al 
release 
candidate. 
“ 
Ki...
StepUp 
Marcelo 
Manzan 
StepUp 
is 
an 
u&lity 
that 
helps 
other 
projects 
to 
manage 
your 
versioning 
increase. 
• ...
> 
git 
commit 
–m 
“xyz” 
> 
git 
commit 
–m 
“abc” 
> 
git 
commit 
–m 
“e” 
> 
stepup 
notes 
add 
-­‐-­‐sec&on 
bugfi...
> 
git 
commit 
–m 
“xyz” 
> 
git 
commit 
–m 
“abc” 
> 
git 
commit 
–m 
“e” 
> 
stepup 
notes 
add 
-­‐-­‐sec&on 
bugfi...
> 
git 
commit 
–m 
“xyz” 
> 
git 
commit 
–m 
“abc” 
> 
git 
commit 
–m 
“e” 
> 
stepup 
notes 
add 
-­‐-­‐sec&on 
bugfi...
> 
git 
commit 
–m 
“xyz” 
> 
git 
commit 
–m 
“abc” 
> 
git 
commit 
–m 
“e” 
> 
stepup 
notes 
add 
-­‐-­‐sec&on 
bugfi...
Outras 
mudanças 
culturais 
• Feature 
toggle 
• Branch 
by 
abstrac&on 
• Teste 
é 
da 
equipe, 
não 
do 
QA 
• Deploy 
...
PL/SQL Oracle Forms
BACON 
Build 
Applica&on 
CON&nuously 
• Plataforma 
para 
agilizar 
a 
entrega 
de 
so0ware 
• Independente 
de 
linguage...
Build 
Sta&c 
Analysis 
Security 
Sta&c 
Analysis 
Tagging 
Package 
Promote 
/ 
Deploy 
Smoke 
Tests 
Func&onal 
Tests 
S...
Ecossistema 
Logging 
& 
Metrics 
Test 
Environment 
Orchestra&on 
Build 
Data 
Repo 
SCM 
Ar&fact 
Repo 
Build 
Provision...
Organização 
das 
equipes 
de 
devtools, 
qa, 
syseng, 
infosec,… 
ITGov 
System 
Engineers/ 
System 
Administrators 
DevT...
Deploy 
+ 
+ 
• Entender 
o 
fluxo 
• Criamos 
uma 
ferramenta 
interna 
para 
fazer 
a 
“cola” 
entre 
jenkins 
e 
chef 
...
Deploy 
+ 
+ 
• Blue-­‐green 
• CanaryRelease
Garan&a 
da 
qualidade 
• Automação 
• Autonomia 
• BDD 
• Testes 
automa&zados 
• Testes 
exploratórios 
• Comunicação 
•...
“You 
write 
you 
own” 
Neil 
Ashe, 
President 
and 
CEO 
at 
Walmart 
Global 
eCommerce
2013
DevTools 
acelera 
o 
amadurecimento 
da 
equipe
Setembro/2014 
• +250 
TI 
• +40 
produtos 
• +24 
equipes 
internas 
+ 
10 
externas 
• + 
1400 
jobs 
• Setembro: 
– 200...
Métricas 
• Sonar 
• Projeto 
interno 
para 
visualizar 
métricas 
por 
projeto 
de 
so0ware 
• Score 
por 
projeto 
de 
s...
Pontos 
importantes 
• Métricas 
são 
fundamentais 
• Padrões 
são 
necessários 
para 
automação 
• Mudança 
cultural 
org...
Obrigado 
!!! 
Rodrigo.russo@walmart.com
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Case Walmart.com: a prática da entrega de software com rapidez e qualidade
Próximos SlideShares
Carregando em…5
×

Case Walmart.com: a prática da entrega de software com rapidez e qualidade

1.030 visualizações

Publicada em

Case Walmart.com: a prática da entrega de software com rapidez e qualidade

Publicada em: Internet

Case Walmart.com: a prática da entrega de software com rapidez e qualidade

  1. 1. A prá&ca de entrega de so0ware com rapidez e qualidade
  2. 2. Rodrigo Russo @zrusso Walmart.com iG Itautec Cetelem … Coordenador de Con&nuous Delivery
  3. 3. #1 Walmart pela Fortune • Ranking Fortune Global 500 elegeu as maiores companhias em lucro e faturamento 1. Walmart 2. Royal Dutch Shell 3. Sinopec Group 4. China Na&onal Petroleum 5. Exxon Mobil hUp://exame.abril.com.br/negocios/no&cias/revista-­‐fortune-­‐aponta-­‐wal-­‐mart-­‐como-­‐maior-­‐empresa-­‐do-­‐mundo
  4. 4. O Departamento hUp://api.ning.com/files/z5LYHFwf1ruO8aADGGgDAMNhFm-­‐ydcKSXdej8Szjfwq3fV51MdSpvemYDlo8gWpCwKhkCnMJhBjNOkf3LcLHypsijLGuXtjf/OldWest18501865.jpg
  5. 5. Plataforma de fornecedor hUp://judlaw.files.wordpress.com/2013/12/mesa-­‐ect-­‐368.jpg
  6. 6. hUp://cdn.acidcow.com/pics/20120311/old_west_01.jpg
  7. 7. Testes hUp://www.touristmaker.com/images/western-­‐sahara/western-­‐sahara-­‐desert-­‐and-­‐ocean.jpg
  8. 8. Herói
  9. 9. Build Master hUp://dreamchimney.com/o0heday/otd_images/20110527044721_auto.jpg
  10. 10. … Fornecedor A Fornecedor B TFS 2 Devs Code review Manutenção Pequenas melhorias Máquina do build Master • Merge do código • Versionamento • Empacotamento
  11. 11. hUp://images.huffingtonpost.com/2014-­‐06-­‐23-­‐gunfight.jpeg
  12. 12. E mesmo assim… Venda… Venda… Venda… hUp://www.insidemysteryshopping.com/assets/happy%20shopper%202.jpg
  13. 13. hUp://upload.wikimedia.org/wikipedia/commons/8/8e/Marco_zero_de_S%C3%A3o_Paulo_2.JPG
  14. 14. A Startup hUp://cdni.wired.co.uk/1240x826/a_c/A_startup.jpg
  15. 15. Novas dire&vas • Data center próprio • Equipe de infraestrutura (~4) • Equipe de System Engineers (1) • Equipe de InfoSec (1) • Equipe de desenvolvimento (~10) • Agilista (1)
  16. 16. Nova equipe • Foco na entrega • Equipe enxuta • Autonomia • Automação • Inovação • Novas tecnologias
  17. 17. Automação e novas tecnologias Push Pull … Package Repository apt-­‐get yum
  18. 18. Novo sistema no ar em poucas semanas • +90% de cobertura de testes unitários • Testes funcionais automa&zados • TDD • Pair programming • Infraestrutura como código • Build automa&zado • Down&me zero durante deploy • Possibilidade de realizar N deploys a qualquer momento • Agile • Dev + Ops
  19. 19. 2012 hUp://dailypicksandflicks.com/wp-­‐content/uploads/2014/07/Sabella-­‐almost-­‐falling-­‐vs-­‐Beligum.jpg
  20. 20. A Empresa
  21. 21. Nova plataforma
  22. 22. • A equipe define a melhor tecnologia para o problema – Jenkins – Build – Deploy – Testes – …. • Não abra mão da qualidade
  23. 23. Era assim hUp://ecx.images-­‐amazon.com/images/I/A1Kc-­‐7nR8EL._SL1500_.jpg
  24. 24. Não foram só pessoas que aumentaram
  25. 25. Vários jenkins espalhados Vários padrões Perda de foco em novas features hUp://2.bp.blogspot.com/-­‐cN416AOoo_E/Tu3t5a97IEI/AAAAAAAAAr4/qXo3ez1WytY/s1600/child%2527s+progress.jpg Apenas Sys. Engs &nham acesso a receita do chef Devs não sen&am que a código de infra é parte do fluxo Deploy após vários sprints Grandes entregas com potenciais de rollback “Pacote está pronto, só falta instalar” Entregas demoradas
  26. 26. Agile InfoSec Devs Ops hUp://www.museumsyndicate.com/images/6/56154.jpg
  27. 27. “Devops é uma cultura” hUp://xdesktopwallpapers.com/wp-­‐content/uploads/2012/04/Morning%20Scene%20In%20Green%20Fields.jpg
  28. 28. hUp://www.defense.gov/DODCMSShare/NewsStoryPhoto/2009-­‐11/hrs_DF-­‐ST-­‐91-­‐01423.jpg
  29. 29. Desenvolver ferramentas para facilitar a prá*ca de Con*nuous Delivery e promover as prá&cas de engenharia de so9ware ágil para reduzir o lead &me, reduzir o risco e aumentar a qualidade dos so0wares desenvolvidos.
  30. 30. Mapa das equipes x Prá&cas de engenharia
  31. 31. Build automa&zado Testes unitários automa&zado Testes de desempenho 20 equipes Script de build Servidor de CI Build quebrando em função de testes que falham Deploy automa&zado Teste funcional automa&zado Ambientes Mapa das equipes x Prá&cas de engenharia
  32. 32. Estratégia
  33. 33. Cultura Engenharia de Releases Ferramentas hUp://lendio.com/cms/wp-­‐content/uploads/2011/08/ThreePillars.png
  34. 34. “Culture is the way you think, act, and interact.” • Pair programming • Testes, testes, testes e mais testes • TDD • Con&nuous Integra&on (CI) • “Every build is a poten&al version” (kill snapshot) • Dev + Ops donos do código de infraestrutura
  35. 35. Works on my machine
  36. 36. Coaching
  37. 37. Con&nuous Integra&on “Con&nuous Integra&on (CI) is the prac&ce, in so0ware engineering, of merging all developer working copies with a shared mainline several &mes a day.”
  38. 38. Branching Strategy • Centralized workflow • Forking workflow • Feature branch workflow hUp://th09.deviantart.net/fs70/PRE/i/2009/352/8/d/snibston_train_line___by_Ph0t0_girl.jpg
  39. 39. Deployment pipeline
  40. 40. Testes Automa&zados • Testes Automa&zados • Execução dos testes automa&zados no jenkins • O resultado dos testes são decisivos • O resultado dos testes devem ser visíveis a todos
  41. 41. Feedback • E-­‐mail • Build Monitor plugin • Slack no&fica&on • … hUp://bamboo-­‐river.com/wp-­‐content/uploads/2011/02/feedback1.jpg
  42. 42. “The whole point of con&nuous delivery is that every check-­‐in creates a poten&al release candidate. “ Kill Snapshot Jez Humble • Testes realizados com pacote “-­‐snapshot” não eram os mesmos que eram promovidos para produção. • Testes realizados 2x. Pacote “-­‐snapshot” e pacote released • Ausência de tag no git com a versão do pacote fechada • Falta de rastreabilidade no código
  43. 43. StepUp Marcelo Manzan StepUp is an u&lity that helps other projects to manage your versioning increase. • Bene|cios hUps://github.com/kawamanza/step-­‐up – Seman&c Versioning (hUp://semver.org/) – Changelog! e versionado – Não é necessário lembrar o que foi feito para definir um número de versão – Menos preocupação para o desenvolvedor “Um grupo de commits é uma potencial versão para produção”
  44. 44. > git commit –m “xyz” > git commit –m “abc” > git commit –m “e” > stepup notes add -­‐-­‐sec&on bugfixes -­‐m "support for old installa&ons” > git push 1.0.0 Bugfixes: -­‐ support for old installa&ons
  45. 45. > git commit –m “xyz” > git commit –m “abc” > git commit –m “e” > stepup notes add -­‐-­‐sec&on bugfixes -­‐m "support for old installa&ons” > git push Pull > stepup version create QA Package Repository App App App App App 1.0.0 1.0.1 Bugfixes: -­‐ support for old installa&ons
  46. 46. > git commit –m “xyz” > git commit –m “abc” > git commit –m “e” > stepup notes add -­‐-­‐sec&on bugfixes -­‐m "support for old installa&ons” > git push Pull > stepup version create QA Package Repository App App App App App STG Package Repository App App App App App Promote 1.0.0 1.0.1 Bugfixes: -­‐ support for old installa&ons
  47. 47. > git commit –m “xyz” > git commit –m “abc” > git commit –m “e” > stepup notes add -­‐-­‐sec&on bugfixes -­‐m "support for old installa&ons” > git push Pull > stepup version create QA Package Repository App App App App App STG Package Repository App App App App App PROD Package Repository App App App App App Promote Promote 1.0.0 1.0.1 Bugfixes: -­‐ support for old installa&ons
  48. 48. Outras mudanças culturais • Feature toggle • Branch by abstrac&on • Teste é da equipe, não do QA • Deploy frequentes • Pacotes menores • Deploy não deve ser uma cerimônia • Rollback não é a morte! • "A vida é muito curta para fazer deploy de madrugada"
  49. 49. PL/SQL Oracle Forms
  50. 50. BACON Build Applica&on CON&nuously • Plataforma para agilizar a entrega de so0ware • Independente de linguagem e tecnologia • Suporte a novas tecnologias rapidamente • Serviço core para equipes (monitoração, backup, 24hx7, …) • Suporte a u&lização
  51. 51. Build Sta&c Analysis Security Sta&c Analysis Tagging Package Promote / Deploy Smoke Tests Func&onal Tests Security dynamic Analysis Performance testes Geminabox
  52. 52. Ecossistema Logging & Metrics Test Environment Orchestra&on Build Data Repo SCM Ar&fact Repo Build Provision Deploy Test Release
  53. 53. Organização das equipes de devtools, qa, syseng, infosec,… ITGov System Engineers/ System Administrators DevTools Equipes de desenvolvimento Quality Assurance Agile Process InfoSec
  54. 54. Deploy + + • Entender o fluxo • Criamos uma ferramenta interna para fazer a “cola” entre jenkins e chef • Primeiro este passo, para então u&lizar as ferramentas corretas
  55. 55. Deploy + + • Blue-­‐green • CanaryRelease
  56. 56. Garan&a da qualidade • Automação • Autonomia • BDD • Testes automa&zados • Testes exploratórios • Comunicação • Critérios de aceite
  57. 57. “You write you own” Neil Ashe, President and CEO at Walmart Global eCommerce
  58. 58. 2013
  59. 59. DevTools acelera o amadurecimento da equipe
  60. 60. Setembro/2014 • +250 TI • +40 produtos • +24 equipes internas + 10 externas • + 1400 jobs • Setembro: – 200 deploys
  61. 61. Métricas • Sonar • Projeto interno para visualizar métricas por projeto de so0ware • Score por projeto de so0ware • Score é decisório para “Mudança ágil”
  62. 62. Pontos importantes • Métricas são fundamentais • Padrões são necessários para automação • Mudança cultural organizacional é imprescíndivel • Plan Do Check Act • Cada equipe tem o seu tempo para amadurecer • Cada equipe é única, e cada so0ware também • Não desista! Vale a pena
  63. 63. Obrigado !!! Rodrigo.russo@walmart.com

×