Glosario Técnico

Patron strangler fig

Definición: Patron de migracion que reemplaza gradualmente un sistema monolitico redirigiendo funcionalidades una a una hacia el nuevo sistema hasta que el original queda obsoleto.

— Fuente: NERVICO, Consultoría de Desarrollo de Producto

Que es el patron strangler fig

El patron strangler fig es una estrategia de migracion incremental que permite reemplazar un sistema legacy o monolitico de forma gradual sin necesidad de una reescritura completa. Inspirado en la higuera estranguladora que crece alrededor de un arbol hasta reemplazarlo, este patron redirige funcionalidades del sistema antiguo al nuevo de forma progresiva, hasta que el sistema original puede desmantelarse por completo.

Como funciona

Se implementa en tres fases repetitivas. Primero, se identifica una funcionalidad concreta del sistema legacy que se va a migrar. Segundo, se implementa esa funcionalidad en el nuevo sistema (tipicamente microservicios). Tercero, se configura un proxy o facade que redirige las peticiones de esa funcionalidad al nuevo sistema mientras el resto del trafico sigue fluyendo al monolito. Este ciclo se repite funcionalidad a funcionalidad. En cada iteracion, el monolito pierde responsabilidades y el nuevo sistema gana cobertura.

Casos de uso principales

  • Migracion de monolitos a arquitectura de microservicios sin interrumpir el servicio en produccion
  • Modernizacion progresiva de sistemas legacy que no pueden pararse para una reescritura completa
  • Sustitucion gradual de tecnologias obsoletas manteniendo la operativa del negocio durante la transicion
  • Reduccion del riesgo de migraciones grandes al validar cada funcionalidad migrada de forma independiente

Ventajas y consideraciones

El patron strangler fig reduce drasticamente el riesgo comparado con las migraciones big-bang, ya que cada funcionalidad se valida independientemente en produccion antes de migrar la siguiente. Permite obtener valor incremental durante el proceso en lugar de esperar a que la migracion completa finalice. La principal consideracion es que requiere mantener dos sistemas funcionando simultaneamente durante un periodo prolongado, lo que incrementa los costes operativos y la complejidad de coordinacion.

Relacion con otros conceptos

¿Necesitas ayuda con desarrollo de producto?

Te ayudamos a acelerar tu desarrollo con tecnología puntera y mejores prácticas.