
Lista de las Mejores Herramientas de Service Mesh para Microservicios
En este blog, veremos la lista de las mejores herramientas de service mesh para microservicios que proporcionan seguridad, despliegue canario, telemetría, equilibrio de carga y mucho más.
El número de herramientas de service mesh para desplegar y operar microservicios es cada vez mayor. En este post, exploraremos las principales herramientas de service mesh que debería utilizar para construir su propia arquitectura de service mesh.
Lo primero que hay que hacer cuando se desarrolla una estrategia para seleccionar la herramienta correcta es entender qué le proporcionará y qué tan bien funciona.
Nota: Para entender mejor el service mesh, usted deberá tener conocimientos de microservicios y Kubernetes o herramientas de orquestación de contenedores similares.
¿Qué es un service mesh?
En arquitectura de software, un service mesh es una capa de infraestructura dedicada para facilitar las comunicaciones de servicio a servicio entre servicios o microservicios, utilizando un proxy
wikipedia.org
¿Y si usted quiere gestionar, monitorizar y asegurar las comunicaciones entre todos los microservicios? Aquí es donde entra en escena un Service mesh.
Un service mesh es una herramienta que provee una capa de abstracción para los microservicios. Proveen capacidades de enrutamiento inteligente, resiliencia y equilibrio de carga entre servicios con mejor tolerancia a los fallos que las soluciones tradicionales.
En general, un service mesh gestiona toda la comunicación de servicio a servicio. Intercepta todo el flujo de tráfico entre servicios. La mejor parte es que puede gestionar todas las funcionalidades de service mesh de forma declarativa, de la misma manera que usted despliega objetos en Kubernetes.
¿Qué hace un Service mesh?
Un service mesh gestiona esencialmente el flujo de tráfico entre múltiples microservicios utilizando principalmente un proxy sidecar.
Hay muchos beneficios utilizando service mesh, incluyendo el aumento de la seguridad al proveer cifrado de las comunicaciones, simplificación de los procesos de depuración gracias a las herramientas de observabilidad, así como una mayor disponibilidad debido a las funciones inteligentes de conmutación por error y la escalabilidad horizontal con el rastreo distribuido a través de contenedores o máquinas.
Un service mesh tiene como objetivo proporcionar las siguientes características
- Enrutamiento y Equilibrio de Carga
- Descubrimiento de servicios
- Autenticación y autorización
- Despliegues canarios
- Desconexión de circuitos, limitación de Velocidad, comprobaciones de estado y presupuestos de reintentos
- Seguridad de nivel de transporte mutuo (mTLS) y listas de control de Acceso.
- Observabilidad a través del rastreo Distribuido
- Registros de acceso a la comunicación de servicio a servicio
En la mayoría de los casos, un contenedor sidecar que se ejecuta junto con el contenedor de la aplicación se encarga de todas las características mencionadas anteriormente. Usted no tiene que diseñar especialmente una aplicación para trabajar con un service mesh. También, no se requiere instrumentación adicional para monitorear los servicios con capacidades de service mesh.
¿Cuáles son las Mejores Herramientas de Service Mesh?
Aquí está mi selección de las mejores herramientas de service mesh
- Istio
Github | Istio Open Source repo |
Sitio web Oficial | istio.io |
Aprendizaje | Istio Documentación Oficial |
Istio es un service mesh que fue desarrollada originalmente por Google pero ahora es de código abierto. Provee una forma de conectar, gestionar y asegurar los microservicios que se comunican entre sí.
Las características de seguridad de Istio incluyen el cifrado de toda la comunicación entre los servicios en tránsito, así como la provisión de credenciales de autenticación para los usuarios autorizados. Istio también ofrece funcionalidades como el rastreo distribuido a través de contenedores o máquinas sin la necesidad de agentes de software de terceros dentro de los nodos individuales.
Istio es utilizado en producción por muchas empresas como Adobe, Baidu y Google.
Aquí hay algunas historias de producción de Istio.
1.Aprendizajes de Hellofresh ejecutando Istio en prodcución
- Linkerd
Github | Open Source repo |
Sitio web Oficial | linkerd.io |
Aprendizaje | Documentación Oficial |
Linkerd es un service mesh de código abierto que puede ejecutarse sobre Kubernetes o un clúster de Mesos y está diseñado para entornos de gran escala para gestionar un gran número de microservicios.
Linkerd también proveerá supervisión, rastreo, enrutamiento, equilibrio de carga y otras funciones, así como actualizaciones automáticas de despliegue a través de clústeres
Algunas lecturas relacionadas con la producción de Linkerd,
- Linkerd Production Runbook de Buoyant, de los creadores de Linkerd.
- Linkerd service mesh en producción
Consul connect
Github | Open Source repo |
Sitio web Oficial | consul.io |
Aprendizaje | Documentación Oficial |
Consul connect es una solución de service mesh de Hashicorp.
Consul fue diseñado inicialmente para el descubrimiento de servicios. Sin embargo, con Consul connect, el service mesh se despliega sobre Consul y provee descubrimiento de servicios, sincronización de configuración y detección de fallos.
Consul connect puede funcionar en producción con o sin Kubernetes.
Traefik Mesh
Github | Open Source repo |
Sitio web Oficial | traefik.io |
Aprendizaje | Documentacion Oficial |
Traefik Mesh es una sencilla solución de service mesh, utilizada principalmente para el equilibrio de la carga.
Traefik Mesh es un complemento del proxy inverso popular Traefik que ayuda a descubrir servicios y a enrutarlos entre ellos para equilibrar las cargas de trabajo.
También provee características como la terminación SSL y el proxy de socket web, así que no tiene que preocuparse de esas cosas por su cuenta
Open Service Mesh (OSM)
Github | OSM repo |
Sitio web Oficial | openservicemesh.io |
Aprendizaje | OSM Documentación Oficial |
Open Service Mesh (OSM) es un service mesh nativo de la nube, ligera y extensible, que admite el descubrimiento de servicios dinámicos, el monitoreo y el enrutamiento.
OSM se puede conectar a todos los niveles para proveer el mejor ajuste a sus necesidades:
- Descubrimiento de Servicios – Capa cuatro (IP), o capa siete (URL)
- Monitorización – Métricas basadas en Prometheus con backends compatibles con Graphite, InfluxDB y Elasticsearch
- Enrutamiento – HAProxy como proxy entre los servicios que proveen alta disponibilidad a través del equilibrio de carga de las solicitudes a través de vainas en un clúster. También proveen características como la terminación SSL y el proxy de sockets web para que no tenga que preocuparse de esas cosas por su cuenta si se ejecutan a través de protocolos inseguros como la conexión TCP/UDP de texto plano. Esto ayuda a asegurar el control de acceso permitiendo sólo el tráfico de IPs autorizadas a través de service mesh.
- Nginx Service Mesh (NSM)
Nginx service mesh es un service mesh ligero para kubernetes con un entorno de confianza cero que provee tráfico cifrado entre contenedores.
Gestiona el tráfico de datos entre los contenedores utilizando el plano de datos impulsado por Nginx Plus. Nginx service mesh se centra en lo siguiente.
- Seguridad: tráfico cifrado mTLS entre servicios.
- Gestión del tráfico: Control de tráfico gestionado por políticas entre servicios con limitación de velocidad y disyuntores.
- Visualización: El tablero de Grafana incorporado proporciona visibilidad a las métricas de NGINX plus.
- Despliegues híbridos: Las aplicaciones heredadas pueden comunicarse con el service mesh a través del controlador de entrada de Nginx
Kuma
Github | Kuma Open Source repo |
Sitio web Oficial | kuma.io |
Aprendizaje | Kuma Documentación Oficial |
Kuma service mesh fue creada originalmente por Kong, Inc y ahora es un proyecto sandbox de CNCF. Está construida sobre el proxy Envoy. Puede actuar como un service mesh para ambos, el clúster kubernetes y las máquinas virtuales.
Estas son las principales características de Kuma
- Plano de Control universal
- Plano de Datos Ligero
- Multi-Mesh
- Rotación mTLS y TLS
- Inyección de fallos
- Rastreo de tráfico y métricas de tráfico
- Plataforma-Agnóstica
- Proxy transparente
Otras Herramientas de Service mesh A Considerar
A continuación están otras herramientas de service mesh basadas en el CNCF.
- Meshery
- Gloo Mesh
- Materia gris
- Interfaz Service Mesh
- Service Mesh de Red
Estos son algunos de los servicios de service mesh gestionados en la nube.
Eso es todo.
Ahí lo tiene: mi lista de las mejores herramientas de service mesh.
Cuando haga su elección, primero profundice en las características de service mesh. Debe ser capaz de adaptar las necesidades de su organización con las características proporcionadas por la herramienta de Service mesh.
En segundo lugar, decida si tiene el equipo con las habilidades necesarias para implementar y gestionar la herramienta. La configuración inicial siempre es fácil, el problema real viene en la gestión de su ciclo de vida.
Así que elija la mejor opción adaptada a las necesidades de su proyecto.
Seguiré actualizando este blog con la información más reciente sobre las herramientas y sus lanzamientos.
Y si está buscando una buena plataforma de orquestación de contenedores, lea mis reseñas sobre las mejores plataformas de orquestación de contenedores.
Tomado de la web:
Traducido al español por Devops Latam.
CONTRIBUIDO POR
Bibin Wilson
PUBLICADO en Enero 5 de 2022
Link: https://devopscube.com/service-mesh-tools/