8个最佳服务网格管理器用于构建现代应用程序

在使用微服务时,您的应用程序由许多不同的小规模服务组成,这些服务必须进行通信以作为一个系统一起运行。

微服务在许多情况下直接在各个服务之间进行通信,这使它们效率低且容易出错,但这正是服务网格可以发挥作用的地方。

什么是服务网格?

服务网格一词最初描述了一种控制应用程序不同微服务之间数据交换的方式。具体而言,它是指使用软件来实现微服务之间的通信:

  • 应用程序识别
  • 负载均衡
  • 身份认证
  • 加密

通过通过其代理运行的并行连接创建互连微服务的网状网络。为此,将网络化的微服务网络集成到更高级别的数据中心网络管理系统中。这样,在应用程序演变过程中能够更容易地优化通信而不会导致停机。实际上,每个应用程序服务都需要其他服务来满足用户需求。

例如,在在线销售应用程序中,在进行任何购买之前,用户会查看所关注的商品是否真的可用。为此,必须在与数据库和商品网页相关的服务之间建立通信。然后,商品网页还必须与用户的在线购物车进行通信。

此外,经销商可以在应用程序上设置产品推荐服务以更好地指导用户。在这种情况下,这个新服务不仅必须与产品标签数据库进行交互以提出推荐,还必须与先前与商品网页进行通信的数据库进行交互。实际上,这是一组可重用的产品。

Modern applications通常像这样设置为一组功能是执行特定业务功能的服务网络。

服务网格如何工作,以及它的优势是什么?

应该注意的是,服务网格不会在应用程序的工作环境中创建其他功能。在应用程序中创建的服务网格以网络代理的形式存在,这在企业计算领域是一种常见的模式。

您可能在使用工作计算机访问网页时每次都会使用代理。基于微服务基础设施层的代理有助于在它们之间路由请求。因此,“sidecar”一词指代服务网格中包含的代理,这是因为它们的执行是在服务旁边而不是内部进行的。各个服务的“旁车”代理建立了一个网状网络。

此外,在没有服务网格的情况下,开发人员不得不根据服务之间的通信策略编写每个微服务的代码。由于部门之间的通信逻辑被隐藏在各个部门中,开发人员难以实现公司的目标。

此外,他们在诊断通信问题时会遇到困难。最后,服务网格可以在某些与服务之间通信管理相关的问题上找到解决方案。

通过服务网格,您可以自动化此通信,因为所需的数据和洞察力在网状网络的外包基础设施中很容易获取。这使得更容易定位和消除任何问题和故障。此外,它使公司的IT部门能够得到解脱,并专注于其他增值任务。

由于通信抽象,故障服务也可以自动绕过,并且不会影响功能应用部分的数据交换。服务网格系统的易于访问的数据也可以轻松分析,从而实现应用的运营改进和性能提升。

我们已了解了服务网格的工作原理,现在让我们来看一些最佳的服务网格管理器:

Meshery

Meshery是一个网格服务管理器,允许您运行不同的服务网格解决方案。它可以部署在Kubernetes and Docker上。Meshery提供了一个UI和CLI,用于为包括Linkerd和Istio在内的所有主要网格服务解决方案设置基准。Meshery可以直接部署在群集上或本地。

Amazon App Mesh

AWS App Mesh是Amazon的Kubernetes平台(EKS)的网络网格服务。它通过envoy sidecar代理提供应用级管理,并使用断路器使用AWS X-Ray提供可观察性指标。AWS app mesh还可以与Amazon EC2和AWS Fargate等其他服务一起使用。

Linkerd

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

Istio

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

Kuma

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

Nginx Mesh

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

Consul

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

Gloo Mesh

Gloo Mesh是建立在Istio网格之上的服务网格,使用Envoy代理,使您能够实现零信任安全模型。Gloo支持多租户的Kubernetes、VM和其他微服务。它既支持CI/CD,又支持GitOps,使部署更容易。

最后的话

服务网格解决了不同微服务之间的通信问题,并提供了各种安全优势;然而,由于市场上提供了数百种不同的网格解决方案,选择最适合您需求并且易于管理的网格服务变得至关重要。

类似文章