微服務網關Kong 1.0正式發佈!提供100+項功能

今天,我們很高興地發佈Kong 1.0 GA——一個可擴展、快速、開源的微服務API網關,用於管理、保護和連接混合和雲原生架構。Kong位於服務之前,並可通過插件進行擴展,包括身份驗證、流量控制、可觀察性等。

經過多年的開發,成千上萬的用戶在生產環境中使用了Kong,我們增加了衆多重要的功能,並進行了大量的修復,讓Kong變得更快、更靈活、更具彈性。

服務網格

用戶現在不僅可以將Kong作爲API網關部署,還可以作爲獨立的service-mesh代理。Kong插件提供了與服務網格相關的關鍵功能,可以與其他雲原生技術集成,包括Prometheus、Zipkin、健康檢查、金絲雀部署、藍綠部署,等等。

藉助邊車代理提供的跟高的可見性、安全性和彈性,服務網絡有助於解決微服務所面臨的一些挑戰。除了這些好處之外,與其他供應商相比,Kong的服務網絡提供了一些關鍵優勢,所有這些優勢都源於我們注入了與邊緣邊車代理相同的運行時。

Mutual TLS和TCP

在1.0版本中,Kong集羣創建了一個Certificate Authority,Kong節點可以用它來建立Mutual TLS身份驗證。此外,Kong現在可以路由原始TCP流量,這意味着Kong現在可以平衡來自郵件服務器和其他基於TCP的應用程序的流量,一直從L7到L4。

gRPC

除了REST之外,Kong 1.0現在還支持gRPC協議。gRPC基於HTTP/2,爲希望以低開銷和低延遲連接東西向流量的Kong用戶提供了另一種選擇,有助於用戶在混合環境中進行更多網格部署。

新的遷移框架

Kong 1.0引入了一個新的數據庫抽象對象(Database Abstraction Object,DAO),它可以簡化從一個數據庫模式到另一個數據庫模式的遷移,並且停機時間幾乎爲零。新的DAO允許用戶一次性升級他們的Kong集羣,無需手動升級每一個節點。

插件開發套件(PDK)

PDK是一組Lua函數和變量,自定義插件可用它們實現自己的邏輯。儘管它早在0.14.0中就已發佈,不過1.0版本的變更可以保證使用PDK構建的插件與1.0及更高版本兼容。與從頭開始編寫插件相比,它提供了很多優勢,其中包括:

標準化

所有Kong插件都需要一系列標準功能,而PDK提供了這些開箱即用的功能,既節省了插件開發人員的時間,又保證了使用PDK開發的插件具有相似的行爲(相同的解析規則、相同的錯誤等),使它們更易於使用。

可用性

PDK的接口比ngx_lua API更容易使用。PDK允許用戶將某些插件操作(例如日誌記錄或緩存)與其他插件隔離開。

兼容性

PDK的語義版本化可以保持向後兼容。在未來,插件將能夠鎖定它們所依賴的PDK版本。

自由移動服務

藉助Kong,你可以立即將在邊緣使用的功能擴展到網格中。將Kong部署在與容器相同的主機上,就可以輕鬆地將容器中的服務移到網格中。

無縫連接

將網格中的服務與所有環境、平臺和供應商的服務相連接。在不修改服務代碼的情況下,使用Kong來彌合雲原生設計與傳統架構模式之間的差距。

健壯的插件庫

我們的插件架構爲用戶提供了無與倫比的靈活性。Kong插件提供了開箱即用的關鍵功能,並支持與其他雲原生技術的無縫集成,包括Prometheus、Zipkin和其他很多技術。插件在本地與每個服務運行在一起,不需要額外的網絡跳轉到另一個組件。

低延遲

Kong及其插件針對性能進行了優化。其他平臺可能會在容器或網格的服務之間引入延遲,而我們引入的延遲不到一毫秒。

數據平面與控制平面的分離

Kong 1.0允許用戶在配置中指定單獨的控制平面和數據平面。以前,你需要單獨配置每個集羣的數據平面和控制平面,現在你可以在同一個地方配置,然後反映在多個Kong集羣中。獨立的數據平面和控制平面配置讓Kong用戶可以更好地控制大型部署。這種配置分離讓部署變得更加安全,因爲你可以將Kong的配置放在防火牆後面,僅暴露出數據平面。

圖片

Runloop性能改進

爲了確保數據平面的性能能夠滿足服務網格和其他去中心化架構的需求,我們對插件Runloop進行了一些改進。

預讀取執行

插件現在可以在預讀取階段執行代碼。Kong用戶可以在建立初始TCP連接時初始化插件來提高性能。

網關與網格配置

所有插件都有一個新字段run_on,用於在服務網格和“常規API網關”模式下控制插件的激活。這樣可以更精細地控制插件的活動,避免冗餘並進一步提高性能。

AWS Lambda和Azure FaaS

Kong 1.0還改進了與AWS Lambda和Azure FaaS的交互,包括Lambda Proxy Integration和Azure Functions插件的改進,用以過濾掉在將HTTP/1.1響應代理到HTTP/2客戶端時不被HTTP/2允許的標頭。

100多項功能和修復

你可以在Changelog中找到所有Kong版本的變更列表。1.0版本包含了很多重大變更,因此在升級時請務必閱讀1.0版本的升級路徑

Kong的未來

雖然我們現在承諾Kong會保持穩定和向後兼容,但我們仍然有很長的路要走。我們很高興繼續與你一起構建Kong項目和社區!我們非常感謝社區爲實現這一里程碑提供的所有支持,我們期待着繼續共同構建和成長。

自從四年前開源Kong以來,來自世界各地的數百名貢獻者對Kong代碼庫進行了無數次的改進,這些改進讓我們迎來了1.0版本。我們十分感謝Kong的用戶和貢獻者。我們最初在開源Kong時,並沒有想到它的社區會有如此驚人的增長,並且一直在持續!

Kong CTO Marco Palladino說,“在開發Kong時,我們懷揣着一個混合世界的願景,而Kong 1.0代表了實現這一願景的關鍵一步。我們與社區一起對平臺架構進行了重大變更,包括支持服務網格的能力,這將使我們的用戶能夠處理任何跨供應商、環境和生態系統的部署。在未來,我們將會更加深入支持更多新興的生態系統”。

英文原文:https://konghq.com/blog/kong-1-0-ga/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章