En términos de arquitectura y diseño de software, ¿cómo se "apilan" los microservicios (juego de palabras) contra el middleware? Vengo de Java, y parece que cuando te alejas de REST directo como API y abstraes diferentes capas y parámetros de conexión, al menos en Java, casi has cerrado el círculo de vuelta a algunas ideas de la vieja escuela. . Hemos vuelto a la virtualización ... donde la JVM ya es virtual.
De una manera agnóstica, usted puede, y yo diría, las ventajas de abstraer una API RESTful a CORBA. O, de una manera más centrada en Java, JMS o MDB.
Hubo un tiempo en que EJB era un gran problema en Java, luego se reconoció un poco como un clúster, pero, ahora, ¿volvemos al principio?
¿O los microservicios ofrecen algo que CORBA, o incluso mejor, MDB, carece? Cuando leo (TLDR) Martin Fowler explicando microservicios, me parece una buena solución a un mal problema, por así decirlo. O más bien, un enfoque de mente cerrada que introduce un nivel de complejidad que solo empuja el problema. Si los servicios son verdaderamente micro y numerosos, cada uno tiene un costo en dólares para ejecutarlo y mantenerlo.
Además, si un micro servicio entre muchos cambia su API, entonces todo lo que depende de ese servicio se rompe. No parece estar débilmente acoplado, parece lo contrario de ágil. ¿O estoy haciendo mal uso de esas palabras?
Por supuesto, hay una cantidad indeterminada de opciones entre estos extremos.
Tiburón contra Gorila ... ¡vete! (Para los pedantes, eso debe ser irónico, y no es mi intención en absoluto. La pregunta debe tomarse al pie de la letra. Si la pregunta puede mejorarse, hágalo o comente y lo solucionaré. )
Imagine una multitud de microservicios que se ejecutan en la ventana acoplable, todos en una máquina, hablando entre ellos ... locura. Difícil de mantener o administrar, y casi imposible cambiar algo porque cualquier cambio se producirá en cascada y causará errores imprevisibles. ¿Cómo es de alguna manera mejor que estos servicios estén dispersos en diferentes máquinas? Y, si se distribuyen, entonces seguramente algunas técnicas muy, muy antiguas de la escuela han resuelto, al menos hasta cierto punto, la informática distribuida.
¿Por qué la escala horizontal es tan frecuente, o al menos deseable?
giant blob
, ya que tiene que tener interfaces, por lo que cada parte que comienza desde el núcleo es una especie de MS, y lo primero es antes cualquier equipo comenzó a escribir código para acordar las especificaciones v0.0.1.