Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Patrón de higo estrangulador
Los patrones de diseño discutidos hasta ahora en esta guía se aplican a las aplicaciones en descomposición para proyectos totalmente nuevos. ¿Qué pasa con los proyectos abandonados que implican aplicaciones grandes y monolíticas? Será difícil aplicarles los patrones de diseño anteriores, ya que dividirlos en trozos más pequeños mientras se utilizan activamente es una tarea ardua.
El patrón de higo estrangulador
Este patrón se suele utilizar para transformar gradualmente una aplicación monolítica en microservicios mediante la sustitución de una funcionalidad concreta por un servicio nuevo. El objetivo es que las versiones heredadas y las nuevas y modernizadas coexistan. El nuevo sistema inicialmente es compatible con el sistema existente y lo complementa. Este soporte da tiempo al nuevo sistema para crecer y, potencialmente, reemplazar por completo el sistema anterior.
El proceso de transición de una aplicación monolítica a un microservicio mediante la implementación del patrón de higo estrangulador consta de tres pasos: transformar, coexistir y eliminar:
-
Transformar: identifique y cree componentes modernizados portándolos o reescribiéndolos en paralelo con la aplicación heredada.
-
Coexistir: conserve la aplicación monolítica para su reversión. Intercepte las llamadas externas al sistema incorporando un proxy HTTP (por ejemplo, Amazon API Gateway) en el perímetro de su monolito y redirija el tráfico a la versión modernizada. Esto le ayuda a implementar la funcionalidad de forma incremental.
-
Eliminar: retire la funcionalidad anterior del monolito a medida que el tráfico se redirige del monolito heredado al servicio modernizado.
AWS Migration Hub Refactor Spaces es el punto de partida para la refactorización gradual de las aplicaciones y convertirlas en microservicios en AWS. Refactor Spaces proporciona una aplicación que modela el patrón del higo estrangulador para una refactorización incremental. Una aplicación de Refactor Spaces orquesta políticas AWS Identity and Access Management de API Gateway, Network Load Balancer y basadas en recursos (IAM) para que pueda añadir nuevos servicios de forma transparente a un punto de conexión HTTP externo.
En la siguiente tabla se explican las ventajas y desventajas de usar el patrón de higo estrangulador.
Ventajas | Desventajas |
---|---|
|
|
La siguiente ilustración muestra cómo se puede dividir un monolito en microservicios aplicando el patrón del higo estrangulador a la arquitectura de una aplicación. Ambos sistemas funcionan en paralelo, pero empezará a trasladar la funcionalidad fuera de la base de código monolítica y a mejorarla con nuevas capacidades. Estas nuevas capacidades le brindan la oportunidad de diseñar los microservicios de la manera que mejor se adapte a sus necesidades. Seguirá eliminando las capacidades del monolito hasta que todas sean reemplazadas por microservicios. En ese momento podrá eliminar la aplicación monolítica. El punto clave a tener en cuenta aquí es que tanto el monolito como los microservicios convivirán durante un período de tiempo.