Cuando oyes por primera vez hablar de MSA o arquitecturas de microservicios, lo primero que intentas averiguar es si es muy diferente a lo que es SOA. El paradigma SOA deja bastante espacio a la interpretación y, por lo tanto, algunas de las diferentes definiciones de lo que es SOA podrían ser interpretadas de forma similar a los microservicios.
Créditos fotográficos: kentoh
Los microservicios son uno de los métodos de desarrollo de software que más ha crecido en los últimos tiempos. Esencialmente, una arquitectura de microservicios es un método para desarrollar aplicaciones de software como un conjunto de servicios modulares desplegables de forma independiente, en los que cada servicio ejecuta un proceso único y se comunica a través de un mecanismo claro y bien definido para servir a un objetivo del negocio.
Algunas personas dicen que MSA no es más que SOA bien hecho. Incluso otras personas indican que los microservicios no son más que un subconjunto de SOA. Lo cierto es que a primera vista hay bastantes similitudes entre MSA y la definición de qué es SOA.
La forma más sencilla de entender qué es SOA es imaginando un patrón de arquitectura de software, cuyos componentes de aplicación proporcionan servicios a otros componentes, a través de un protocolo de comunicaciones que emplea una red. Estas comunicaciones pueden variar en complejidad e ir, desde la simple transferencia de datos a la coordinación de varios servicios para establecer su conexión.
Por su parte, los microservicios son también un patrón de arquitectura de software, aunque, en este caso, está construido en base a aplicaciones complejas y los pequeños procesos independientes que las componen, comunicándose entre sí mediante APIs agnósticas del lenguaje.
Y hasta aquí llegan las similitudes entre ambos. Quienes conocen qué es SOA, saben que existen varias diferencias con MSA, entre las que cabe destacar las siguientes: