隨著云原生架構的普及,微服務與容器化部署成為現代應用開發的主流范式。在這一背景下,服務網關作為流量入口與治理的關鍵組件,其重要性日益凸顯。網易作為國內領先的互聯網技術公司,積極擁抱云原生技術棧,并基于Envoy代理深度實踐,構建了高性能、高可用的云原生API網關,以此為核心支撐其復雜的數據處理服務。
一、 技術選型:為何選擇Envoy?
Envoy是一款由Lyft開源的高性能C++分布式代理,專為云原生應用設計。網易選擇Envoy作為網關數據平面的核心,主要基于以下幾點考量:
- 高性能與低延遲:Envoy采用非阻塞、事件驅動的架構,能夠高效處理海量并發連接與請求,滿足數據處理服務對吞吐量和響應時間的嚴苛要求。
- 動態配置與熱更新:通過xDS API(如CDS、EDS、LDS、RDS),Envoy可以實現配置的動態發現與熱加載,無需重啟即可實現服務發現、路由規則、負載均衡策略的實時更新,極大地提升了網關的運維敏捷性和服務可用性。
- 豐富的可觀測性:內置了詳盡的統計數據、分布式追蹤和日志記錄能力,為網關及后端數據處理服務的監控、診斷與性能優化提供了強大支持。
- 強大的可擴展性:通過Filter Chain機制,可以靈活插入各種L4/L7過濾器,輕松實現認證、限流、熔斷、請求/響應轉換等高級功能,完美適配數據處理流水線中的各種治理需求。
- 活躍的社區與生態:作為CNCF畢業項目,Envoy擁有龐大的社區和豐富的生態系統(如Istio),技術成熟度高,且有長期的發展保障。
二、 網關架構設計與核心功能
網易的云原生網關采用了經典的控制平面與數據平面分離架構。
- 數據平面:以Envoy集群為核心,承擔所有流入流量(南北向)和部分服務間流量(東西向)的代理、路由、安全、可觀測性等職責。針對數據處理服務的特點,網關重點強化了以下能力:
- 智能路由與負載均衡:基于HTTP頭部、路徑、查詢參數等實現細粒度路由,將請求精準分發至不同的數據處理微服務(如數據清洗、特征計算、模型推理等)。支持多種負載均衡算法,保障后端實例間的流量均衡。
- 協議轉換與編解碼:數據處理服務常涉及多種協議(如gRPC、HTTP/1.1、HTTP/2)。網關內置或通過定制過濾器實現了高效的協議轉換與消息編解碼,簡化了客戶端與異構后端服務的交互。
- 彈性與容錯:集成斷路器、異常點檢測、重試、超時控制等機制,有效隔離故障服務實例,提升數據處理鏈路的整體韌性。
- 安全與治理:集成統一的身份認證(如JWT驗證)、授權、請求限流(全局限流、基于標頭的限流)、防爬蟲等安全策略,為數據處理接口提供安全保障。
- 請求/響應轉換:在請求到達業務邏輯前或響應返回客戶端前,進行數據的聚合、過濾、格式轉換(如JSON到Protobuf),減輕后端服務的處理負擔。
- 控制平面:網易自研或集成開源方案,負責管理所有Envoy實例的配置。它聚合了服務注冊中心的信息、管理員配置的路由與安全策略,并通過xDS API統一下發至各個Envoy。控制平面還提供了豐富的管理界面,用于配置管理、監控告警和統計分析。
三、 在數據處理服務中的實踐與優化
將基于Envoy的網關應用于具體的數據處理業務場景時,網易團隊進行了一系列深度優化:
- 性能調優:針對高并發數據攝入場景,精細調整了Envoy的工作線程數、連接池大小、緩沖區等參數,并利用內核bypass等技術(如DPDK)進一步提升網絡I/O性能。
- 定制化Filter開發:針對特定的數據處理邏輯,開發了專用的Envoy過濾器。例如,開發了用于實時數據校驗、輕量級ETL(提取、轉換、加載)、請求審計等功能的過濾器,將通用處理邏輯下沉至網關層,實現了業務邏輯與非業務邏輯的解耦。
- 多維可觀測性集成:將網關的指標(如QPS、延遲、錯誤率)與Prometheus、Grafana深度集成;將訪問日志與分布式追蹤數據(通常使用Jaeger或SkyWalking)對接,實現了從網關入口到后端數據處理服務全鏈路的透明化監控與問題定位,尤其在排查數據流水線中的性能瓶頸時效果顯著。
- 藍綠部署與灰度發布:利用Envoy強大的流量分割能力,輕松實現數據處理服務新版本的上線驗證。可以通過權重將部分生產流量路由到新版本實例,進行灰度測試,待驗證無誤后再完成全量切換,極大降低了發布風險。
- 與Service Mesh融合:在更復雜的微服務架構中,該網關作為南北向流量入口,與內部基于Istio(數據平面同樣為Envoy)的Service Mesh協同工作,形成了統一的流量治理體系,實現了內外部流量策略的一致性管理。
四、 收益與
通過基于Envoy構建云原生網關并應用于數據處理服務,網易獲得了顯著的收益:
- 提升開發效率:后端數據處理團隊可以更專注于核心業務邏輯,將流量管理、安全、可觀測性等非功能需求交由網關統一處理。
- 增強系統穩定性與韌性:強大的彈性功能和對故障的快速隔離能力,保障了數據處理服務SLA。
- 優化資源利用率與性能:高效的代理與智能路由降低了后端服務的負載,整體系統吞吐量得到提升。
- 強化運維能力:動態配置、完善的監控與灰度發布能力,使得運維更加自動化、可視化與可控。
Envoy憑借其卓越的性能、靈活性與擴展性,為構建現代云原生網關提供了堅實的數據平面基礎。網易的實踐表明,將其與數據處理服務深度結合,能夠有效應對高并發、低延遲、高可用的業務挑戰,是驅動數據驅動型業務穩健前行的重要技術基石。隨著WebAssembly等新技術在Envoy中的深入應用,網關的擴展性與安全性將得到進一步增強,為云原生數據處理架構開辟更多可能。