Leí un poco sobre microservicios y estoy un poco intrigado. Parece que es un concepto interesante. Pero me pregunto cuáles son las ventajas y desventajas del uso de microservicios sobre la arquitectura monolítica y viceversa.
Cuándo los microservicios son más adecuados y dónde ir mejor con la arquitectura monolítica.
microservices
usuario902383
fuente
fuente
Respuestas:
Si bien soy relativamente nuevo en el mundo de los microservicios, intentaré responder su pregunta lo más completa posible.
Cuando utilice la arquitectura de microservicios, tendrá un mayor desacoplamiento y separación de preocupaciones. Dado que está dividiendo literalmente su aplicación.
Esto da como resultado que su base de código será más fácil de administrar (cada aplicación es independiente de las otras aplicaciones para mantenerse en funcionamiento). Por lo tanto, si lo hace correctamente , en el futuro será más fácil agregar nuevas funciones a su aplicación. Mientras que con una arquitectura monolítica, podría resultar muy difícil de hacer si su aplicación es grande (y puede asumir que en algún momento lo será).
Además, la implementación de la aplicación es más fácil , ya que está construyendo los microservicios independientes por separado y implementándolos en servidores separados. Esto significa que puede crear e implementar servicios cuando lo desee sin tener que reconstruir el resto de su aplicación.
Dado que los diferentes servicios son pequeños y se implementan por separado, es obvio que es más fácil escalarlos , con la ventaja de que puede escalar servicios específicos de su aplicación (con un monolítico, escala la "cosa" completa, incluso si es solo una parte específica dentro del aplicación que está recibiendo una carga excesiva).
Sin embargo, para aplicaciones que no están destinadas a ser demasiado grandes para administrarlas en el futuro. Es mejor mantenerlo en la arquitectura monolítica. Dado que la arquitectura de microservicios tiene serias dificultades involucradas. Dije que es más fácil implementar microservicios, pero esto solo es cierto en comparación con los grandes monolitos. Al usar microservicios, tiene la complejidad adicional de distribuir los servicios a diferentes servidores en diferentes ubicaciones y necesita encontrar una manera de administrar todo eso. La creación de microservicios lo ayudará a largo plazo si su aplicación se vuelve grande, pero para aplicaciones más pequeñas, es más fácil mantenerse monolítico.
fuente
Esta es una pregunta muy importante porque algunas personas se sienten atraídas por todos los rumores en torno a los microservicios, y hay que considerar las compensaciones. Entonces, ¿cuáles son los beneficios y desafíos de los microservicios (en comparación con el modelo monolítico)?
Beneficios
Desafíos
Una vez que entendemos estas compensaciones , hay una cosa más que necesitamos saber para responder a la otra pregunta: ¿cuál es mejor, microservicios o monolito? Necesitamos conocer los requisitos no funcionales (requisitos de atributos de calidad) de la aplicación. Una vez que comprenda la importancia del rendimiento frente a la escalabilidad, por ejemplo, puede sopesar las compensaciones y tomar una decisión de diseño informada.
fuente
@Luxo da en el clavo. Solo me gustaría ofrecer una pequeña variación y lograr la perspectiva organizativa de la misma. Los microservicios no solo permiten desacoplar las aplicaciones, sino que también pueden ayudar a nivel organizacional. La organización, por ejemplo, podría dividirse en varios equipos donde cada uno puede desarrollarse en un conjunto de microservicios que el equipo puede proporcionar.
Por ejemplo, en tiendas más grandes como Amazon, puede tener un equipo de personalización, un equipo de comercio electrónico, un equipo de servicios de infraestructura, etc. Si desea ingresar a los microservicios, Amazon es un muy buen ejemplo de ello. Jeff Bezos estableció como un mandato para los equipos comunicarse con los servicios de otro equipo si necesitaban acceso a una funcionalidad compartida. Vea aquí para una breve descripción.
Además, los ingenieros de Etsy y Netflix también tuvieron un pequeño debate en la época de los microservicios frente al monolito en Twitter. El debate es un poco menos técnico, pero también puede ofrecer algunas ideas.
fuente