Deploy Contínuo de Software Legado: Loucura ou Genialidade?

886 visualizações

Publicada em

Imagine a seguinte situação: você acaba de começar a ajudar uma equipe que tem a tarefa de substituir um sistema legado com mais de uma década em produção – que cuida de um produto chave da empresa e que traz muita receita todo dia. Além de você precisar reescrever o sistema em uma nova linguagem, vai ter de mudar o banco de dados e os protocolos de comunicação com outros sistemas.

Como fazer isso? Anos de trabalho e uma entrega Big Bang? Vai dar certo? E se você soubesse que este é o sistema que cuida de dados vindos de países de toda a América Latina, a reposta muda?

Pode parecer loucura, mas a estratégia que escolhemos foi fazer deploy contínuo! Entregamos algo no primeiro dia do projeto, no segundo e assim sucessivamente – fazendo entre um e dez deploys diários para produção.

Compartilhei essa história louca (ou genial?) na #QConRio, e juntos entendemos mais sobre deploy contínuo e porque essa prática pode ajudar-nos a encarar nossos desafios mais cabeludos.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
886
No SlideShare
0
A partir de incorporações
0
Número de incorporações
53
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Deploy Contínuo de Software Legado: Loucura ou Genialidade?

  1. 1. Copyright 2015,Alexandre Freire Kawakami and Industrial Logic, Inc. All Rights Reserved. Deploy Contínuo de Software Legado: Loucura ou Genialidade?
  2. 2. #1e5d91 alex@industriallogic.com @freire_da_silva • Diretor de Produtos @IndustrialLogic • Ágil desde 2001 • Founder AgilCoop e AgilBits • Tese de Mestrado:“Reflexões sobre o Ensino de Metodologias Ágeis na Academia, Indústria e Governo” • Décadas de experiência e sucesso com empresas renomadas mundialmente, praticando deploy contínuo à 14 anos! • Gosto de construir casas e surfar.
  3. 3. Software Legado?
  4. 4. #1e5d91 A Estrada para o Deploy Contínuo
  5. 5. #1e5d91 A Estrada para o Deploy Contínuo Cultura DevOps
  6. 6. #1e5d91 Testes Automatizados A Estrada para o Deploy Contínuo Cultura DevOps
  7. 7. #1e5d91 Integração Contínua (CI) Testes Automatizados A Estrada para o Deploy Contínuo Cultura DevOps
  8. 8. #1e5d91 Entrega Contínua (CD) Integração Contínua (CI) Testes Automatizados A Estrada para o Deploy Contínuo Cultura DevOps
  9. 9. #1e5d91 Deploy Contínuo (CD) Entrega Contínua (CD) Integração Contínua (CI) Testes Automatizados A Estrada para o Deploy Contínuo Cultura DevOps
  10. 10. #1e5d91 Cultura DevOps
  11. 11. #1e5d91 Cultura DevOps DEV
  12. 12. #1e5d91 Cultura DevOps DEV OPS
  13. 13. #1e5d91 Cultura DevOps DEV QA OPS
  14. 14. #1e5d91 Cultura DevOps DEV QA OPS 💰
  15. 15. #1e5d91 Testes Automatizados
  16. 16. Integrate and build the system many times a day, every time a task is completed. — Kent Beck, Extreme Programming Explained Integração Contínua (CI)
  17. 17. #1e5d91 É no Master!
  18. 18. #1e5d91 Entrega Contínua (Continuous Delivery)
  19. 19. #1e5d91 Entrega Contínua (Continuous Delivery)
  20. 20. #1e5d91 Entrega Contínua (Continuous Delivery)
  21. 21. #1e5d91 Entrega Contínua (Continuous Delivery)
  22. 22. #1e5d91 Deploy Contínuo (Continuous Deployment)
  23. 23. #1e5d91 Qual é a Diferença?
  24. 24. #1e5d91 Qual é a Diferença?
  25. 25. #1e5d91 Deploy Contínuo (Continuous Deployment)
  26. 26. #1e5d91 Deploy Contínuo (Continuous Deployment)
  27. 27. #1e5d91 Deploy Contínuo (Continuous Deployment)
  28. 28. #1e5d91 Deploy Contínuo (Continuous Deployment)
  29. 29. #1e5d91 Deploy Contínuo (Continuous Deployment)
  30. 30. #1e5d91 #FAIL
  31. 31. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa.
  32. 32. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa. Deploy
  33. 33. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa.
  34. 34. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa. Switch
  35. 35. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa.
  36. 36. Só um desses pré- requisitos é necessário!
  37. 37. #1e5d91 ZERO Downtime Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do deploy no Green, e vice-versa.
  38. 38. Registro de Domínios na Locaweb
  39. 39. Registro de Domínios na Locaweb LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc
  40. 40. MS IIS Registro de Domínios na Locaweb LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc
  41. 41. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc
  42. 42. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP>
  43. 43. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br
  44. 44. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br .org <http> eNon
  45. 45. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br .org <http> eNon
  46. 46. MS IIS Registro de Domínios na Locaweb DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br .org <http> eNon
  47. 47. #1e5d91 Precisamos Re-escrever!
  48. 48. #1e5d91 Precisamos Re-escrever! • mas em Ruby
  49. 49. #1e5d91 Precisamos Re-escrever! • mas em Ruby • usando Ruby on Rails
  50. 50. #1e5d91 Precisamos Re-escrever! • mas em Ruby • usando Ruby on Rails • com PostgreSQL
  51. 51. #1e5d91 Precisamos Re-escrever! • mas em Ruby • usando Ruby on Rails • com PostgreSQL • e aVerisign nos avisou que está aposentando o sistema SOAP, e em 6 meses só a nova API REST vai funcionar!
  52. 52. Como Sair do Legado?
  53. 53. Como Sair do Legado?
  54. 54. #1e5d91
  55. 55. #1e5d91 🚫
  56. 56. #1e5d91
  57. 57. #1e5d91 Qual a primeira mudança?
  58. 58. #1e5d91
  59. 59. #1e5d91 🚫
  60. 60. #1e5d91 O que esse sistema faz?
  61. 61. #1e5d91 O que esse sistema faz? • Reserva • Registra • Renova • Transfere • Remove • Vezes 3, para cada Registar externo • mantem uma interface interna comum
  62. 62. #1e5d91
  63. 63. MS IIS DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br .org <http> eNon
  64. 64. MS IIS DB MS Access LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Verising .com <SOAP> .br <.exe> registro.br .org <http> eNon
  65. 65. #1e5d91 Camada Anti-Corrupção
  66. 66. #1e5d91 MS IIS LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc Camada Anti-Corrupção DB MS Access
  67. 67. #1e5d91 MS IIS LibFichao_2.asp ________ ________ ________ ________ ________ ________ ________ ~6K loc registro.asp ________________ Camada Anti-Corrupção DB MS Access
  68. 68. #1e5d91 Proxy registro.asp ________________
  69. 69. #1e5d91 Proxy registro.asp ________________ if(Application(“verisign.delete.migrated”)
  70. 70. #1e5d91 Proxy registro.asp ________________ if(Application(“verisign.delete.migrated”) REST Ruby on Rails
  71. 71. #1e5d91 Proxy registro.asp ________________ if(Application(“verisign.delete.migrated”) REST Ruby on Rails DB PostgreSQL
  72. 72. #1e5d91 Proxy registro.asp ________________ if(Application(“verisign.delete.migrated”) REST Ruby on Rails Verising REST DB PostgreSQL
  73. 73. Loucura ou Genialidade?
  74. 74. #1e5d91 ITIL®
  75. 75. Consegui mudar a Cultura?
  76. 76. Consegui mudar a Cultura? X9
  77. 77. #1e5d91 Nem loucura nem genialidade: Deploy Contínuo é Mais Simples do que você imagina. E você pode fazê-lo sem ser perfeito.

×