De SOA hacia Microservicios: Un nuevo paradigma Global en un contexto eficiente y seguro.


Tradicionalmente, han sido las arquitecturas SOA las grandes ganadoras de los sistemas distribuidos y en los últimos 10 años, pese a que su madurez en el mercado no ha llegado a su fin el alcance y visión de posibles desarrollos ( muy costosos todos ellos), han encontrado un serio cambio de paradigma TIC en mitad del camino. Hablamos de los MICROSERVICIOS.

David vence a Goliath una vez más, pero en esta ocasión la distribución prima de forma «micro» en lugar de «macro».

En las grandes empresas e instituciones se han realizado esfuerzos ingentes por metadistribuir sistemas, aplicaciones y gridificar servicios hasta niveles que rozan los TeramilEuros (Tm€) esperando retornos de inversión que tal vez nunca lleguen, dado el nivel de volatilidad y avance TIC de nuestros días. IoT, Blockchain, AI, BigData, BI, SIME (Sistemas Inteligentes de Máquina de Estados) o MIE (Máquina de Estados Inteligente), vienen desafiando sistemáticamente las reglas del paradigma SOA en las grandes empresas.

La cuestión no es ya el qué…

El qué está claro. Por muy distribuído que pudiera llegar a estar un SOA, que por definición se supone que los Servicios deben estar debilmente acoplados, en una abstracción de la tecnología orientada a Componentes la mayoría de las veces paralelizados y distribuídos (gridificados), no dejan de estar expuestos a frecuentes ataques de Denegación de Servicios, así como a las expensas de todas las vulnerabilidades e inconvenientes derivados de la tecnología basada en SOAP-XML-WS implementada sobre aplicaciones originariamente monolíticas.

Todo ello sin contar con los viejos y robustos Mainframe, así como otras estructuras tradicionales en SAN, NAS, que han ido evolucionando por Tiers en los últimos años hasta llegar a niveles que justificaban un modelo en Nube (Cloud) para una ulterior prestación de servicios basada en paradigmas de IaaS, PaaS o incluso SaaS.

Finalmente el esfuerzo de los desarrollos se ha concentrado en paradigmas basados en la clusterización, la gridificación y la proliferación de sistemas distribuidos orientados a servicios.

SOA, no es sólo una arquitectura, es un auténtico paradigma en el que conviven pilas enteras de protocolos, metodologías, estándares y aplicaciones que deberían estar debilmente acopladas, para facilitar la portabilidad, interoperabilidad, seguridad, disponibilidad y obviamente la eficiencia de los servicios en los que por definición SOA se basa.

Pero, parece ser que no es el caso. Y no lo es, porque esos sistemas monolíticos, han evolucionado desde grandes sistemas centralizados que luego decidieron adaptarse, especializarse y distribuirse.  SOA, nació con esa idea y durante dos décadas ha sido el paradigma dominante en el contexto de las grandes empresas.

Para muchos es fuente de confusión hablar de SOA «versus» MICROSERVICIOS, pues ambos nacen de las arquitecturas distribuídas, sin embargo SOA parte de sistemas altamente centralizados en orígen, mientras MiCROSERVICIOS, hace una completa abstracción de la capa de infraestructura hardware original.

Seguidamente veremos una serie de similitudes:

  1. Ambos paradigmas parten de la idea de empaquetar servicios con bajo nivel de acoplamiento y distribución.
  2. Ambos paradigmas utilizan la capa de la web, como modelo de negocio, aunque en SOA, no siempre es así, pues tradicionalmente también se proyecta hacia el interior de los procesos de negocio de las organizaciones.
  3. Ambos sistemas utilizan la distribución y la modularización de servicios.

Ambos sistemas buscan la eficiencia en la gestión de los recursos, así como la escalabilidad, la alta disponibilidad y la reutilización de componentes.

Pero también hay serias diferencias:

  1. SOA parte de un modelo de Descentralización de Grandes aplicaciones con inversiones caras y no siempre eficientes que implica integración de diferentes plataformas, servicios y sistemas para poder paquetizarlos y reutilizarlos, en un contexto que se basa en Web Services, contra grandes infraestructuras «Back-End» heredadas de antiguos sistemas Mainframe y Grandes Centros de Proceso de Datos.
  2. SOA, parte de un paradigma de Servicios web, basado en la clásica infraestructura «Cluster» y Distribuida basada en Grandes Redes SUN y NAS, con tecnologías que han ido implementando diferentes grados de Tier y aplicando sistemas de Downsizing, para optimizar anchos de banda y costes, procedentes de estructuras anteriores a la Ley 9/2014 (LGT).

En Cambio MICROSERVICIOS:

  1. Parte de un modelo «growing up», en el que la virtualización y los servicios en la nube son una materia prima que ayuda a reducir costes y a hacer abstracción de infraestructuras que otros antes tuvieron que poner». Es una tecnología FOtN «From Old to New». (Se basa en reutilizar las infraestructuras que otros pusieron en el pasado que hoy es presente).  Esta diferenciación es muy importante, porque abre los ojos a muchos SOA para explotar la oportunidad del modelo de MICROSERVICIOS basado en la Nube.
  2. Parte de la idea de la atomización de cada servicio en un contexto de distribución multitecnología. Es imposible en este contexto que un ataque a un servicio se extienda al resto de los servicios, ya que no existe conexión posible entre ellos. Desde el punto de vista del RGPD y el ENS, así como cualesquiera requisitos de Seguridad, podría casi predicarse que un SI basado en MICROSERVICIOS, es casi inexpugnable. Podría atacarse un servicio, pero sería facilmente restaurable, trazable y reconfigurable, sin que afectara al resto del sistema.
  3. El sumatorio Integral de los microservicios, constituiría un SISTEMA. Por así decirlo, cada microservicio sería un SOA desde la base. Un soa desde cero, completamente interoperable, reutilizable y seguro, escalable y clonable. documentado y determinado económicamente. Por supuesto completamente distribuído.

«En suma, podría afirmarse que MICROSERVICIOS, constituye un paradigma en el que cada microservicio podría definirse en sí mismo como un componente independiente del resto, perfectamente orquestado, presupuestado y previsible, sin que afectase al sistema global de Información del que formaría parte en un entorno multidimensional y al mismo tiempo coherente».

Infraestructuras SOA «versus» MicSerV.

Seguidamente sobre un esquema SOA.

  1. Parte de plataformas grandes preexistentes y distribuye y ordena los servicios empaquetando grandes procesos y generando un paradigma de abstracción basado en Servicios Web. (Aunque no necesariamente, pues SOA es agnóstico respecto de la tecnología subyacente.)

Seguidamente sobre un esquema en MICROSERVICIOS:

Cada microservicio implica una tecnología diferente, integrada en un sistema altamente distribuído pero cada capa de servicio está altamente virtualizada y con contenedores agrupados que juntos forman megaestructuras desde microestructuras. De hecho pueden ser creados desde un enfoque «bottom up», y a partir de ahí , balancear, clusterizar y distribuir en proporción al crecimiento.

Casos de Éxito de implementación en MicroServicios:

Amazon

Enlaces recomendados:

Evitando la frustración de las aplicaciones monolíticas. 

Amazon Web Services.

ISO / IEC 42010 (SOA)