全部產品
Search
文件中心

Microservices Engine:Nginx Ingress、MSE Ingress網關對比

更新時間:Aug 24, 2024

當前 ACK 託管版、ACK Serverless 叢集或ACS 叢集支援Nginx Ingress和MSE Ingress作為入口網關,但是兩者之間的功能特性和應用情境等均有所不同。本文通過產品定位、產品架構、效能、基礎路由等幾個維度對比,協助您快速瞭解兩者之間的差異以便您選擇合適的Ingress網關。

網關對比

類型

Nginx Ingress

MSE Ingress

產品定位

  • 七層處理能力與豐富的進階路由功能

  • 自有組件,可根據需求高度定製化

  • 傳統流量網關、微服務網關和安全網關三合一,通過硬體加速、WAF本地防護和Wasm外掛程式市場等功能,協助使用者構建一個低成本、高效能、高擴充、高整合的網關中介軟體

  • 支援多種服務發現模式和多種服務灰階策略,包括金絲雀、A/B Test、藍綠和自訂流量比例分發

  • 聚焦HTTP和HTTPS七層應用協議處理且提供豐富的進階路由功能

  • 專門面嚮應用層負載情境,與容器深度整合,網關轉寄請求時直連後端Pod IP

產品架構

  • Nginx + Lua外掛程式擴充

  • 手動設定合適的副本數和資源限制

  • Istiod + Envoy

  • 每個使用者使用各自獨享執行個體

效能

  • 效能依賴手動調優

  • 使用Lua指令碼支援了部分配置的熱更新,但Lua指令碼的大量使用對效能影響非常大

  • 啟用硬體加速後HTTPS效能提升約80%,結合OS與內部調優效能相比自建提升約40%

  • 相比開源Nginx Ingress在CPU 水位30~40%時TPS高出約90%

基礎路由

  • 根據訊息內容決定路由

  • HTTP標題改寫、重新導向、重寫和限速等

  • 根據訊息內容決定路由

  • HTTP標題改寫、重新導向、重寫、限速、跨域、逾時和重試等

  • 負載平衡除支援標準的輪詢、隨機、最小請求數和一致性Hash外,還支援預熱,即在指定時間視窗轉寄到後端某機器的流量逐步平滑遞增

營運能力

  • 使用者側組件維護

  • 通過配置HPA擴縮容

  • 需要主動配置規格調優

  • 全託管

  • 通過配置HPA擴縮容(研發中)

雲原生整合

使用者側組件,與阿里雲 ACK 託管版、ACK Serverless 叢集或ACS 叢集等Container Service結合使用

使用者側組件,與阿里雲 ACK 託管版、ACK Serverless 叢集或ACS 叢集等Container Service結合使用,且支援Nginx Ingress Annotation無縫轉換

典型應用情境

  • 網關高度定製化情境

  • 雲原生應用金絲雀藍綠髮布情境

  • 南北向流量情境,後端服務發現支援傳統註冊中心Nacos、K8s、DNS和固定IP多種模式

  • 東西向流量情境,支援混合雲、多資料中心和多業務域的內部互連,且可以與Service Mesh系統無縫整合

支援主流協議

  • HTTP

  • HTTPS

  • HTTP

  • HTTPS

協議轉換

不支援

  • HTTP轉換為Dubbo

  • HTTPS轉換為Dubbo

Ingress支援

支援Ingress

配置變更

  • 認證變更需要Reload進程,對長串連有損

  • 非認證變更使用Lua做到熱更新

  • Lua外掛程式變更需Reload進程

  • 配置熱更新

  • 認證熱更新

  • 採用List-Watch機制,配置變更准即時

  • Wasm外掛程式熱更新

服務治理

  • 服務發現支援K8s

  • 服務灰階支援金絲雀

  • 服務高可用支援限流

  • 服務發現支援K8s、Nacos、Eureka、DNS和固定IP

  • 服務灰階支援金絲雀、標籤路由。

  • 服務高可用整合AHAS,支援限流、熔斷和降級。

  • 服務測試支援服務Mock。

安全

  • HTTPS

  • 黑白名單

認證鑒權

  • BasicAuth

  • OAuth

  • BasicAuth

  • OAuth

  • JWT

  • OIDC

  • IDaas

  • 自訂認證

擴充性

Lua指令碼

  • Wasm外掛程式,可使用多語言編寫

  • Lua外掛程式(研發中)

可觀測能力

  • Access Log

  • Prometheus

生態整合

Nginx Service Mesh

Istio Service Mesh(事實標準)

總結

  • Nginx Ingress是基於開源Nginx構建的K8s Ingress網關,得益於Nginx的廣泛使用,Nginx Ingress也成為了K8s預設的入口網關,其提供了基礎的安全、路由及可觀測等能力。如果您的業務流量低、對安全、擴充性和穩定性要求低,且可以接受手工營運網關,Nginx Ingress可能會比較適合。

  • MSE Ingress基於阿里雲微服務引擎MSE的子產品雲原生網關構建的高效能、高擴充和高整合的Ingress網關,通過硬體加速、WAF本地防護和Wasm外掛程式市場等協助使用者構建一個低成本、高效能、高擴充和高整合的託管網關中介軟體,支援多種服務發現模式及多種服務灰階策略,在可觀測方面為使用者帶來一站式的Access Log、Tracing、Metrics及警示的全棧能力。如果您的業務流量高、對安全、擴充性和穩定性有一定要求,建議使用MSE Ingress作為入口網關。