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