Comparación de SOA con Microservicios

 Comparación de SOA con Microservicios

Primero surgió la arquitectura orientada a objetos y más adelante la orientada a componentes. Pero no fue hasta 1996 cuando se desarrolló por primera vez SOA. Con ésta se desarrollaban todos los servicios necesarios y se empaquetaban en un archivo WAR para poder desplegarse en un servidor de aplicaciones, como por ejemplo Tomcat, que se encontraba dentro de una máquina. Esto puede verse en la Figura 2.3.

Todos estos servicios tenían que estar implementados en el mismo lenguaje y no se les podía asignar más recursos a cada uno de ellos. Era asignado a todo el conjunto, dividiendo el archivo WAR en varias máquinas o réplicas de esta. Para ello se necesitaba un balanceador de carga que determinaba que máquina iba a atender la petición.

Todo esto será suficiente para las empresas. A día de hoy cuando una aplicación monolítica (SOA) crece demasiado es difícil mantenerla y añadir nuevas funcionalidades, ya que cada línea modificada implica redesplegar toda la aplicación, lo que puede llevar mucho tiempo pues en los despliegues están involucrados varios departamentos de la empresa que impide al equipo seguir desarrollando. También es complicado encontrar el origen de algún error en el código.

La necesidad por resolver todos estos problemas desembocó en la arquitectura de microservicios. La primera vez que se mencionó la palabra “microservicios” fue en 2011 en una conferencia sobre computación en la nube, donde el Dr. Peter Rogers se refirió a ello para describir la arquitectura que estaban usando grandes empresas como Netflix, Facebook, Amazon o Paypal.

Los microservicios gestionan la complejidad dividiéndose funcionalmente en un conjunto de servicios pequeños e independientes. Con esto se consigue que el equipo de desarrollo sea capaz de implementar varias funcionalidades a la vez, sin toar el código de otra funcionalidad y desplegar cada módulo por separado, donde cada microservicio está separado del resto y pueden o no tener una base de datos común.

El cambio más notable respecto a SOA es que los equipos de desarrollo tienen una mayor responsabilidad, lo que se traduce en una gran facilidad, ya que manejan todo lo siguiente: proceso de desarrollo, despliegues en distintos entornos, gestión de contendores como Kubernetes, etc. Todo esto antes se tenía que realizar en otros departamentos de la empresa aumentando tiempos de producción. La arquitectura de microservicios resuelve todos los problemas que presenta SOA y cada vez es más popular, pero aún está en su base de inicio, y aún le queda mucho por mejorar y evolucionar.

Rajest RV en su libro “Spring Microservices” nos muestra que se observa cómo es más rápido y ágil el desarrollo de aplicaciones con microservicios frente a aplicaciones tradicionales. Menciona que, “Los microservicios prometen más agilidad, velocidad de entrega y escala. En comparación con las aplicaciones monolíticas tradicionales”.

Un aspecto que mejorar es la seguridad, ya que cuando se descompone una aplicación en cientos de microservicios aparecen dificultades en la depuración, monitoreo, auditoría y análisis de toda la aplicación. Los atacantes podrían aprovechar esta complejidad para atacar.

Lo que sí es seguro es que han surgido para quedarse y cada vez más empresas están empezando a utilizar los microservicios.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No hay comentarios:

Publicar un comentario

Contenido desarrollo de software - Arquitectura Software

ENUM en JAVA