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

語言: CN / TW / HK

服務網格成熟度不斷提升,雲原生環境下流量處理愈發重要, 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。

詳見:

持續貢獻,國內唯一 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 在內的相關實踐。

詳見: