Que es un microservicio

Microservicios nachteile

Algunas de las fuentes de este artículo pueden no ser fiables. Por favor, ayude a este artículo buscando fuentes mejores y más fiables. Las citas no fiables pueden ser cuestionadas o eliminadas. (Octubre de 2018) (Aprende cómo y cuándo eliminar este mensaje de la plantilla)

Una arquitectura de microservicios -una variante del estilo estructural de la arquitectura orientada a servicios (SOA)- organiza una aplicación como una colección de servicios débilmente acoplados. En una arquitectura de microservicios, los servicios son de grano fino y los protocolos son ligeros. El objetivo es que los equipos puedan dar vida a sus servicios independientemente de los demás. El acoplamiento suelto reduce todo tipo de dependencias y las complejidades que las rodean, ya que los desarrolladores de servicios no necesitan preocuparse por los usuarios del servicio, no fuerzan sus cambios a los usuarios del servicio. Por lo tanto, permite a las organizaciones que desarrollan software crecer rápidamente y a gran escala, así como utilizar servicios ya existentes con mayor facilidad. Los requisitos de comunicación son menores. Pero mantener el desacoplamiento tiene un coste. Las interfaces deben ser diseñadas cuidadosamente y tratadas como una API pública. Técnicas como tener múltiples interfaces en el mismo servicio, o múltiples versiones del mismo servicio, para no romper el código de los usuarios existentes.

Marco de trabajo de los microservicios

Los microservicios son un diseño arquitectónico para construir una aplicación distribuida utilizando contenedores. Reciben su nombre porque cada función de la aplicación opera como un servicio independiente. Esta arquitectura permite que cada servicio escale o se actualice sin interrumpir otros servicios de la aplicación. Un marco de microservicios crea un sistema masivamente escalable y distribuido, que evita los cuellos de botella de una base de datos central y mejora las capacidades empresariales, como permitir aplicaciones de entrega/despliegue continuo y modernizar la pila tecnológica.

Las aplicaciones se construían tradicionalmente como piezas monolíticas de software. Añadir nuevas funciones requiere reconfigurar y actualizar todo, desde los procesos y las comunicaciones hasta la seguridad dentro de la aplicación. Las aplicaciones monolíticas tradicionales tienen ciclos de vida largos, se actualizan con poca frecuencia y los cambios suelen afectar a toda la aplicación. Este proceso costoso y engorroso retrasa los avances y las actualizaciones en el desarrollo de aplicaciones empresariales.

Arquitectura de microservicios

La arquitectura de microservicios se refiere a una técnica que ofrece a los desarrolladores modernos una forma de diseñar aplicaciones altamente escalables y flexibles descomponiendo la aplicación en servicios discretos que implementan funciones empresariales específicas. Estos servicios, a menudo denominados “débilmente acoplados”, pueden construirse, desplegarse y escalarse de forma independiente.

Cada servicio se comunica con otros servicios, a través de interfaces de programación de aplicaciones (API) estandarizadas, lo que permite que los servicios se escriban en diferentes lenguajes o en diferentes tecnologías. Esto difiere completamente de los sistemas construidos como estructuras monolíticas en las que los servicios estaban inextricablemente interconectados y sólo podían escalarse juntos.

La arquitectura de microservicios ha ganado en popularidad porque sus características modulares permiten flexibilidad, escalabilidad y un menor esfuerzo de desarrollo. Su flexibilidad de despliegue, y el aumento de las opciones de despliegue de funciones como servicio y sin servidor nativo en la nube (como AWS Lambda y Microsoft Azure Cloud Functions), han creado el entorno perfecto para que los microservicios florezcan en el panorama de TI actual. Estas plataformas en la nube permiten escalar los microservicios y las funciones desde la inactividad hasta el alto volumen y viceversa, mientras que los clientes solo pagan por la capacidad de computación que utilizan.

Microservicios wiki

En los últimos años, ha habido un gran revuelo en torno a los llamados microservicios, también conocidos como arquitectura de microservicios. Y esto realmente no es una sorpresa. Con aplicaciones de software cada vez más complejas, también se han vuelto más voluminosas y difíciles de gestionar, actualizar y mantener.

La arquitectura de microservicios es un enfoque de desarrollo de software relativamente nuevo que aborda este problema dividiendo el software complejo en bloques de construcción o servicios independientes. Estos servicios modulares pueden desplegarse y gestionarse individualmente, lo que hace que las grandes aplicaciones sean más resistentes al cambio.

La arquitectura de microservicios describe un estilo particular en el que se diseñan las aplicaciones de software. En contraste con los estilos arquitectónicos tradicionales que pretenden construir el software como una sola unidad, la arquitectura de microservicios se basa en un enfoque modular. Así, las aplicaciones se desarrollan como conjuntos formados por múltiples microservicios que pueden desplegarse y gestionarse de forma independiente.

Pero, ¿qué son exactamente los microservicios? Aunque no existe una definición clara para los microservicios en sí, hay ciertas características que se asocian a este revolucionario enfoque de desarrollo de software.