微服務(wù)架構(gòu)的興起,使得 API 的數(shù)量呈現(xiàn)爆炸式的增長。為了能高效地管理這些規(guī)模龐大的 API,API 網(wǎng)關(guān)開始在技術(shù)領(lǐng)域大展拳手。
云原生時代下,企業(yè)逐漸向云上遷移,越來越多的應(yīng)用和服務(wù)都在進行容器化改造,服務(wù)之間的流量也開始爆發(fā)性的增長,用戶除了需要 API 網(wǎng)關(guān)提供請求代理、熔斷限流、審計監(jiān)控等常規(guī)能力外,更多開始關(guān)注云原生兼容性、支撐場景的多樣性,以及更好的性能及穩(wěn)定性。在這樣的背景下,以 Apache APISIX 和 Kong 等為代表的云原生 API 網(wǎng)關(guān)項目得到了越來越多開發(fā)者的青睞。
2022 年 9 月 28 日 Kong 發(fā)布了 3.0 GA 版本,新版本中新增了一些功能及性能上的提升。9 月 21 日,Apache 軟件基金會的頂級項目 APISIX 也發(fā)布了 3.0 版本預(yù)覽版,介紹了生態(tài)和功能方面的 10 大亮點。
本文就讓我們來詳細分析下這兩個流行的開源 API 網(wǎng)關(guān)項目的全新版本,看看這些更新細節(jié)的背后透露出哪些值得大家關(guān)注的趨勢。
亮點匯總
Kong Gateway 3.0 亮點 | ||||||
亮點 | 適用版本 | 類別 | 目標用戶 | 解決的問題 | APISIX 是否支持 | 備注 |
FIPS 140-2 安全標準 | 企業(yè)版 | 合規(guī) | 北美金融企業(yè)和政府 | 合規(guī)性 | 不支持 | 不適用 |
密鑰管理 | 開源版、企業(yè)版 | 合規(guī) | 金融企業(yè) | 合規(guī)性及安全性 | 支持 |
APISIX (2021.12) :feat(vault): vault lua module, integration with jwt-auth authentication plugin Kong (2022.2):feat(vaults) adds vaults beta support to kong |
插件功能排序 | 企業(yè)版 | 易用 | 有復(fù)雜場景的大中型企業(yè) | 讓企業(yè)使用插件時更靈活 | 支持 |
APISIX(2022.6):feat: allows users to specify plugin execution priority Kong (2022.7):feat(plugins) add support for ordering |
Kong Manager 3.0 管理面板 | 企業(yè)版 | 易用 | 沒有太多技術(shù)團隊的大中型企業(yè) | 幫助企業(yè)用戶更好地管理 API | 支持 | 不適用 |
深度支持Websocket | 企業(yè)版 | 功能 | 深度使用Websocket 的企業(yè)用戶 | 校驗 Websocket scheme,限制Websocket frame 大小 | 部分支持 |
Kong(2016.12):feat(proxy) supports websockets by subnetmarco · Pull Request #1827 · Kong/kong APISIX(2020.1):feature: upstream support websocket enable |
支持 OpenTelemetry | 開源版、企業(yè)版 | 功能 | 業(yè)務(wù)調(diào)用鏈復(fù)雜的大中型企業(yè) | 可觀測性 | 支持 |
APISIX (2022.1):feat: add opentelemetry plugin Kong(2022.6):feat(plugins) opentelemetry plugin |
性能改進 | 開源版、企業(yè)版 | 性能 | 云廠商,快速增長的 SaaS 廠商 | 降低服務(wù)器成本 | 支持 | Apache APISIX 從 2019 年開源以來,一直在性能上優(yōu)于其他的 API 網(wǎng)關(guān) |
新的路由引擎 | 開源版、企業(yè)版 | 性能 | 云廠商,快速增長的 SaaS 廠商 | 大量 API 場景下的性能問題,降低服務(wù)器成本 | 支持 |
APISIX(2019.8):feature: supported to use router lua-resty-radixtree Kong(2022.7):feat(router) new DSL based router support and tests fix |
Apache APISIX 3.0 亮點 | ||||
亮點 | 類別 | 目標用戶 | 解決的問題 | Kong 是否支持 |
全面支持 ARM64 架構(gòu) | 生態(tài) | 大規(guī)模上云的公司 | 降低成本 | 部分支持 |
新增 gRPC 客戶端 | 性能 | APISIX 自身優(yōu)化需求 | APISIX 自身優(yōu)化需求 | 不支持 |
更完善的服務(wù)發(fā)現(xiàn)支持 | 生態(tài)、功能 | 微服務(wù)化的企業(yè)需要 | 不支持 | |
新增 xRPC 框架 | 生態(tài)、功能 | 互聯(lián)網(wǎng)公司 | 降低服務(wù)器成本 | 不支持 |
支持更多四層可觀測性 | 功能 | 業(yè)務(wù)調(diào)用鏈復(fù)雜的大中型企業(yè) | 可觀測性 | 不支持 |
全面支持 Gateway API | 生態(tài) | 互聯(lián)網(wǎng)公司 | 企業(yè)用戶更好的管理 API | 支持 |
集成更多生態(tài)(如 OpenFunction, ClickHouse, Elasticsearch, CAS) | 生態(tài)、功能 | 互聯(lián)網(wǎng)公司 | OSS、AWS Secrets Manager 和 Hashi Corp Vault(商業(yè)版)的環(huán)境變量 | 不支持 |
新增 AI 平面 | 智能 | 互聯(lián)網(wǎng)公司 | 大量 API 下的性能問題,并且降低服務(wù)器成本 | 不支持 |
亮點與趨勢解析
Kong Gateway
在上文匯總的 Kong Gateway 3.0 亮點中(結(jié)合 APISIX 的一些功能支持),主要體現(xiàn)了以下幾個趨勢。
首先是 Kong 在金融領(lǐng)域的安全和合規(guī)性上的投入比較大。這點可以從其對 FIPS 140-2 的支持和密鑰管理兩個方面看出來。
符合 FIPS 140-2:FIPS 140-2 是北美金融企業(yè)和政府用于批準加密模塊的計算機安全標準。Kong Gateway 3.0 企業(yè)版基于 BoringSSL 進行構(gòu)建,后續(xù) Kong 的插件還會基于此標準進行兼容,從而使Kong 的核心能基本滿足 FIPS 140-2 的要求。Kong 對 FIPS 140-2 的支持,體現(xiàn)了公司戰(zhàn)略層面的發(fā)展階段:歷經(jīng)七年的變化更迭,Kong 逐漸放眼于付費型企業(yè),傾向于滿足金融企業(yè)和政府的需求。
密鑰管理:該功能目標群體同樣是金融企業(yè),Kong Gateway 3.0 允許用戶將敏感信息安全地存儲在 AWS Secrets Manager 和 HarshiCorp Vault 中,同時 Kong 在運行時能訪問這些外部機密管理器,這樣一來,針對一些有高要求的安全需求群體,實現(xiàn)了更高級別的安全保護。
其次 Kong Gateway 3.0 開始進行更針對性能層面的提升,這主要得益于以下兩點。
在路由層面增加了一層哈希緩存,這在性能評測的場景下,會得到較大的提升。但當 UR 地址每次都變換時,這個緩存就失效了。詳情可參考相關(guān)代碼鏈接 atc.lua。
用 Rust 實現(xiàn)了一個全新的路由引擎,使用 DSL 來增加路由層面的表達力。在接收和發(fā)送 HTTP 請求時,可以編寫如下表達式 net.protocol == "https" && (http.method == "GET" || http.method == "POST")。而在請求路由與特定主機匹配的場景下,可以通過編寫如下表達式進行(http.host == "example.com" && http.headers.x_example_version == "v2" ) || (http.host == "store.example.com" && http.headers.x_store_version == "v1") 。
作為對比,Apache APISIX 在 2019 年 8 月使用Lua-resty-radixtree也實現(xiàn)了類似的路由表達式功能。APISIX 的表達式功能支持任意 NGINX 變量,同時運算符更加豐富。除了常見的數(shù)值、字符串比較,還支持正則、數(shù)組、IP 地址匹配等。
從這里也可以看到,APISIX 對于一些功能的規(guī)劃會更有前瞻性。從各亮點的 PR 鏈接中可以看出,除 Kong Manager 3.0 以外,大部分是 Apache APISIX 先實現(xiàn)的。
Apache APISIX
在 Kong Gateway 3.0 發(fā)布的前一周,開源項目 Apache APISIX 發(fā)布了 3.0 預(yù)覽版,其中涉及多項功能亮點,在上文中僅選取了最主要的八個要點進行列舉(這八大亮點在開源版本中均有所呈現(xiàn),主要側(cè)重于生態(tài)和功能方面的改進)。
從匯總的亮點可以看到,Apache APISIX 3.0 版本主要針對生態(tài)和功能層面進行了優(yōu)化。從 Apache APISIX 本身的演進規(guī)劃來看,主要涉及以下兩個重點:
增加 AI 平面。在數(shù)據(jù)平面和控制平面之外,Apache APISIX 新增了 AI 平面,通過對于 API 流量和配置的學習與分析,減輕開發(fā)者和維護者的使用和運維壓力。比如以下兩個場景就可以通過 AI 平面進行自動優(yōu)化:
發(fā)現(xiàn)沒有身份認證的 API,并給出風險提示;
對于只配置了身份認證等 Access 階段插件的 API,自動跳過 log 等不必要的階段,加快處理速度。
AI 平面給流量處理帶來了新的可能性,在后續(xù)使用過程中,類似上游服務(wù)自動熱身、安全威脅發(fā)現(xiàn)等都可以通過 AI 平面來進行處理。
全面支持 ARM64:ARM64 已經(jīng)成為云廠商非常主流的服務(wù)器架構(gòu)選擇。從 AWS Graviton 到 GCP Tau T2A,各個云廠商已經(jīng)開始推出基于 Arm 架構(gòu)的服務(wù)器。Apache APISIX 對 ARM64 做了全面的 CI 回歸測試,確保用戶在 Arm 架構(gòu)下運行 Apache APISIX 仍能流暢運行各種功能。對此,用戶非常關(guān)注,關(guān)于 ARM 架構(gòu)與 GCP、AWS 性能對比的文章在 Hacker
News 上收到了近百條評論。
可以看到,APISIX 在保證性能的同時,也在積極擴展周邊生態(tài),利用自身開源項目的優(yōu)勢去擁抱更多優(yōu)秀的產(chǎn)品與項目。
總結(jié)
從以上兩個產(chǎn)品大版本的更新細節(jié)匯總與分析中,我們可以看到:
Kong Gateway 3.0 版本的更新功能開始逐漸傾向于企業(yè)版,側(cè)重政府、金融業(yè)以及對安全合規(guī)更關(guān)注的大型企業(yè)。整體涉及在合規(guī)、易用性、功能與性能等方面進行了拓展。
Apache APISIX 3.0 版本推出的所有功能都是開源的,在架構(gòu)層面進行創(chuàng)新與迭代的同時,也在積極關(guān)注生態(tài)和新技術(shù)的探索,致力讓所有用戶都能利用 APISIX 發(fā)揮更優(yōu)秀的價值。
作為 API 網(wǎng)關(guān)產(chǎn)品的佼佼者,未來 Kong 和 Apache APISIX 會如何迭代和發(fā)展,讓我們拭目以待。
審核編輯:湯梓紅
-
API
+關(guān)注
關(guān)注
2文章
1484瀏覽量
61811 -
Apache
+關(guān)注
關(guān)注
0文章
64瀏覽量
12448 -
云原生
+關(guān)注
關(guān)注
0文章
241瀏覽量
7939
原文標題:庖丁解牛:Apache APISIX 3.0與Kong 3.0功能背后的趨勢
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論