开放服务网格 Open Service Mesh 如何开放?
TL;DR 本文从服务网格发展现状、到 Open Service Mesh 源码,分析开放服务网格中的开放是什么以及如何开放。笔者总结其开放体现在以下几点: 资源提供者(Provider)接口和资源的重新封装:通过资源提供者接口抽象计算平台的资源,并封装成平台、代理无关的结构化类型,并由统一的接口 MeshCataloger 对外提供访问。虽然目前只有 Kubernetes 相关资源的 Provider 实现,但是通过抽象出的接口,可以兼容其他平台,比如虚拟机、物理机。 服务网格能力接口:对服务网格能力的抽象,定义服务网格的基础功能集。 代理控制面接口:这一层与反向代理,也就是 sidecar 的实现相关。实际上是反向代理所提供的接口,通过对接口的实现,加上 MeshCataloger 对资源的访问,生成并下发代理所需的配置。 背景 服务网格是什么 服务网格是在 2017年由 Buoyant 的 Willian Morgan 在 What’s a service mesh? And why do I need one? 给出了解释。 服务网格是处理服务间网络通信的基础设施组件,旨在从平台层面提供可观性、安全以及可靠性特性,以进程外的方式提供原本由部分应用层逻辑承载的基础能力,真正实现与业务逻辑的分离。典型的实现是与应用程序一起部署的可扩展网络代理(通常称为 sidecar 模型),来代理服务间的网络通信,也是服务网格特性的接入点。这些代理就组成了服务网格的数据平面,并由控制平面进行统一的管理。