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

948 visualizações

Publicada em

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

Publicada em: Internet
4 comentários
8 gostaram
Estatísticas
Notas
  • Olá Israel,

    Essa 'plataforma' é integração de várias ferramentas open-source. Não é algo que você instala como pacote, é a composição de diversas ferramentas de build, testes, analisadores de segurança, ...., em que hoje são necessárias para nosso dia-a-dia.

    Se você pensa em implementar algo em sua empresa, o ideal é tirar uma foto do panorama atual do seu ambiente de desenvolvimento, olhando as ferramentas necessárias, e tentar criar uma visão de onde vocês querem chegar, e adicionar o mínimo necessário de ferramentas para automação do build até o deploy em produção. Desta forma, com o tempo vocês vão criando o seu próprio 'BACON'

    Qualquer coisa me mande um DM no twitter @zrusso e conversamos melhor.

    Abs,
    Rodrigo
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Oi Rodrigo, a plataforma BACON é open source ? Mais uma vez, parabéns por disponibilizar esta apresentação ! abs
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Olá Israel,
    Foi gravada sim, assim que estiver disponível compartilho o link aqui.
    BACON é uma plataforma para falicitar a entrega de software. Ela é composta pelas diversas tecnologias e linguagens que aparecem no slide 64
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Ola Rodrigo, parabéns pela apresentação ! a mesma foi gravada ? O que realmente é o 'BACON' ? é um produto interno de vocês ?
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
Sem downloads
Visualizações
Visualizações totais
948
No SlideShare
0
A partir de incorporações
0
Número de incorporações
18
Ações
Compartilhamentos
0
Downloads
0
Comentários
4
Gostaram
8
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×