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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay