服务网格(Service Mesh)是什么

小编 819

服务网格(Service Mesh)是一种新型的用于处理服务与服务之间通信的技术,目前已经成为云原生技术栈里的一个关键组件。它描述了服务间的依赖形态,尤其适用以云原生应用形式部署的服务,能够保证服务与服务之间调用的可靠性。

1.服务网格的概念

服务网格(Service Mesh)是一个形象化的词语表达:service(服务)-mesh(网格),它描述了服务间的依赖形态。

在软件架构中,服务网格是一个专用的基础设施层,用于使用代理促进服务或微服务之间的服务到服务通信。专用通信层可以提供许多好处,例如提供对通信的可观察性,提供安全连接,或自动重试和回退失败的请求。

服务网格由与应用程序中的每个服务配对的网络代理和一组任务管理进程组成。代理称为数据平面,管理进程称为控制平面。数据平面拦截不同服务之间的调用并“处理”它们;控制平面是网格的大脑,负责协调代理的行为,并为运维人员提供API来操作和观察整个网络。

2.服务网格的功能

在云原生应用复杂的服务拓扑结构中,服务网格作为基础设施层,负责在这些拓扑结构中实现请求的可靠传递。服务网格通过在请求调用的路径中增加Sidecar,将原本由客户端完成的复杂功能下沉到Sidecar中,实现对客户端的简化和服务间通信控制权的转移;当系统中存在大量服务时,服务间的调用关系表现为网状,这也是服务网格名称的由来。

服务网格的功能实现完全独立于应用程序,可以独立部署升级、扩展功能、修复缺陷,应用程序无须关注服务网格的具体实现细节,即对应用程序是透明的。

延伸阅读

服务网格有哪些局限性

服务网格拥有极其强大的技术优势,带来了巨大变革,被称为“第二代微服务架构”。然而软件开发没有“银弹”,传统微服务架构有许多痛点一样,服务网格也有它的局限性,详情如下:

名列前茅,增加了复杂度。服务网格将Sidecar代理和其他组件引入已经很复杂的分布式环境中,会极大地增加整体链路和操作运维的复杂性。

第二,对运维人员的专业性要求更高。在容器编排工具(如Kubernetes)上添加Istio之类的服务网格,需要运维人员成为这两种技术的专家,以便充分使用二者的功能,以及定位环境中遇到的问题。

第三,系统调用延迟。从链路层面来讲,服务网格是一种侵入性的、复杂的技术,可以为系统调用增加明显的延迟。虽然这个延迟是毫秒级别的,但是在特殊业务场景下,这个延迟可能是令人难以容忍的。

第四,平台的适配。服务网格的侵入性迫使开发人员和运维人员适应平台并遵守平台的规则。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部