Gestión de APIs

Cómo aplicar microservices a una gran empresa

29th abril 2016

Los microservices (o microservicios) están generando mucha atención en el sector. Mientras los más vanguardistas no dejan de hablar de su practicidad y de las posibilidades de trabajar con este tipo de arquitectura, los CIO de grandes organizaciones con complejas estructuras de IT piensan en cómo  esta nueva tendencia afectará a otros paradigmas arquitectónicos como las integraciones empresariales o el API Managment.

A la hora de hablar de microservices, una de las preguntas más recurrentes es cómo serán las arquitecturas empresariales cuando incorporemos una arquitectura de microservicios en ellas.

-Todo lo que debes saber sobre microservices, ¡aquí!-

Este tipo de arquitecturas tienen como objetivo restar complejidad a los servicios en términos de diseño, desarrollo e implementación. Esta simplificación en arquitecturas ya desarrolladas supone que la complejidad que se ha restado con la incorporación de microservicios debe de ser remplazada con otros componentes o capas.

Arquitecturas de dos capas

Con la llegada de la arquitectura de los microservices, se cuestiona la función de los ESB. Según esta arquitectura recomienda, los ESB deberán de dejar de actuar como un bus centralizado así que todas las tareas realizadas por el ESB como la orquestación de servicios, el enrutamiento o la integración de otros sistemas deberán estar hechos por otros componentes – incluso por los mismos microservicios.

Para poder aplicar la arquitectura de microservicios en complejas soluciones IT ya desarrolladas, una buena idea podría ser la de actuar con una arquitectura en dos capas; una que actúe de manera interna y otra cuyo funcionamiento sea externo.

En este supuesto, la arquitectura interna contendrá los componente de microservices puros que actuarán con una complejidad menor. Por otra parte, para que la plataforma cuente con las capacidades que son requeridas de los microservicios deberemos de construir una solución alrededor de los microservices que construyamos. A esto lo denominaremos una arquitectura externa. Pero, ¿cómo interactúan estas dos capas?

Las arquitecturas de microservicios recomiendan no utilizar productos intermedios de integración como los ESB. Desafortunadamente, esta es una recomendación poco realista para organizaciones grandes con soluciones complejas de IT ya desarrolladas. Dentro de este enfoque, este tipo de empresas no pueden optar a convertir sus sistemas de software a una solución de microservices. Pero aun así, este tipo de organizaciones siguen interesadas en introducir una solución ágil y escalable de software como los microservicios. Para atender a esta necesidad, será imprescindible una combinación de las arquitecturas de microservices con arquitecturas monolíticas convencionales del sistema existente en una arquitectura híbrida.

Antes de aplicar esta solución, deberemos de atender a unos puntos clave. El primero de ellos es que, en una solución híbrida, todavía será necesario que integremos todos nuestros sistemas y servicios a través de un software de integración como el ESB. La probabilidad, es que no nos podamos permitir el deshacernos de los sistemas existentes. Los nuevos microservices pueden tener la necesidad de llamar al ESB para facilitar varias necesidades del negocio. Con este propósito, puede haber un ESB subyacente y los microservicios pueden llamar a los servicios de integración para conectar con los sistemas dispersos.

-Quizá este post te interese: ¿Son los microservices el final de los ESB?-

También relacionado con los ESB, deberemos de tener claro que no nos referimos a su uso tradicional. Ya no deberemos de entenderlos como buses de integración central, sino como un software ligero, de alto rendimiento y escalable en lugar de pesadas estructuras de integración.

Por otra parte, en un sistema híbrido, los microservices deberán de ser expuestos mediante un Gateaway y todas las técnicas de API Managment pueden ser aplicadas en ese nivel. El API Gateaway también nos permitirá tener acceso a  los servicios que no sean microservicios y además podremos atender a otros requerimientos como los de seguridad, monitorización o de almacenamiento de caché en esta misma capa.

En conclusión, aunque muchos CIOs piensen que aplicar una arquitectura de microservicios a su empresa está lejos de sus posibilidades por la complejidad de sus soluciones actuales, es posible si aplicamos una arquitectura híbrida. De esta forma, nuestros sistemas podrán contar con todas las ventajas de los microservicios manteniendo los factores fundamentales de la actual solución. Así, los microservicios en una empresa grande, pueden dar grandes resultados.