作者:腾讯云高级工程师 赵化冰
刚刚获悉,由腾讯云主导,联结百度、灵雀云、腾讯音乐、滴滴、政采网等多家合作伙伴发动的服务网格开源我的项目 Aeraki Mesh 通过了寰球顶级开源基金会云原生计算基金会(CNCF)技术监督委员会评定,正式成为 CNCF 沙箱我的项目 。这意味着 Aeraki Mesh 失去了云原生开源社区的认可,而且退出 CNCF 也 保障了我的项目的中立和开源凋谢,为 Aeraki Mesh 在云原生生态系统的进一步倒退迈出了动摇的一步。
Aeraki Mesh 退出 CNCF 的这个工夫点,恰好在 Istio 发表将 Istio 捐献给 CNCF 基金会不久。作为 Service Mesh 开源畛域的领军我的项目,Istio 受到了宽广开发者的欢送,退出 CNCF 标记着 Istio 和 K8s,Knative 三大云原生容器自动化框架纳入了同一个治理架构,Istio 和 CNCF 中其余的我的项目之间的单干将更为亲密顺畅,也为 Istio 成为 Service Mesh 畛域的事实标准扫清了最初的阻碍。然而 Istio 尽管弱小,但次要解决 HTTP 协定,将其余协定看做 TCP 流量,这是服务网格在产品落地时遇到的次要问题之一。在微服务中常常会应用到其余的协定,例如 Dubbo、Thrift、Redis,以及公有协定等。只应用 Istio 无奈对这些流量进行服务治理。Aeraki Mesh 提供了一种非侵入的、高度可扩大的解决方案来治理服务网格中的任何七层流量。Aeraki Mesh 在此工夫节点退出 CNCF,在 Istio 中为非 HTTP 协定提供了和 HTTP 协定等同的治理能力,减速了服务网格成熟商用和产品落地的过程。
Aeraki [Air-rah-ki] 是希腊语”大风“的意思。该命名的寓意是心愿 Aeraki Mesh 这股“大风”能帮忙 Istio 和 Kubernetes 在云原生的旅程中行得更快更远。Aeraki Mesh 的定位十分明确:只解决服务网格的非 HTTP 七层流量,将 HTTP 流量留给 Istio。(咱们认为现有的我的项目曾经足够优良,不用从新造轮子)。
Aeraki Mesh 架构
正如该图所示,Aeraki Mesh 由以下两局部组成。
Aeraki: Aeraki 工作在管制面,为运维提供了高层次的、用户敌对的流量治理规定,将规定转化为 envoy 代理配置,并利用 Istio 提供的标准接口将配置推送给数据面的 sidecar 代理。Aeraki 还在管制面中充当了 MetaProtocol Proxy 的 RDS(路由发现服务)服务器。不同于专一于 HTTP 的 Envoy RDS,Aeraki RDS 旨在为所有七层协定提供通用的动静路由能力。
MetaProtocol Proxy: MetaProtocol Proxy 工作在数据面,是一个七层代理框架,为七层协定提供了罕用的流量治理能力,如负载平衡、熔断、路由、本地 / 全局限流、故障注入、指标收集、调用跟踪等等。咱们能够基于 MetaProtocol Proxy 提供的通用能力创立本人专有协定的七层代理。要在服务网格中退出一个新的协定,惟一须要做的就是实现 编解码器接口(通常只需数百行代码)和几行 yaml 配置。如果有非凡的要求,而内置的性能又不能满足,MetaProtocol Proxy 还提供了一个扩大机制,容许用户编写本人的七层过滤器,将自定义的逻辑退出 MetaProtocol Proxy 中。
MetaProtocol Proxy 中曾经反对了 Dubbo,Thrift,bRPC 和一系列公有协定。如果你正在应用一个闭源的专有协定,也能够在服务网格中治理它,只需为它编写一个 MetaProtocol 编解码器即可。
MetaProtocol Proxy 架构
MetaProtcolProxy 对七层协定进行了高度形象,提取了 Metadata 这个非常灵活的扩大机制,利用协定在解码过程中将协定中的要害属性填充到 Metadata 中,这些属性能够用于申请路由、限流等后续的七层 filter 解决。框架层将 Meatdata 作为通明的 key/value 值串进行解决,不须要了解协定的业务细节。该设计能够确保任何基于 MetaProtocol 开发的利用协定都能应用同一套管制面 API 进行治理,是 Aeraki 实现对 Dubbo、Thrift、bRPC 以及其余协定进行对立治理的根底。同时,MetaProtocolProxy 还提供了 Mutation 数据结构,用于在编码时对数据包进行批改,例如减少 / 批改申请头的内容。
下图是 MetaProtocolProxy 解决一个申请解决的过程:
MetaProtocol Proxy 申请解决流程
Aeraki Mesh 的次要特点:
- 和 Istio 无缝集成,是 Istio Ecosystem 集成举荐我的项目。您能够采纳 Istio + Aeraki Mesh 来构建一个能够同时治理 HTTP 和其余七层协定的全栈服务网格。
- 反对在 Istio 中治理 Dubbo、Thrift、Redis 等开源协定的流量。
- 反对在 Istio 中治理公有协定的流量,只需数百行代码,对 Istio 无任何改变。
- 反对申请级负载平衡,反对任意匹配条件的动静路由,全局和本地限流,流量镜像等弱小的七层流量治理能力。
- 提供丰盛的申请级性能指标,包含申请时延、谬误、数量等,反对分布式调用跟踪。
- 对 Istio,Envoy 等上游开源我的项目齐全无侵入,能够追随上游我的项目进行疾速迭代,充分利用上游我的项目新版本提供的新增能力。
Aeraki Mesh 曾经在央视频、腾讯音乐等大型项目中产品化落地,并通过了 2022 冬奥会线上大规模流量的实战测验。目前有多个产品正在接入测试中。百度、灵雀云、滴滴、政采云等多个合作伙伴曾经退出社区进行共建。
Aeraki Mesh 社区正在大力发展中,欢送大家退出!
装置试用: https://www.aeraki.net/zh/doc…
退出社区会议: https://www.aeraki.net/zh/com…
Star 一下: https://github.com/aeraki-mes…
Aeraki Mesh 产品落地实际:
Istiocon 2022 分享:Istio + Aeraki 在腾讯音乐的服务网格落地 | Aeraki Mesh
腾讯云原生分享:Areaki Mesh 在 2022 冬奥会视频直播利用中的服务网格实际 | Aeraki Mesh