OpenFunction 是一個開源的雲原生 FaaS(Function as a
Service,函數即服務)平台,旨在幫助開發者專注于業務邏輯的研發。在過去的幾個月裡,OpenFunction 社群一直在努力工作,為 OpenFunction 0.7.0 版本的釋出做準備。今天,我們非常高興地宣布
OpenFunction 0.7.0 已經正式釋出了!感謝社群各位小夥伴的貢獻和回報!
OpenFunction 0.7.0 為您帶來了許多新功能,包括新增 OpenFunction Gateway 作為同步函數入口、 新增 Java 和 NodeJS 同步函數和異步函數支援、新增 Helm 安裝方式。
同時, 我們對 OpenFunction 依賴的元件都進行了版本更新。
OpenFunction Gateway
OpenFunction 從 0.5.0 開始采用 Kubernetes Ingress 來提供同步函數的統一入口,并且必須安裝一個 nginx-ingress-controller。
在 OpenFunction 0.7.0 中,我們基于 Kubernetes Gateway API 實作了 OpenFunction Gateway 替代之前基于
Kubernetes Ingress 的 Domain 來通路同步函數的方法。
OpenFunction Gateway 提供了更強大、更靈活的函數網關,包含以下特性:
- 可以選擇任意支援Kubernetes Gateway API 的Gateway 實作,如 Contour, Istio, Apache APISIX, Envoy Gateway 等。
- 可以選擇安裝預設的 Gateway 實作(Contour), 此時 OpenFunction 将自動建立 Kubernetes Gateway。OpenFunction 也可以使用您環境中現有的 Kubernetes Gateway,隻需要您在 OpenFunction Gateway 中引用它即可。
- 可以自定義通路函數的模式,如基于
的路由模式和基于host
的路由模式,在您沒有定義函數路由時 OpenFunction 預設提供基于path
的路由模式來通路函數。host
- 可以在函數路由部分自定義流量應該如何到達函數,OpenFunction 基于Gateway API HTTPRoute 為您提供了強大的函數路由功能。
- 可以通過函數外部位址在叢集外部通路函數,隻需要在OpenFunction Gateway 中配置好叢集外部可以通路的域名即可(同時支援 Magic DNS 和 Real DNS)。
- 現在 OpenFunction 将流量直接轉發到 Knative Revision 而不再經過 Knative 的 Gateway。 如果不需要直接通路 Knative 服務, 您可以忽略 Knative Domain 相關的錯誤。
将來,OpenFunction 将支援在函數的不同版本之間進行流量分發。
多語言支援
OpenFunction 社群一直在努力完善多語言的支援:
-
Go
functions-framework-go 釋出了 v0.4.0,支援在一個函數中定義多個子函數,并且可以通過不同的 Path 和 Method 分别調用。
-
Java
functions-framework-java 現在支援同步函數和異步函數。
-
NodeJS
functions-framework-nodejs 釋出了 v0.5.0, 支援同步函數和異步函數,并且支援同步函數觸發異步函數。
我們将在近期釋出functions-framework-nodejs v0.6.0,為您帶來更多功能比如插件機制、與 SkyWalking 內建等。
OpenFunction 将會在後續版本支援更多語言如 Python、Dotnet 等。
Helm 安裝 OpenFunction 及所有依賴元件
原來基于 CLI 安裝的方法已棄用。
現在 OpenFunction 支援通過 Helm 安裝 OpenFunction 及所有依賴的元件,相比原來通過 CLI 安裝的方式更加雲原生, 并且解決了部分使用者通路 Google Container Registry(gcr.io)鏡像受限的問題, 并且将長期維護。
TL;DR
helm repo add openfunction https://openfunction.github.io/charts/
helm repo update
helm install openfunction openfunction/openfunction -n openfunction --create-namespace
依賴元件更新
Components | OpenFunction 0.6.0 | OpenFunction 0.7.0 |
Knative Serving | 1.0.1 | 1.3.2 |
Dapr | 1.5.1 | 1.8.3 |
Keda | 2.4.0 | 2.7.1 |
Shipwright | 0.6.1 | 0.10.0 |