Skip to content
Latchkey

O Que é o Strangler Fig Pattern? Substituindo um Sistema Gradualmente

O strangler fig pattern substitui um sistema legado gradualmente, roteando uma capacidade de cada vez para código novo até o sistema antigo poder ser aposentado.

Nomeado em referência a uma trepadeira que cresce ao redor de uma árvore até a árvore desaparecer, o strangler fig pattern é como você substitui um sistema legado sem uma reescrita big-bang arriscada. Você coloca uma camada de roteamento na frente, retira uma capacidade de cada vez para código novo e encolhe o sistema antigo até nada depender dele. O CI/CD é o que torna cada pequeno passo seguro.

Substituição incremental

Uma fachada ou roteador fica na frente do sistema antigo. Você reimplementa uma capacidade em código novo e roteia o tráfego dela para lá, deixando o resto no sistema legado. Ao longo de muitas iterações, o novo sistema cresce e o antigo encolhe até nada.

Por que supera uma reescrita

  • Nenhum cutover big-bang de alto risco.
  • O valor é shipado continuamente à medida que cada peça migra.
  • Cada passo é pequeno, reversível e testável de forma independente.
  • O sistema antigo continua rodando até sua última peça ser substituída.

A fachada de roteamento

A fachada decide, por requisição, se atende a partir do antigo ou do novo. É o ponto de controle da migração: vire uma rota para enviar uma capacidade ao código novo, vire de volta se algo estiver errado. Muitas vezes ela é guiada por feature flags.

Por que se apoia em CI/CD

Cada fatia migrada é um deploy que não pode quebrar as partes legadas ainda em execução. Pipelines fortes, contract tests contra a fachada e a capacidade de fazer rollback de uma rota instantaneamente são o que deixam você dar muitos passos pequenos com confiança.

Teste de paridade

Uma técnica-chave é rodar antigo e novo em paralelo e comparar saídas para confirmar que o código novo corresponde ao comportamento antigo antes de virar o tráfego. O CI automatiza essa comparação para que uma divergência de comportamento seja pega antes de os usuários verem.

Deploys pequenos e frequentes

O padrão produz muitos deploys pequenos e frequentes em vez de um gigante. Pipelines rápidas em runners quentes (como o Latchkey) evitam que essa cadência estável de migração empaque em builds lentos.

Principais conclusões

  • O strangler fig pattern substitui um sistema legado uma capacidade de cada vez.
  • Uma fachada de roteamento controla quais requisições vão para o código antigo versus o novo.
  • Ele depende de CI/CD forte: testes de paridade, contract tests e rollback de rota instantâneo.

Guias relacionados