Puntos clave: Los microservicios son servicios individuales que utilizan APIs para la comunicación, facilitando una mejor gestión y escalabilidad del software. Permiten que las aplicaciones funcionen a través de componentes más pequeños y enfocados, mientras que las APIs sirven como interfaz para estos servicios, facilitando la interacción y accesibilidad.
- Los microservicios mejoran el diseño de software descentralizando las funciones.
- Las APIs son esenciales para que los microservicios interactúen eficazmente.
Un microservicio es un servicio pequeño y único ofrecido por una empresa. Proviene de la arquitectura de computación distribuida que conecta muchos servicios pequeños, en lugar de tener un solo servicio grande. El microservicio puede entregarse a través de una interfaz de programación de aplicaciones (API). Una API están un método de comunicación entre un solicitante y un host, accesible más a menudo a través de una dirección IP. La API puede comunicar múltiples tipos de información a los usuarios, tales como:
- Datos te quieren compartir
- Una función te quiero ofrecer
En resumen, hablar de microservicio tiene más que ver con la arquitectura del software y la API con cómo exponer el microservicio al consumidor.
Cómo funcionan los microservicios
Los microservicios extienden desde la idea de que una empresa proporciona un servicio grande y único. Los microservicios vienen como funciones individuales. Si Microsoft Word se dividiera en microservicios, quizá se ofrecería uno como hoja en blanco, otro como corrector ortográfico y un servicio como herramienta de formato. Kubernetes ha permitido que el software informático se adapte. Aunque Kubernetes tiene sus propias vantaxes, también ha alejado el diseño de software de un monolito único de servicios y lo ha llevado hacia una combinación de muchos servicios pequeños que trabajan juntos. Esto se debe al diseño de Kubernetes, que puede:
- Orquestar eficientemente la utiliza de contenedores individuales en servidores
- Aumentar la fiabilidad y escalabilidad del sistema
- Reducción de los costes asociados de gestión y recursos
(Conoce más sobre arquitectura de microservicios frente a monolitos.)
Ejemplos de microservicios
Los microservicios son muy sencillos. La simplicidad es un objetivo principal. Se pueden considerar como roles en una empresa; un microservicio cumple un papel muy particular y solo tiene una tarea que cumplir. DZone elaboró un excelente gráfico de diferentes microservicios que ofrece Uber, comunicándose entre sí a través de APIs y realizando distintas tareas. Uber crea diferentes servicios para cada tarea:
- Gestión de pasajeros
- Interfaz web de pasajeros
- Facturación
- Gestión de pilotos
- Interfaz web del controlador
- Pago
- Gestión de viajes
- Notificaciones
(Fuente)
Los microservicios también pueden ilustrarse mediante grafos, donde un microservicio están un único nodo que se comunica con otro servicio a través de una API. La arquitectura puede crecer y crecer a medida que se son añadidos más servicios al sistema. Como te puedes imaginar, los gráficos de las grandes empresas pueden ser extensos, como una pequeña ciudad. Aquí son los supuestos gráficos de Amazon y Netflix:
(Fuente)
Los microservicios dependen de APIs
La API está una herramienta de comunicación: permite que un servicio interactúe con otro. Una API en sí no puede hacer nada a menos que están conectada a algo, como un teléfono móvil que simplemente se queda ahí. La API se vuelve útil cuando está conectada a servicios y microservicios como:
La API están la forma en te puede distribuir el microservicio a los usuarios. En lugar de descargar software o insertar un disco, la API distribuye tu servicio. La API están necesaria para que la arquitectura de microservicios funcione porque la API están la herramienta de comunicación entre sus servicios. Sin una API, habría muchos microservicios desconectados. Técnicamente, el microservicio simplemente se construiría para ser un monolito otra vez.
Cómo funcionan las APIs
Las APIs son extremadamente versátiles. te pueden:
- Crea APIs en cualquier servicio contenedorizado
- Utiliza muchos lenguajes diferentes—Java, Python, Go, por nombrar algunos.
- Despliega APIs en cualquiera de los principales proveedores de nube
Las APIs pueden aumentar tanto la usabilidad como la exposición de tu servicio. Con la distribución mucho más sencilla, tú puedes ofrecer servicios más pequeños. (Al fin y al cabo, no te hace falta construir toda una suite de Adobe solo para demostrar su viabilidad). Muchas APIs son RESTful y expuestos a través de un endpoint como un endpoint HTTP. Esto significa que acceder a la información de una API están tan fácil como hacer ping a una URL. Los comandos Obtén, POST, PUT, DELETE, junto con la URL, funcionan como se espera, obteniendo datos o entregando datos a la API. Aunque las APIs REST son las más comunes en las aplicaciones web modernas, otras opciones incluyen:
- SOAP
- RPC
- GraphQL
Como producto, el endpoint de la API están servido junto a un portal para desarrolladores que informa a los desarrolladores sobre cómo utilizarlo y asigna a los desarrolladores una clave API. Si el objetivo de un microservicio está proporcionar datos sobre los vehículos registrados en un condado determinado, entonces el portal de desarrollo explicará:
- Qué hace el servicio
- Cómo están estructurados los datos (es decir, un esquema de datos)
- ¿Qué es necesario para que un desarrollador utilize la API
Microservicios vs APIs
La mayoría de los buenos microservicios tienen algún tipo de API. Si te quieres que se use tu microservicio, te vas a Crea una API. La API están a los desarrolladores lo que están tener una cuenta en redes sociales para artistas y creadores. Si te quieres que la gente la utiliza, te utiliza una API para que puedan recibirla.
Lecturas relacionadas
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.