跳转到节

什么是服务网格?

复制URL

Red Hat被提名为2023年Gartner®Magic Quadrant™的领导者

在Gartner 2023集装箱管理幻方图中,Red Hat在执行能力方面排名最高,在实现愿景方面排名最靠前。

服务网格,如开源项目Istio公司,是一种控制应用程序的不同部分如何彼此共享数据的方法。与管理此通信的其他系统不同,服务网格是一个内置于应用程序中的专用基础设施层。这个可见的基础设施层可以记录应用程序不同部分的交互情况,因此随着应用程序的增长,优化通信和避免停机变得更加容易。

应用程序的每一部分称为“服务”,都依赖于其他服务为用户提供他们想要的东西。如果在线零售应用程序的用户想买东西,他们需要知道物品是否有库存。因此,与公司库存数据库通信的服务需要与产品网页通信,产品网页本身需要与用户的在线购物车通信。为了增加业务价值,该零售商最终可能会构建一种服务,为用户提供应用内产品推荐。这项新服务将与产品标签数据库进行通信,以提出建议,但它还需要与产品页面所需的相同库存数据库进行通信-它有许多可重用的移动部件。

现代应用程序通常是这样分解的,作为一个服务网络,每个服务都执行特定的业务功能。为了执行其功能,一个服务可能需要从其他几个服务请求数据。但是,如果一些服务的请求过载,比如零售商的库存数据库,该怎么办?这就是服务网格将请求从一个服务路由到下一个服务的地方,优化了所有移动部件的协同工作方式。

A类微型服务架构允许开发人员对应用程序的服务进行更改,而无需完全重新部署。和其他架构中的应用程序开发不同,单个微服务是由小型团队构建的,可以灵活选择自己的工具和编码语言。基本上,微服务是独立构建的,相互通信,可以单独失败,而不会升级为应用程序范围的中断。

 

微服务架构

服务到服务的通信使微服务成为可能。控制通信的逻辑可以在没有服务网格层的情况下编码到每个服务中,但是随着通信变得更加复杂,服务网格变得更有价值。对于构建在微服务架构中的云应用程序,服务网格是将大量离散服务组成功能应用程序的一种方式。

服务网格不会为应用程序的运行时环境引入新功能,任何体系结构中的应用程序都需要规则来指定请求如何从A点到达B点。服务网格的不同之处在于,它将管理服务到服务通信的逻辑从单个服务中提取出来,并将其抽象到基础设施层。

为此,将服务网格作为网络代理阵列内置到应用程序中。代理是企业IT中常见的概念-如果您是从工作计算机访问此网页,很可能您只是使用了一个:

  1. 当你对这个页面的请求发出时,它首先被你公司的网络代理收到…
  2. 在通过代理的安全措施后,它被发送到承载此页面的服务器…
  3. 接下来,此页面被返回给代理,并再次检查其安全措施…
  4. 然后,它最终从代理发送给您。

 

在服务网格中,请求通过微服务自身基础结构层中的代理在微服务之间路由。因此,组成服务网格的单个代理有时被称为“sidecars”,因为它们运行沿着每个服务,而不是在内部他们。这些“sidecar”代理从每个服务中分离出来,形成一个网状网络。

 

sidecar代理位于微服务旁边,将请求路由到其他代理。这些侧车一起形成了网状网络。

如果没有服务网格,每个微服务都需要用逻辑进行编码,以管理服务到服务的通信,这意味着开发人员不太关注业务目标。这还意味着通信故障更难诊断,因为管理服务间通信的逻辑隐藏在每个服务中。

添加到应用程序的每个新服务,或运行在容器,使通信环境复杂化,并引入新的可能故障点。在复杂的微服务架构中,如果没有服务网格,几乎不可能定位问题发生的位置。

这是因为服务网格还将服务到服务通信的各个方面作为性能指标进行捕获。随着时间的推移,服务网格可见的数据可以应用于服务间通信的规则,从而产生更高效、更可靠的服务请求。

例如,如果给定的服务失败,服务网格可以收集有关重试成功之前所用时间的数据。作为给定服务的故障时间数据集合,可以编写规则来确定重试该服务之前的最佳等待时间,以确保系统不会因不必要的重试而负担过重。

如果您正在构建微服务,您可能会预料到未来的某些需求,例如快速扩展和添加新功能以满足业务需求。微服务架构很可能在推出一年后看起来会大不相同。起初,在微服务中构建的库可能能够处理服务到服务的通信,而对操作的中断最小。如果你通过增加规模和功能来实现微服务的潜力,那么这种情况不会持续太久。随着时间的推移,这可能会导致问题,因为服务会因请求而过载,开发人员会花费越来越多的时间为每个服务编码请求逻辑。

使用服务网格:

利用Red Hat®OpenShift®service mesh上的服务网格开始规划未来的实验。体验一种统一的方式来连接、管理和观察基于微服务的应用程序,并对服务网格中的网络微服务进行行为洞察和控制。OpenShift Service Mesh可免费用于Red Hat OpenShift。

继续阅读

第条

微服务如何支持医疗保健中的IT集成

微服务使医疗保健和其他行业的开发人员能够创建由松散耦合服务制成的应用程序,从而使其更易于开发、测试、部署和升级。

第条

什么是微服务?

微服务是一种构建应用程序的架构方法,其中应用程序的各个部分可以独立工作,但可以一起工作。

第条

什么是服务网格?

服务网格是应用程序中内置的基础结构层,它记录了服务如何交互,从而更容易优化通信并避免停机。

有关微服务的更多信息

产品

一个企业应用程序平台,具有一套统一的测试服务,可根据您选择的基础设施将应用程序推向市场。

资源

播客

《命令行英雄》第1季第3集:

“敏捷革命”

详细信息

架起传统应用程序和微服务的桥梁

培训

免费培训课程

使用微服务架构开发云计算应用程序