Service Mesh是什么?
时间:2022-04-19 10:06:01 | 来源:行业动态
时间:2022-04-19 10:06:01 来源:行业动态
Service Mesh是一种针对现代工作负载进行高度优化的高效、轻量化网络层。它在设计上强调语言、框架与工具包中立性,确保开发人员能够专注于处理自己最擅长的编码工作。
Service Mesh充当的是抽象层,负责为服务到服务之间的通信与网络流量提供管理支持。Service Mesh对微服务而言完全透明,无需修改代码即可将其附加至各项服务当中。
Service Mesh能够与任何协议乃至部署目标协同使用。开发人员可以将它与REST、HTTP、HTTP/2乃至其他协议轻松集成。整个网格还能够在跨虚拟机(IaaS)、平台(PaaS)乃至容器(CaaS)运行的开发、分段与生产环境中保持统一且稳定的运行状态。Service Mesh通过行业标准的双向身份验证协议(mTLS)自动保护两项微服务之间的通信内容。更重要的是,其不会对微服务本体的代码与配置产生任何影响。
借助Service Mesh,运营人员可以实施动态网络策略,借此控制部署环境中的往来流量。这些策略还可启用多种高级配置,包括蓝/绿部署以及金丝雀发布等选项。Service Mesh会拦截微服务上的每一项入站与出站调用,因此拥有无与伦比的网络流量可见性,可以借此建立起深刻的运行洞见。凭借这种特性,Service Mesh生成的遥测数据成为可观察性与监控层的宝贵输入素材。
简单来说,Service Mesh是一种标准软件,能够以透明且非侵入方式接入每项服务,进而提供三项关键功能:1) 实现服务之间的安全通信;2) 使用网络策略动态控制流量;3) 可观察性。
继Kubernetes之后,Service Mesh技术已经成为云原生堆栈中最关键的组成部分。各大平台供应商与云服务商纷纷将关注重心转移至Service Mesh身上,借此为开发人员及运营人员提供与众不同的使用体验。
有趣的是,大多数Service Mesh平台都以Envoy为基础。作为Matt Klein最初在Lyft建立的开源项目,Envoy会以代理的形式附加至每项微服务,进而拦截入站与出站流量。与之配套的集中式组件负责扮演命令与控制中心角色,持续管理环境中运行的多个Envoy代理实例。虽然拥有Envoy这一共通元素,但不同网格实现方案在集中管理平面上仍然存在不小的差异。
凭借强大的功能与难以替代的地位,Service Mesh很快成为平台大战中的又一主要战场。Amazon、谷歌、微软、IBM、Red Hat、VMware乃至众多独立软件开发商都在努力赢取开发人员与运营人员的青睐。
下面,我们一同了解Service Mesh生态系统的总体现状。