Integración

CÓMO SOLUCIONAR LA INTEGRACIÓN DE MICROSERVICES

En un principio, la arquitectura de microservices está enfocada a que cada microservicios cumpla con un objetivo concreto y limitado. Por lo tanto, es habitual que nos encontremos con soluciones IT que exijan la integración y coordinación de varios de nuestros servicios.

En este caso, ¿qué debemos hacer? ¿Crear uno nuevo microservice agrupando varias funcionalidades que ya tenemos? Lo más lógico es que queramos coordinar los servicios ya existentes para que cumplan con nuestros objetivos.

Podríamos tratar su interacción de manera convencional en un estilo punto a punto pero podría convertirse en una solución demasiado frágil cuando queramos integrar varios servicios.

Para evitar esta fragilidad, debemos buscar una integración especial mediante el uso de un Gateaway. El Gateaway nos ayudará a exponer nuestros microservices al consumidor con mayor efectividad. Además, este componente servirá como puente de conexión entre los diferentes microservicios y de esta forma evitará llamadas directas entre ellos.

Técnicas para la integración de microservices

Para la correcta coordinación e integración de servicios en esta arquitectura, podemos recurrir a diferentes técnicas:

1.     Orquestación en la capa de microservicios

La idea de esta técnica es construir un microservicio nuevo que sea el encargado de secuenciar los servicios ya existentes. De esta forma, este último microservices tendrá la función de llamar a los microservicios con los que ya contamos y coordinarlos para ofrecer una respuesta final al usuario.

Por ejemplo, si tenemos un requerimiento que necesita dos Microservicios (MS 1 y 2) construiremos un tercer microservicio (MS 3) cuya función sea llamar a los dos anteriores y ponerlos a disposición del usuario.

2.     Orquestación de servicios en la capa del Gateway

Otra posible coordinación para el escenario anterior, es mediante la implementación de una lógica de orquestación de servicios en el Gateway. De esta forma, son coordinados desde el Gateway con un servicio virtual alojado en el mismo. En este caso, evitaríamos la introducción de un nuevo microservicio.

Esta fórmula rompe con los principios de los microservices ya que cuando queramos incluir una nueva funcionalidad o servicio, deberemos de modificar al Gateway y los Microservicios afectados. Con esta orquestación favorecemos que el Gateway tenga un carácter monolítico, ya que es el responsable de enrutar todas las llamadas de servicios.

3.     Estilo Coreográfico

Otra posible manera de integrar microservicios es mediante el uso de mensajes de estilo asincrónico como MQTT o Kafka. En este caso, no hay un componente central que se encargue de la integración. De esta forma, varios servicios pueden usar protocolos de mensajería para realizar mensajería de editor/suscriptor.

A la hora de plantearnos como implementar una arquitectura de microservicios para nuestra empresa, es normal que nos asalten dudas sobre su coordinación.  Una arquitectura purista de este tipo, plantea servicios limitados que funcionen de manera independiente. Pero en un entorno real, con infraestructuras de información complejas debemos de acudir a fórmulas que permitan la integración de los diferentes servicios. Para ello, será necesario que su interacción sea soportada vía un Gateway. Lo que sí que debemos de decidir según nuestras  necesidades concretas es en qué capa implementamos esta orquestación: en la del Gateway o en la de Microservices.