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/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
關於我們
更多關於雲原生的案例和知識,可關注同名【騰訊雲原生】公眾號~
福利:
①公眾號後臺回覆【手冊】,可獲得《騰訊雲原生路線圖手冊》&《騰訊雲原生最佳實踐》~
②公眾號後臺回覆【系列】,可獲得《15個系列100+篇超實用雲原生原創乾貨合集》,包含Kubernetes 降本增效、K8s 效能優化實踐、最佳實踐等系列。
③公眾號後臺回覆【白皮書】,可獲得《騰訊雲容器安全白皮書》&《降本之源-雲原生成本管理白皮書v1.0》
④公眾號後臺回覆【光速入門】,可獲得騰訊雲專家5萬字精華教程,光速入門Prometheus和Grafana。
【騰訊雲原生】雲說新品、雲研新術、雲遊新活、雲賞資訊,掃碼關注同名公眾號,及時獲取更多幹貨!!