Imagine que sua equipe vai substituir um sistema legado com mais de década em produção, um produto chave da empresa, responsável por grande parte da receita. Não só vocês vão rescrever numa nova linguagem, precisam mudar o banco de dados e protocolo de comunicação com vários outros sistemas... Parece um desafio? Pode parecer loucura, ma pra lidar com o risco escolheamos uma estratégia baseada em um dos avanços da agilidade técnica: Deploy Contínuo! Guiados por esta história, entenda tudo que você precisa pra poder fazer Deploy Contínuo, da automação de testes, passando por uma cultura DevOps, até infraestrutura como código. Você vai sair pronto pra avaliar se Deploy Contínuo pode ajudá-lo.
AE02 - TEORIAS DA ADMINISTRACAO UNICESUMAR 51/2024
Continuous deployment de Software Legado: Crazy or Genius? TDC POA 2018
1. Copyright 2018,Alexandre Freire Kawakami, Industrial Logic, Inc. e Nubank
All Rights Reserved.
Deploy Contínuo de
Software Legado:
Loucura ou
Genialidade?
Uma história de Programação eXtrema
2. #1e5d91
alex@nu.bank
@freire_da_silva
• Diretor de Engenharia @Nubank
• Na onda Ágil desde 2001, últimos 7
anos trabalhando @IndustrialLogic na
Califórnia
• Mestrado: “Reflexões sobre o Ensino
de Metodologias Ágeis na Academia,
Indústria e Governo”
• Décadas de experiência e sucessos com
empresas renomadas pelo mundo!!
• Gosto de surfar e construir casas
10. Pesquisa: o que está doendo?
~200 engenheirxs respondem
Productivity Issues Survey #1
alex@nu.bank
@freire_da_silva
11. Cycle Time Optimization
Cycle Time: The amount of time a commit takes
since it is merged to master until it reaches staging
alex@nu.bank
@freire_da_silva
14. Integrar e fazer o build do sistema muitas vezes por dia,
toda vez que uma tarefa for completada.
— Kent Beck, Extreme Programming Explained
Integração Contínua (CI)
21. #1e5d91
ZERO Downtime
Para ter Zero Downtime use um
Proxy Reverso, trocando o ambiente ativo
do Green pro Blue depois de um deploy
no Green, e vice-versa.
Deploy Troca
alex@nu.bank
@freire_da_silva
24. #1e5d91
ZERO Downtime
Se você conseguir fazer deploy com
Zero Downtime você pode avançar
com confiança, mesmo sem uma Cultura
DevOps, Testes Automatizados, CI ou um
pipeline de deploy automático.
Deploy Switch
27. MS IIS
Registro de Domínios
@Locaweb
DB MS Access
LibFichao_2.asp
________
________
________
________
________
________
________
~6K loc
Verisign
.com <SOAP>
.br <.exe>
registro.br
.org <http>
eNon
registro_tools
________
________
28. #1e5d91
Precisamos Re-escrever!
• Mas em Ruby
• Usando Ruby on Rails
• Com DB PostgreSQL
• E aVerisign acabou de nos avisar que está
matando a API SOAP, daqui a 6 meses
somente a nova API REST vai funcionar!
alex@nu.bank
@freire_da_silva
29. Como você sai do legado?
alex@nu.bank
@freire_da_silva
34. #1e5d91
Oque esse sistema faz?
• Reserva domínios
• Registra domínios
• Renova registros de domínios
• Transfere registros
• Deleta registros
• 3 vezes, um pra cada Registar externo
• Mantém uma interface comun interna