Los 8 mejores administradores de Service Mesh para crear aplicaciones modernas

Cuando trabaja con microservicios, sus aplicaciones consisten en muchos servicios diferentes a pequeña escala que tienen que comunicarse para funcionar juntos como un sistema.

Los microservicios se comunican entre sí en muchos casos directamente entre los servicios individuales, lo que los hace ineficientes y propensos a fallar, pero aquí es precisamente donde la red de servicios podría ayudar.

¿Qué es una red de servicios?

El término malla de servicios describe inicialmente una forma de controlar el intercambio de datos entre diferentes microservicios de una aplicación. En concreto, se trata de utilizar un software que permita la comunicación entre microservicios:

  • Identificación de la aplicación
  • Balanceo de carga
  • Autenticación
  • Cifrado

Se crea una red de malla de microservicios interconectados mediante conexiones paralelas que se ejecutan a través de sus servidores proxy. Para este propósito, una red de microservicios en red se integra en un sistema de gestión de redes de centro de datos de nivel superior. Entonces es más fácil optimizar las comunicaciones sin estar sujeto a tiempos de inactividad durante la evolución de la aplicación. En realidad, cada servicio de aplicación necesita otros servicios para satisfacer las necesidades del usuario.

Por ejemplo, con una aplicación de venta online, antes de cualquier compra, el usuario sabrá si el artículo en cuestión está efectivamente disponible. Para ello se debe establecer comunicación entre el servicio en relación a la base de datos y la página web del producto. Luego, este último debe comunicarse con el carrito de compras en línea del usuario.

Además, el revendedor puede configurar un servicio de propuestas de productos en la aplicación para guiar mejor a los usuarios. En este caso, este nuevo servicio debe intercambiar no solo con una base de datos de etiquetas de productos para emitir las propuestas, sino también con la base de datos de inventario, que debe comunicarse previamente con la página del producto. En realidad es un conjunto de productos reutilizables.

Las aplicaciones modernas suelen configurarse así como una red de servicios cuyo propósito es realizar una función comercial específica.

¿Cómo funciona una red de servicios y cuáles son sus ventajas?

Cabe señalar que un Service Mesh no crea otras funcionalidades en el entorno de trabajo de una aplicación. El Service Mesh creado en una aplicación tiene la forma de un grupo de proxies de red que sigue siendo una noción familiar en el sector de la informática empresarial.

Probablemente use proxies cada vez que visite páginas web usando una computadora de trabajo. Los proxies basados ​​en la capa de infraestructura de los microservicios ayudan a enrutar las solicitudes entre ellos. De ahí la palabra “sidecar” designa los proxies contenidos en una malla de servicios, y esto se debe a que su ejecución se realiza junto a los servicios y no dentro de ellos. Los proxies “sidecar” de los diversos servicios establecen una red de malla.

Además, en ausencia de una red de servicios, los desarrolladores deben codificar cada microservicio de acuerdo con la estrategia de comunicación entre servicios. Debido a que la lógica de comunicación entre departamentos está oculta en cada departamento, los desarrolladores luchan por lograr los objetivos de la empresa.

Además, están sujetos a dificultades durante el diagnóstico de problemas de comunicación. Finalmente, una malla de servicios permite encontrar soluciones a algunos de los problemas relacionados con la gestión de la comunicación entre servicios.

Con Service Mesh, puede automatizar esta comunicación, ya que se puede acceder fácilmente a los datos y conocimientos necesarios en la infraestructura subcontratada de la red Mesh. Hace que sea más fácil localizar y eliminar cualquier problema y mal funcionamiento. Además, permite que los departamentos de TI de la empresa se relejen y se dediquen a otras tareas de valor agregado.

Debido a la abstracción de la comunicación, los servicios fallidos también se pueden omitir automáticamente y no perjudican el intercambio de datos de las partes de la aplicación en funcionamiento. Los datos fácilmente accesibles del sistema de malla de servicio también se pueden analizar fácilmente y, por lo tanto, permiten la mejora operativa y el aumento del rendimiento de la aplicación.

Hemos repasado cómo funciona la red de servicios; Ahora, veamos algunos de los mejores administradores de redes de servicios:

malla

malla es un administrador de servicios de malla que le permite ejecutar diferentes soluciones de malla de servicios. Se puede implementar en Kubernetes y Docker. Mastery proporciona una interfaz de usuario y una CLI para establecer el punto de referencia para todas las principales soluciones de servicios de malla, incluidos Linkerd e Istio. Meshery se puede implementar directamente en el clúster o localmente.

Malla de aplicaciones de Amazon

Malla de aplicaciones de AWS es un servicio de malla de red para la plataforma Kubernetes de Amazon (EKS). Proporciona administración a nivel de aplicación a través del proxy sidecar de Envoy para el tráfico de entrada y salida y utiliza ruptura de circuitos para proporcionar métricas de observabilidad mediante AWS X-Ray. La malla de aplicaciones de AWS también se puede utilizar junto con otros servicios como Amazon EC2 y AWS Fargate.

Linkerd

Linkerd es un administrador de malla de red de código abierto que utiliza un proxy personalizado basado en Rust para administrar microservicios. Viene con Grafana preinstalado para proporcionar métricas de observabilidad. Linkerd, a diferencia de otros administradores de malla de código abierto, ofrece GUI y no solo admite Prometheus, sino que también admite controladores de ingreso como Traefik, Kong y Gloo. Linkerd también admite actualizaciones de implementación automática en clústeres.

istio

istio es una red de servicios de código abierto que utiliza el proxy Envoy para administrar microservicios. Istio ofrece varias funciones, como equilibrio de carga, creación de políticas, enrutamiento de tráfico, tiempos de espera, ruptura de circuitos, cambio de tráfico y reintentos. ‌Istio también proporciona funcionalidad de seguimiento distribuido entre contenedores o máquinas sin necesidad de instalar software adicional.

kuma

kuma es una red de servicios creada por Kong, que se utiliza para ampliar el funcionamiento de los servicios existentes a través del proxy Envoy. Kuma admite diferentes microservicios y proporciona seguridad y monitoreo mejorados para las redes. Viene con una serie de políticas preempaquetadas para enrutamiento, mTLS, control de tráfico y varias funciones de seguridad. Con Kuma, puede controlar fácilmente diferentes mallas aisladas a través de un único plano de control y datos.

Malla Nginx

Nginx es una malla de servicios para Kubernetes que cifra el tráfico entre contenedores utilizando el plano de datos con tecnología de Nginx Plus. Nginx usa limitación de velocidad y disyuntores para administrar el tráfico entre servicios y viene con un tablero de Grafana para observar las métricas de la red de servicios.

Cónsul

Cónsul de HashiCorp es una red de servicios que proporciona una capa de proxy integrada y también es compatible con el proxy sidecar de Envoy. Ofrece enrutamiento basado en rutas, cambio de tráfico y equilibrio de carga. Consul está integrado con HashiCorp Vault y también es compatible con mTLS. Se puede integrar con Prometheus y Grafana para ver métricas de observabilidad.

Malla Glú

Malla Glú es una malla de servicio construida sobre la malla de Istio y utiliza el proxy Envoy que le permite implementar un modelo de seguridad Zero Trust. Gloo es compatible con Kubernetes, máquinas virtuales y otros microservicios multiusuario. Es compatible tanto con CI/CD como con GitOps, lo que facilita la implementación.

Ultimas palabras

Service Mesh resuelve el problema de comunicación entre diferentes microservicios y brinda varios beneficios de seguridad; sin embargo, debido a los cientos de soluciones de malla disponibles en el mercado, se vuelve esencial elegir un servicio de malla que mejor se adapte a sus necesidades y que sea fácil de administrar.