DEV Community

Cristiano Rodrigues for Unhacked

Posted on

Roteando o Futuro: Como o Strangler Pattern Facilita a Evolução de Sistemas Legados

Quando um sistema de software se torna obsoleto ou precisa ser atualizado, é comum que as empresas considerem a reescrita completa do sistema para uma nova tecnologia ou arquitetura. No entanto, essa abordagem pode ser arriscada, pois pode envolver a interrupção completa do sistema antigo e a substituição por um novo sistema, o que pode causar impactos significativos aos usuários e ao negócio como um todo.

É aí que entra o Strangler pattern (Padrão Estrangulador). Essa abordagem propõe uma transição gradual e cuidadosamente planejada do sistema legado para a nova arquitetura, sem interromper a funcionalidade do sistema existente. A ideia é criar uma camada intermediária, ou "estrangulador", que atua como uma interface entre o sistema legado e o novo sistema. Essa camada é responsável por rotear as solicitações dos usuários para a parte relevante do sistema legado ou para o novo sistema, com base na funcionalidade que está sendo acessada.

Ao adotar o Strangler pattern, a equipe de desenvolvimento pode implementar incrementalmente as novas funcionalidades e melhorias no novo sistema, enquanto mantém a funcionalidade existente do sistema legado. Isso permite uma transição suave, com menor risco de interrupção do serviço e permite que os usuários continuem a utilizar o sistema sem impactos negativos.

Além disso, o Strangler pattern também pode ser utilizado como uma estratégia para lidar com sistemas monolíticos, onde todo o código está integrado em uma única aplicação, dificultando a escalabilidade, manutenção e evolução do sistema. Nesse caso, a equipe de desenvolvimento pode criar serviços independentes e utilizar o Strangler pattern para rotear as solicitações dos usuários para os novos serviços, à medida que são desenvolvidos, sem interromper o funcionamento do sistema monolítico.

No entanto, é importante notar que a implementação do Strangler pattern também pode ser complexa e requer um planejamento cuidadoso. É necessário garantir que a camada intermediária seja robusta e eficiente, para evitar gargalos de desempenho ou pontos únicos de falha. Além disso, a equipe de desenvolvimento precisa estar atenta à compatibilidade entre o sistema legado e o novo sistema, garantindo que as integrações e as interfaces de comunicação sejam devidamente gerenciadas.

Exemplificando a transição
Exemplo
Em resumo, o Strangler pattern é uma estratégia de migração gradual e controlada de um sistema legado para uma nova arquitetura de software, sem interromper a funcionalidade existente. Ele pode ser uma abordagem eficaz para minimizar o risco e os impactos de atualizações de sistemas, permitindo uma transição suave para a nova arquitetura.

Referências
Khononov, Vlad. Learning Domain-Driven Design. O'Reilly Media
The pros and cons of the Strangler architecture pattern

Top comments (0)