Aprenda qué son los microservicios y distribuidos en un minuto.
¿Qué son los microservicios?
No citaré aquí la complicada introducción del libro. En pocas palabras, un microservicio es un servicio muy pequeño, tan pequeño que un servicio solo corresponde a una única función y solo hace una cosa. Este servicio se puede implementar y ejecutar de forma independiente y los servicios pueden interactuar a través de RPC. Cada microservicio es desarrollado, probado, implementado y puesto en marcha por un pequeño equipo independiente responsable de todo su ciclo de vida.
¿Qué es la arquitectura de microservicios?
Al diseñar la arquitectura, haga primero la arquitectura lógica y luego la arquitectura física. Después de obtener los requisitos, calcule la cantidad máxima de usuarios y simultaneidad, y luego calcule si un único servidor de aplicaciones puede cumplir con los requisitos. Si el número de usuarios es sólo de unos pocos cientos, una sola aplicación puede resolver el problema, es decir, todas las aplicaciones se implementan en un servidor de aplicaciones. Si hay una gran cantidad de usuarios, se accederá a algunas funciones con frecuencia o algunas funciones requieren una gran cantidad de cálculos, se recomienda dividir la aplicación en varios subsistemas.
Entonces, ¿qué se distribuye?
Como sugiere el nombre, los servicios distribuidos se distribuyen en diferentes máquinas. Un servicio puede ser responsable de varias funciones y está orientado a SOA. Los servicios también interactúan a través de rpc o servicio web. Después del diseño de la arquitectura lógica, se debe realizar el diseño de la arquitectura física. Las aplicaciones del sistema se implementan en múltiples servidores o máquinas virtuales, y las partes implementadas individualmente intercambian información entre sí a través de varios protocolos de comunicación, lo que puede considerarse una implementación distribuida. Los microservicios en el entorno de producción deben distribuirse, y las aplicaciones de implementación distribuida no son necesariamente arquitecturas de microservicios, como la implementación de clústeres. Replica la misma aplicación en diferentes servidores, pero lógicamente sigue siendo una única aplicación.
En comparación con los servicios distribuidos, los microservicios tienen una granularidad menor y un menor acoplamiento entre servicios. Debido a que cada microservicio es responsable de un pequeño equipo independiente, es más ágil y los servicios distribuidos eventualmente evolucionarán hacia una arquitectura de microservicios. Esta es una tendencia, pero los desafíos que plantean los microservicios también son obvios, como una granularidad pequeña, una gran cantidad de servicios y la operación y el mantenimiento posteriores serán más difíciles.