As empresas estão sempre mudando, e os programas feitos nos anos 90 precisam melhorar para agradar os clientes exigentes de hoje.
Mesmo assim, nossos sistemas antigos ficaram duros e difíceis de mudar. Eles ainda usam tecnologia de 20 anos atrás.
Antes de começar a mudar, veja estes artigos sobre Por que migrar uma aplicação? e Quando migrar o legado?.
Se decidiu seguir adiante, aqui está um guia de como migrar.
Entendendo a mudança
Modernizar sistemas envolve manutenção, modernização e substituição.
- Manutenção: Corrige erros e adiciona coisas novas. Precisamos ter paciência.
- Modernização: Muda boa parte do sistema, como uma reforma.
- Substituição: Refaz tudo do zero. Isso pode ser arriscado.
As empresas gostam mais de modernização e manutenção do que substituição.
Estratégias para modernizar
Para modernizar, precisamos de boa infraestrutura, nuvens, microsserviços, APIs e DevOps.
Planeje bem as mudanças e veja se a empresa está preparada para novas soluções. As novas implementações precisam caber no orçamento.
Por exemplo, reduzir custos pode levar a mover para a nuvem (Re-hosting), mas tenha cuidado com a segurança, que pode complicar o Re-architecting.
Pense bem nas suas escolhas e veja se são boas. Pergunte-se:
- Posso trocar por um produto comercial?
- O que meu app atual já faz?
- Como acesso e uso os dados?
- Quantas integrações têm e serão afetadas?
- Preciso substituir produtos/componentes externos?
- Quero mudar tudo para microsserviços?
- Já conferi o impacto no orçamento?
Considere usar tecnologias open source e explorar a nuvem, containers, OpenAPI e serviços de mensagens. Decida se vai usar banco de dados relacional ou NoSQL em alguma parte do sistema.
6 R's da Modernização
Os 6 R's ajudam a cuidar do legado:
Retain
Espere para modernizar até ser necessário.
Retire
Desligue sistemas velhos para economizar recursos, mas com cuidado.
Rehost
Troque de infraestrutura, por exemplo, para nuvens, usando a técnica "lift-and-shift".
Replataform
Atualize a plataforma, como mudar Web Forms para PWAs, usando a nuvem.
Refactor / Rearchitecture
Reconstrua e modernize, mas mantenha as regras de negócio. Use containers, APIs e microsserviços.
Replace / Repurchasing
Adote soluções novas por completo. Isso pode ser caro e arriscado, mas às vezes é necessário.
Os 6 R's são uma boa ajuda para modernizar.
Conclusão
Pense bem antes de decidir modernizar. Veja se as mudanças combinam com os objetivos da empresa e o que os clientes querem. As decisões que você tomar podem definir o sucesso ou fracasso do seu sistema antigo.
Referências
- Anna Malinova - Técnicas e abordagens para modernização de software antigo
- 6 estratégias de migração de aplicações para a nuvem