6月,由腾讯云主导,联合百度、灵雀云、腾讯音乐、滴滴、政采云等多家合作伙伴发起的服务网格开源项目 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/docs/v1.0/quickstart/

加入社区会议https://www.aeraki.net/zh/community/#community-meetings

Star 一下https://github.com/aeraki-mesh/aeraki

Aeraki Mesh 产品落地实践

Istiocon 2022 分享:Istio + Aeraki 在腾讯音乐的服务网格落地 | Aeraki Mesh

腾讯云原生分享:Areaki Mesh 在 2022 冬奥会视频直播应用中的服务网格实践 | Aeraki Mesh

关于我们

更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~

福利:

①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

③公众号后台回复【白皮书】,可获得《腾讯云容器安全白皮书》&《降本之源-云原生成本管理白皮书v1.0》

④公众号后台回复【光速入门】,可获得腾讯云专家5万字精华教程,光速入门Prometheus和Grafana。

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

Aeraki Mesh正式成为CNCF沙箱项目,腾讯云携伙伴加速服务网格成熟商用的更多相关文章

  1. 重磅 | 腾讯云服务网格开源项目 Aeraki Mesh 加入 CNCF 云原生全景图

    作者 赵化冰,腾讯云工程师,Aeraki Mesh 创始人,Istio member,Envoy contributor,目前负责 Tencent Cloud Mesh 研发工作. 摘要 近日,腾讯云 ...

  2. 腾讯云即时通信 IM 服务 实例项目

    腾讯云即时通信 IM 服务  https://github.com/tencentyun/TIMSDK

  3. 腾讯云ubuntu下mysqli服务的开启

    腾讯云ubuntu下mysqli服务的开启 今天晚上搞了好久,在本地操作系统deepin下操作完全无需开启mysqli模块,自动就开启了.这次介绍一下服务器ubuntu下mysqli模块的开启. 首先 ...

  4. 基于腾讯云Serverless的HTTP服务探活函数

    本文基于 Golang 开发了一款简单易用的拨测云函数,入口函数与腾讯云 Serverless SDK 绑定.与目前腾讯云中默认的拨测函数不同的是, url-tester-func 支持非 200 响 ...

  5. GitHub pages+自定义域名(腾讯云域名)+cloudflare加速

    本人也是第一次走完整个流程,github pages当然一直有使用,创建也很简单,并且网上教程也比较多:然后是关于自定义域名的问题,自己以前使用过国外的免费域名,然后是直接修改就ok了,然后这次使用了 ...

  6. 腾讯云,搭建LAMP服务

    lamp (Web应用软件) 编辑 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被 ...

  7. 腾讯云-搭建 FTP 文件服务

    搭建 FTP 文件服务 目的:搭建认证登录的FTP具有读写权限 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...

  8. 腾讯首个CNCF沙箱开源项目

    作者 SuperEdge开发者.腾讯云容器产品中心边缘计算团队.腾讯开源生态管理协会 SuperEdge 进入 CNCF 沙箱 2021 年 9 月 14 日,云原生分布式边缘容器系统 SuperEd ...

  9. 重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目

    摘要:4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目. 4月7日,云原生计算基金会(CNCF)宣布,由华为云捐献的业界首个 ...

随机推荐

  1. LC-24

    [24. 两两交换链表中的节点](https://leetcode-cn.com/problems/swap-nodes-in-pairs/) 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的 ...

  2. JavaWeb学习day6-Response初学

    web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpSevletRequest对象,代表响应的一个HttpSevletResponse 如果要获取客户端请求过来的数据, ...

  3. 关于Electron框架应用的安全测试

    Electron框架应用的安全测试 0.Electron相关简介 electron.js是一个运行时框架,它在设计之初就结合了当今最好的Web技术,核心是使用HTML.CSS.JavaScript构建 ...

  4. ArcGIS使用技巧(二)——数据恢复

    新手,若有错误还请指正! ArcGIS工程文件中图层的数据源位置移动之后,会显示红叹号(图1),需要进行数据恢复,就体现出之前所说的勾选"Store relative pathnames t ...

  5. Sliding Window - 题解【单调队列】

    题面: An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving fr ...

  6. 一行代码让你的项目轻松使用Dapr

    介绍 Dapr简化了云原生开发,让开发可以把焦点放在应用的业务逻辑上,从而让代码简单.可移植,那作为一个.Net开发者,我们也希望项目可以快速用上dapr,那究竟应该如何做呢? Dapr提出了Side ...

  7. 标准输入输出() & 打印流 &配置文件

    public static void main(String[] args) { //System 类 的 public final static InputStream in = null; // ...

  8. [AcWing 788] 逆序对的数量

    点击查看代码 #include<iostream> using namespace std; typedef long long ll; const int N = 1e5 + 10; i ...

  9. MVC 的dao层、service层和controller层

    1.dao层 dao层主要做数据持久层的工作, 负责与数据库进行联络的一些任务都封装在此 ,dao层的设计 首先 是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模 ...

  10. Ansible的参数介绍

    安装完成ansible后查看ansible的参数:ansible -h ansible 命令格式:Usage: ansible <host-pattern> [options] ansib ...