Reactive MicroServices y Arquitectura

¿Como funcionan los Reactive MicroServices? . El mundo de los microServicios es difícil de entender. Todo el mundo quiere empezar con ello . Pero evolucionar hacia una arquitectura de este estilo no es una tarea fácil. Para entender un poco mejor el concepto de Reactive MicroServices, debemos revisar las arquitecturas que tenemos en estos momentos . Lo más habitual es que tengamos construidas aplicaciones web monolíticas. Un navegador accede a la aplicación.

sin reactive microservices

La realidad es que esto siempre incluye algo más, ya que nuestra aplicación tiene que dar acceso a varios clientes móviles o a otras aplicaciones. Así pues habremos publicado de una forma u otra X servicios REST.

reactive microservices rest

Es aquí donde empiezan los problemas . Cuando tenemos unos pocos servicios REST no pasa nada . Pero cuando tenemos muchos  independientes entre si , nos encontraremos que para actualizar la App1 debemos redesplegar nuestra aplicación. No parece algo complejo pero a más aplicaciones conectadas vía REST mayores serán los despliegues y mas constantes. Esto es un problema.  El siguiente paso natural es modularizar de alguna forma nuestra aplicación y convertirla en un conjunto de aplicaciones pequeñas independientes.

reactive microservices modules

El problema es que estas aplicaciones independientes , no son tan independientes como pensamos. Todas se ejecutan en el mismo servidor .Así que si una aplicación se come la memoria o la CPU de la máquina el resto de las aplicaciones sufrirán .  El siguiente paso es generar contenedores tipo Docker y aislar las aplicaciones haciéndolas completamente independientes.

reactive microservices container

Si un contenedor falla no afecta a los demás. Hemos avanzado otro paso . El siguiente problema empieza cuando tengamos que construir aplicaciones que necesitan consumir servicios REST de forma masiva. Algo que con la arquitectura que estamos diseñando será una consecuencia directa. Todas las peticiones que realizamos son asíncronas.

async reactive microservices

Así pues necesitaremos utilizar programación Reactiva para realizar una comunicación asíncrona óptima y correcta entre los distintos APIs REST de los diferentes Microservicios que creamos.

reactive microservices rx

No solo eso sino que es posible que nuestros propios microservicios sean clientes de otras aplicaciones a las cual accedemos vía REST.

reactive microservices rx ok

Las extensiones RX nos las vamos a encontrar en muchas plataformas cuando desarrollemos estas  nuevas Arquitecturas. Eso sí la evolución hacia arquitecturas de microservicios es un reto y habrá que abordarlo con mucha calma .Todavía quedan muchos temas por clarificar.

Otros artículos relacionados : RxJava , MicroServicios , Docker

It's only fair to share...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

About Cecilio Álvarez Caules

Cecilio Álvarez Caules Sun Certified Enterprise Architech (J2EE/JEE).

3 Responses to Reactive MicroServices y Arquitectura

  1. Jesús Perales 27 Octubre, 2016 at 23:02 #

    No me imagino el problema que generara la latencia y el tratar de meter todo es en un cluster D:

    • Cecilio Álvarez Caules 28 Octubre, 2016 at 8:07 #

      Tienes toda la razón 🙂

Trackbacks/Pingbacks

  1. Usando Rx Observables en JavaScript - Arquitectura Java - 7 Enero, 2017

    […] Otros artículos relacionados:RxJS y la programación reactiva. , Reactive MicroServices y Arquitectura, […]

Deja un comentario