你好,SMI: service mesh 互操作性说明书

【编者的话】本文主要介绍了最近发布的 Service Mesh Interface(SMI),SMI 为
service mesh 技术提供了通用的 API 规范,并且是生态系统友好的,为后续新兴工具的集成提供了保障。

今天,我们兴奋地发布了 Service Mesh Interface(SMI)
,它定义了一组通用的可移植 API,为开发人员提供跨不同 service mesh(服务网格)技术的互操作性,其中包括 Istio,Linkerd 和 Consul Connect。SMI 是一个与微软,Linkerd,HashiCorp,Solo.io,Kinvolk 和 Weaveworks 合作开展的开放项目; 同样也得到了 Aspen Mesh,Canonical,Docker,Pivotal,Rancher,Red Hat 和 VMware 的支持。
多年来,网络架构的真言是让网络管道尽可能愚蠢,并在应用中构建智能。网络的职责是转发数据包,而任何关于加密,压缩或身份的逻辑则存在于网络端点内。互联网是以此真言为前提的,所以你会觉得它可以运转良好。

但是,如今随着微服务、容器以及编排系统如 Kubernetes
的爆炸式增长,工程团队将要保障、管理和监控越来越多的网络端点。service mesh 技术通过使网络更加智能,来解决上述问题。service mesh 技术不是教授所有服务来加密会话,授权客户端,发出合理的遥测,并在应用程序版本之间无缝转换流量,而是将此逻辑推入网络,由一组单独的管理 API 控制。

这是 cloud-native
系统中比较流行的模式。我们发现,随着许多供应商为应用开发人员提供了令人兴奋的新选择,service mesh 技术也随之激增。问题是,转向 service mesh 的开发人员必须选择一个供应商,并直接对接其 API。他们被束缚在了某种 service mesh 的实现中。如果没有通用接口,开发人员就会失去可移植性以及灵活性,并且从广泛的生态系统中获益的能力也会受限。
SMI 提供了如下功能:

  • Kubernetes 网格的标准界面
  • 最常见的网格用例的基本功能集
  • 随着时间的推移灵活地支持新的网格功能
  • 为生态系统提供利用网格技术进行创新的空间

SMI 覆盖了哪些功能

我们与 HashiCorp,Buoyant,Solo.io 以及其他公司合作,为企业级客户所希冀的三大 service mesh 功能构建初始规范:
1.流量策略 – 应用跨服务应用身份和传输加密等策略
2.流量遥测 – 捕获关键指标,如错误率和服务之间的延迟
3.流量管理 – 在不同服务之间转移和加权流量
这些只是我们希望通过 SMI 初步实现的功能。由于开发过程中有许多令人兴奋的网格功能,我们完全希望随着时间的推移,不断发展 SMI API,并期待通过新功能扩展当前规范。

SMI是如何工作的

Service Mesh Interface 背后的观点并非新创。它追寻 Ingress,Network Policy 和 CNI 等现有 Kubernetes 资源的足迹。与 Ingress 或 Network Policy 一样,SMI 不提供具体实现。相反,SMI 规范定义了一组通用 API,允许网格提供者提供自己的最佳实现。与 SMI 集成可以通过两种方式实现,工具和网格提供者可以直接使用SMI API,也可以构建运算符将 SMI 转换为原生 API。

“SMI 是 Linkerd 迈向 service mesh 大众化的一大步,我们很高兴能够向更多的 Kubernetes
用户提供简洁和易用的 Linker 服务。” — William Morgan,Linkerd 维护者
“对于跨技术和生态系统协作来说,接口的标准化对确保最佳用户体验至关重要。凭借这种精神,我们很高兴能与微软和其他公司合作开发 SMI
规范,并已经通过 Service Mesh Hub 和 SuperGloo 项目提供了首个参考实现,“ — Solo.io
创始人兼首席执行官,Idit Levine。

生态系统友好

对于 service mesh 等早期技术,我们必须为其生态系统创造创新空间,并探索解决客户问题的不同方法。随着 service mesh 技术的不断发展,SMI 提供的互操作性将有助于新兴工具和实用程序与现有网格供应商集成,而不是单独集成每个网格,像 flagger 和 SuperGloo 这样的工具就可以与 SMI 集成,从而获得跨网格功能。

VMware 服务网络首席架构师 Sushil Singh 表示:“service mesh
的兴趣和动力已达到了行业需要在一系列标准上进行协作的程度,这些标准可以帮助确保他们的成功。” “Service Meshe 为应用程序的未来提供了丰富的基础功能。现在是制定标准 API 的最佳时机,这些 API 可以简化 service mesh 技术的消耗和功能,从而实现健康的生态系统。VMware 很高兴参与这项非常重要的工作。“
“客户和社区成员都在寻求一种方法来更好地标准化 service mesh 的配置和操作。随着Service Mesh
Interface(SMI)的出现,我们认为这是一种可以帮助我们最大化 Red Hat OpenShift
客户选择和灵活性的方法。这种灵活性使用户能够优先考虑实现细节的功能“ — Brian Redbeard Harrington,Red Hat service mesh 首席产品经理。**

原文链接: Hello Service Mesh Interface (SMI): A specification for service mesh interoperability
(翻译: 李加庆