網易數帆 Envoy Gateway 實踐之旅:堅守 6 年,崢嶸漸顯

  • 2022 年 5 月 30 日
  • 筆記

服務網格成熟度不斷提升,雲原生環境下流量處理愈發重要, Envoy Gateway 項目於近日宣布開源,「旨在大幅降低將 Envoy 作為 API 網關的使用門檻」,引發了業界關注。2018 年 11 月,Envoy 成為 CNCF 畢業項目,開始作為一款高性能數據和服務代理軟體為從業者所知,但此後兩三年,中國 API 網關實踐中,選型 Envoy 仍是一條較為孤獨的道路。

作為中國雲原生實踐的先行者,網易數帆輕舟雲原生團隊早在 2017 年就探索基於 Istio 和 Envoy 實現服務網格平台及 API 網關,並於 2019 年完成該體系在嚴選電商業務的成熟應用。踐行及今 6 載,在企業側,網易數帆 Envoy Gateway 承載了互聯網、銀行、證券、能源等多行業頭部企業核心業務流量,經受了百億級日流量的考驗;在社區側,團隊於 2021 年開源了基於 Istio 和 Envoy 研發的 Hango Gateway,2022 年誕生了中國唯一的 Envoy Maintainer。

在此過程中,網易數帆也多次分享了 Envoy Gateway 相關實踐,並曾於 2020 年就網關技術路線展開討論,力陳 Envoy Gateway 的優勢,與社區同道共同推動並見證 Envoy 不斷成熟。網易數帆認為,Envoy Gateway 的開源,為 Envoy 成為標準數據面組件帶來了一個良好的開端。

網易數帆雲原生架構選定 Envoy

在雲原生技術體系建設中,網易數帆非常重視統一技術棧,認為這樣才能降低研發成本,真正發揮雲原生的優勢。網格網關體系之所以選擇 Envoy,不僅僅是因為 Envoy 是 Istio 數據面默認的 Sidecar,更因為它是功能與性能都非常優秀的「雙優生」。此後在網易嚴選業務的實踐,驗證了這一選擇的正確性。

網格側,網易數帆認為,Istio + Envoy 對微服務流量和服務治理的良好抽象,帶來了統一服務化層技術棧的曙光。同時 Envoy 擁有不低於 Nginx 的轉發性能,但在治理能力和控制能力(UDPA)方面,卻比 Nginx 靈活得多。在網易嚴選當時的測試中,採用 eBPF/xDP(sockops),優化路徑為 SVC <-> Envoy,延遲性能提升10-20%。

詳見:

網易嚴選網關的升級,則考慮輕舟微服務體系的無縫融合以及主流的產品實現,同樣採用 Envoy 數據面組件,負責南北向數據流量的代理、路由、治理、遙測等;通過 filterchain 進行擴展,支援基於 Lua、C++ 語言編寫插件,WASM 落地後支援多語言方式擴展;並通過 xDS 與控制面組件進行配置下發等動態控制。控制面則以 Istio Pilot 作為基本控制面組件,同時提供 API 層、控制台供用戶或第三方平台接入。

基於輕舟 Envoy Gateway 網易嚴選實現了:

  1. 網關管理平台復用,保證用戶習慣一致性。
  2. LUA 插件復用,方便擴展功能的無縫遷移。
  3. 函數級別路由能力的支援,為後續 FaaS 的引流鋪平了道路。

經過大規模業務生產落地,網易數帆更加體會到 Envoy 的先天優勢,並堅信 Envoy Gateway 是雲原生業務流量入口的標準技術方案:

  1. 較 HAProxy、Nginx 更豐富的功能
  2. 與 Nginx 相當,遠高於傳統 API 網關的性能
  3. 動態管控能力強,具備數據面標準 xDS 協議
  4. 天然親和容器環境
  5. 多語言擴展沙箱——WASM

性能方面,在網易數帆的測試中,Envoy 的 TPS 可以達到 12W 左右,而基於 Nginx 的 Kong,TPS 為 5W 左右。

到 2020 年,輕舟 Envoy Gateway 在網易多個核心業務大規模落地:

  • 網易傳媒(新聞)已經實現全站流量通過輕舟 Envoy Gateway 暴露
  • 網易嚴選已經實現上雲服務全部流量通過輕舟 Envoy Gateway 暴露
  • 網易有道、雲信、Lofter 等網易核心互聯網業務流量通過輕舟 Envoy Gateway 暴露

詳見:

Hango 開源,進入 CNCF Landscape

2021 年 8月,網易數帆開源了高性能、可擴展、功能豐富的雲原生 API 網關 Hango,並在之後再次從功能、性能、行業影響、技術趨勢和最佳實踐等方面全面解讀了 Envoy 技術路線的優勢,以及 Hango 的擴展設計和落地實踐。

簡而言之,Hango 數據面基於 Envoy 擴展,增強插件鏈,控制面基於 Istio 進行擴展,完成了微服務網關、七層負載均衡、Kubernetes Ingress 等多場景能力支援。如下是 Hango 網關插件鏈的數據流,通過創建 EnvoyPlugin CR,Slime 動態監聽聚合生成對應的 EnvoyFilter,完成對 Envoy filter chain 的動態擴展。

而 Hango 也獲得了雲原生從業者的認可,進入了 CNCF Landscape。

詳見:

展望未來,網易數帆致力於擴大輕舟雲原生體系「出圈」規模融入產業數字化,作為一個核心模組的輕舟 Envoy Gateway 也會加碼產業應用場景落地能力,如多集群高可用、協議轉換等金融場景剛需能力的增強。同時,輕舟 Envoy Gateway 的更多能力也會通過 Hango Gateway 開源出來。

持續貢獻,中國唯一 Maintainer 出爐

目前網易數帆輕舟團隊已累計向 Envoy 社區貢獻 60+ PR,超過 14,000+ 新增程式碼,覆蓋了 Envoy 的有狀態會話保持、Tracing 能力增強、Lua script 的支援和 Dubbo 治理能力增強等核心功能。

2022 年 3月 ,Envoy 社區邀請網易數帆雲原生專家、資深架構師王佰平成為社區 Maintainer——這是中國首位且唯一的 Envoy Maintainer,同時也是 Dubbo Extension Senior Maintainer,表明了社區對網易數帆持續貢獻的認可。

詳見:

Envoy Maintainer 助力解鎖 Envoy 新技能

在成為 Envoy Maintainer 之前,王佰平也積極通過文章、直播、線下分享的方式,多次解讀 Envoy 技術發展以及 Envoy Gateway 在內的相關實踐。

詳見:

最後,歡迎讀者朋友踴躍參與 Envoy 和 Hango 社區,共創雲原生的未來。


2022 年 5 月 13 日至 6 月 15 日,Loggie 社區面向雲原生、可觀測性及日誌技術愛好者發起 Loggie Geek Camp 開源協作活動,以 「性能之巔,觀測由我」 為主題,讓參與者感受開源文化的精髓與開源社區的創造力,共創雲原生可觀測性的未來。包括提供 user case、捕捉 bug、完善和提交 feature 等四類任務,提交內容通過社區審核即為成功,表現優異者將可獲得網易數帆及 Loggie 社區表彰。歡迎訪問鏈接了解和參與://sf.163.com/loggie