构建现代应用程序的 8 个最佳服务网格管理器
已发表: 2022-05-31在使用微服务时,您的应用程序由许多不同的小型服务组成,这些服务必须进行通信才能作为一个系统一起运行。
在许多情况下,微服务直接在各个服务之间相互通信,这使得它们效率低下并且容易出现故障,但这正是服务网格可以提供帮助的地方。

什么是服务网格?
术语服务网格最初描述了一种控制应用程序不同微服务之间数据交换的方法。 具体来说,它是关于使用支持微服务之间通信的软件:
- 应用识别
- 负载均衡
- 验证
- 加密
互连微服务的网状网络由通过其代理运行的并行连接创建。 为此,将联网的微服务网络集成到更高级别的数据中心网络管理系统中。 这样就更容易优化通信,而不会在应用程序的发展过程中受到停机时间的影响。 在现实中,每个应用服务都需要其他服务来满足用户的需求。
例如,对于在线销售应用程序,用户在进行任何购买之前,都会发现相关商品是否确实有货。 为此,必须在与数据库相关的服务和产品网页之间建立通信。 然后,后者必须与用户的在线购物车通信。
此外,经销商可以在应用程序上设置产品建议服务,以更好地引导用户。 在这种情况下,这项新服务不仅必须与产品标签数据库进行交换以发布提案,而且还必须与库存数据库进行交换,后者应事先与产品页面进行通信。 它实际上是一套可重复使用的产品。
现代应用程序通常像这样设置为服务网络,其目的是执行特定的业务功能。
服务网格是如何工作的,它的优势是什么?
需要注意的是,Service Mesh 不会在应用程序的工作环境中创建其他功能。 在应用程序中创建的服务网格采用一组网络代理的形式,这在企业计算领域仍然是一个熟悉的概念。
每次使用工作计算机访问网页时,您可能都会使用代理。 基于微服务基础设施层的代理有助于在它们之间路由请求。 因此,“sidecar”一词表示服务网格中包含的代理,这是因为它们的执行是在服务旁边而不是在服务内部完成的。 各种服务的“sidecar”代理建立了一个网状网络。
此外,在没有服务网格的情况下,开发人员发现自己必须根据服务之间的通信策略对每个微服务进行编码。 由于部门之间的沟通逻辑隐藏在每个部门中,开发人员难以实现公司目标。
此外,他们在沟通问题的诊断过程中也会遇到困难。 最后,服务网格可以找到一些与服务之间的通信管理相关的问题的解决方案。
使用服务网格,您可以自动化这种通信,因为在网格网络的外包基础设施中可以轻松访问所需的数据和见解。 它使定位和消除任何问题和故障变得更加容易。 此外,它还可以让公司的 IT 部门得到解脱,专注于其他增值任务。
由于通信抽象,失败的服务也可以自动绕过,并且不会影响功能应用程序部分的数据交换。 服务网格系统易于访问的数据也可以轻松分析,从而能够改进应用程序的操作和性能。
我们已经了解了服务网格的工作原理; 现在,让我们看看一些最好的服务网格管理器:
网状

Meshery 是一个网格服务管理器,它允许您运行不同的服务网格解决方案。 它可以部署在 Kubernetes 和 Docker 上。 Mastery 提供了一个 UI 和 CLI 来为所有主要的网格服务解决方案设置基准,包括 Linkerd 和 Istio。 Meshery 可以直接部署在集群上,也可以部署在本地。
亚马逊应用网格
AWS App Mesh 是 Amazon Kubernetes 平台 (EKS) 的网络网格服务。 它通过 envoy sidecar 代理为入口和出口流量提供应用程序级管理,并使用熔断器使用 AWS X-Ray 提供可观察性指标。 AWS 应用网格也可以与其他服务一起使用,例如 Amazon EC2 和 AWS Fargate。

链接器
Linkerd 是一个开源网络网格管理器,它使用基于 Rust 的定制代理来管理微服务。 它预装了 Grafana 以提供可观察性指标。 Linkerd 与其他开源网格管理器不同,它提供 GUI,不仅支持 Prometheus,还支持 Traefik、Kong 和 Gloo 等入口控制器。 Linkerd 还支持跨集群的自动部署升级。
Istio

Istio 是一个使用 Envoy 代理来管理微服务的开源服务网格。 Istio 提供了多种功能,例如负载均衡、策略创建、流量路由、超时、断路、流量转移和重试。 Istio 还提供跨容器或机器的分布式跟踪功能,无需安装额外的软件。
隈研吾

Kuma 是由 Kong 创建的服务网格,用于通过 Envoy 代理扩展现有服务的工作。 Kuma 支持不同的微服务,并为网络提供增强的安全性和监控。 它带有许多用于路由、mTLS、流量控制和各种安全功能的预捆绑策略。 使用 Kuma,您可以通过单个控制和数据平面轻松控制不同的隔离网格。
Nginx 网格

Nginx 是 Kubernetes 的服务网格,它使用由 Nginx Plus 提供支持的数据平面来加密容器之间的流量。 Nginx 使用速率限制和断路器来管理服务之间的流量,并附带一个 Grafana 仪表板用于观察服务网格的指标。
领事

HashiCorp 的 Consul 是一个服务网格,它提供了一个内置的代理层,还支持 Envoy sidecar 代理。 它提供基于路径的路由、流量转移和负载平衡。 Consul 与 HashiCorp Vault 集成,它还支持 mTLS。 它可以与 Prometheus 和 Grafana 集成以查看可观察性指标。
格鲁网

Gloo Mesh 是一个建立在 Istio 网格之上的服务网格,它使用 Envoy 代理来实现零信任安全模型。 Gloo 支持多租户 Kubernetes、VM 和其他微服务。 它对 CI/CD 和 GitOps 都很友好,这使得部署更加容易。
最后的话
Service Mesh 解决了不同微服务之间的通信问题,提供了各种安全优势; 但是,由于市场上有数百种不同的网格解决方案,因此选择最适合您的要求且易于管理的网格服务变得至关重要。