2022 年 4 月 27 日,青云科技容器團隊開源的函式即服務(FaaS: Function-as-a-Service)專案 OpenFunction 順利通過了云原生計算基金會 CNCF 技術監督委員會(TOC)的投票,正式進入 CNCF 沙箱(Sandbox)托管,這就意味著 OpenFunction 得到了云原生開源社區的認可,同時通過進入 Sandbox 可以進一步保障專案的中立性,開發者以及合作伙伴等都可以參與專案建設,共同打造新一代開源函式計算平臺,

這已經是青云科技容器團隊發起的第三個進入 CNCF 的專案了,早在 2021 年 7 月份青云科技就將 Fluent Operator 專案捐給 Fluent 社區成為 CNCF 子專案,大大降低了 Fluent Bit 和 Fluentd 用戶的使用門檻;同年 11 月份,負載均衡器插件 OpenELB 加入 CNCF Sandbox,幫助私有化環境更便捷地對外暴露服務,
目前可以在 CNCF Landscape 的 Serverless 版塊中找到 OpenFunction 專案,

專案介紹
OpenFunction 是一個現代化的函式即服務(FaaS: Function-as-a-Service)專案,它能夠幫助開發者專注于他們的業務邏輯,而不必擔心底層運行環境和基礎設施,用戶只需提交一段代碼,就可以生成事件驅動的、動態伸縮的 Serverless 作業負載,
OpenFunction 引入了很多非常優秀的開源技術堆疊,包括 Knative、Tekton、Shipwright、Dapr、KEDA 等,這些技術堆疊為打造新一代開源函式計算平臺提供了無限可能:
- Shipwright 可以在函式構建的程序中讓用戶自由選擇和切換鏡像構建的工具,并對其進行抽象,提供了統一的 API;
- Knative 提供了優秀的同步函式運行時,具有強大的自動伸縮能力;
- KEDA 可以基于更多型別的指標來自動伸縮,更加靈活;
- Dapr 可以將不同應用的通用能力進行抽象,減輕開發分布式應用的作業量,

從架構圖上可以看出,OpenFunction 包含了 4 個核心組件:
- Function : 用戶和函式打交道(函式的增刪改查)的唯一入口,包含了函式的 Build 和 Serving 階段的全部定義;
- Build : 用戶創建 Function 后,Function 生成相應的 Builder,用戶無須手動創建, Builder 通過 Shipwright 選擇不同的鏡像構建工具 Cloud Native Buildpacks, buildah, BuildKit, Kaniko, 并在 Tekton 的控制下將應用構建為容器鏡像;
- Serving : 用戶創建 Function 后,Function 生成相應的 Serving,用戶無須手動創建,Serving CRD 創建后,函式將被部署到不同的運行時中,可以選擇同步運行時或異步運行時,同步運行時可以通過 Knative Serving 或者 KEDA-HTTP (開發中)來支持,異步運行時通過 Dapr+KEDA 來支持,
- Events : 對于事件驅動型函式來說,需要提供事件管理的能力,由于 Knative Eventing 過于復雜,所以我們研發了一個新的事件管理框架叫 OpenFunction Events,
目前 OpenFunction 已經正式發布了 0.6.0 版本,與上一個版本相比,新增了許多值得關注的功能,包括函式插件、函式的分布式跟蹤、控制自動縮放、HTTP 函式觸發異步函式等,同時,異步運行時定義也被重構了,核心 API 也已經從 v1alpha1 升級到 v1beta1,值得一提的是,OpenFunction 團隊還與 Apache SkyWalking 社區合作,增加了 FaaS 平臺對函式可觀測性的支持,現在大家可以直接在 SkyWalking UI 上通過圖表來可視化 Serverless 函式的依賴關系并追蹤函式的呼叫,

詳情可參考這篇文章:OpenFunction 0.6.0 發布: FaaS 可觀測性、HTTP 同步函式能力增強及更多特性,
關于 OpenFunction 的實際使用案例可以參考下面兩篇文章:
- 以 Serverless 的方式實作 Kubernetes 日志告警
- 基于 OpenFunction 構建 FaaS 化的資料歸檔系統
社區生態
OpenFunction 自 2020 年 12 月開源并提交了第一個 commit,到 2021 年 5 月發布第一個 Release,僅一年多的時間就發布了 6 個大版本,吸引了 24 個 Contributors 和 480+ GitHub Stars,并且已經被馭勢科技、中國聯通、全象低代碼平臺等多個企業、組織和平臺采用,截止目前參與貢獻的企業和組織有:KubeSphere、馭勢科技、Apache SkyWalking、SAP、中國聯通、全象云,在此感謝每一位參與貢獻的社區小伙伴對 OpenFunction 的支持和幫助,同時也歡迎更多的開發者和用戶參與體驗和貢獻 OpenFunction,
除此之外,OpenFunction 團隊還受邀參加了一些上游社區的例會并向大家介紹過 OpenFunction 專案及其典型用例,包括 CNCF 的 TAG-runtime 會議和 Dapr 社區會議,尤其 Dapr 社區對 OpenFunction 青睞有加,Dapr 聯合創始人非常看好專案的發展前景,感興趣的同學可以觀看視頻進一步了解,OpenFunction 社區也正在和 Dapr 社區及 Quarkus 社區合作以實作將 Java 代碼編譯為 Native 程式在 Quarkus 環境中運行,可大幅降低 Java 程式的資源占用并極大地提升性能,接下來,OpenFunction 專案發起人霍秉杰還將在 5 月 10 日舉辦的 Apache SkyWalking 峰會介紹其與 Apache SkyWalking 在函式可觀測性領域的聯合方案,


未來規劃
得益于 CNCF 為專案提供了開源和中立的背書,OpenFunction 也將真正變成一個由 100% 社區驅動的開源專案,接下來,OpenFunction 將開發與實作如下功能,歡迎給社區提交需求與反饋:
- 支持更多語言的異步函式框架包括 Nodejs, Python, Java 和 .NET;
- 支持將 Java 函式編譯成 Native 程式運行在 Quarkus 環境中;
- 使用 KEDA 的 http-add-on 作為 Knative Serving 之外同步函式運行時的又一個選擇;
- 支持 OpenTelemetry 生態作為 SkyWalking 之外的另一個函式 Tracing 的方案;
- 增加 OpenFunction 控制臺;
- 實作 Serverless 作業流;
- 對在邊緣運行的函式有更好的支持;
- 預研基于 Pool 的冷啟動優化方案;
- 使用 WebAssembly 作為更加輕量的運行時,結合 Rust 函式來加速冷啟動速度,
持續開源開放
未來 KubeSphere 團隊將繼續保持開源、開放的理念,持續作為 OpenFunction 專案的參與方之一,推動國內和國際開源組織的生態建設,將 OpenFunction 社區培育成一個開放中立的開源社區與生態,與更多的函式計算平臺及上下游生態伙伴進行深度合作,歡迎大家關注、使用 OpenFunction 以及參與社區貢獻,
- ?? GitHub:https://github.com/openfunction/openfunction
- ?? 官網:https://openfunction.dev/
- ?? 社群:vx 搜索 kubesphere 加好友即可邀請您進群
最后附上 OpenFunction 專案重磅參與者與關注者對 OpenFunction 的寄語:
吳晟
Apache SkyWalking 創始人
我很高興和興奮看到 OpenFunction 順利加入 CNCF,作為一個僅一年多的年輕專案,這是一個專案從原型走向穩定,多元和成熟程序中的重要里程碑,作為 Apache SkyWalking 的一員,我有幸參加了 SkyWalking v9 迭代程序中與 OpenFunction 的集成,開放,平等,中立的開源合作模式,讓人印象深刻,我們雙方會在 Serverless 的可觀測性上,進行緊密深入的合作,包括更多語言集成,日志的集成,平臺的性能集成等等,祝賀 OpenFunction 成功加入沙箱范訓,期待專案更上一層樓,Enjoy your CNCF journey.
張海立
馭勢科技云平臺研發總監
馭勢科技 UISEE 是中國領先的自動駕駛公司,OpenFunction 幫助我們找到了一種基于 FaaS / Serverless 的業務服務快速定制方案,我們已將它用于解決跨公私有云的、針對不同存盤中間件的資料處理和落盤問題(參見 此案例),期待有更多社區伙伴參與到 OpenFunction 的功能建設中,一起探索更多應用場景,提升研發效能!
張善友
深圳市友浩達科技有限公司CTO
OpenFunction 加入 CNCF 對我來說是一個額外的驚喜,我是最近一個月才成為 OpenFunction 的貢獻者,我在最近 2 年實踐 Dapr 的專案實戰經驗,讓我深信基于 Dapr 的 OpenFunction 是一個非常有前景的 FaaS 專案,我現在負責建設 OpenFunction 的 .NET 支持框架開發作業,期待有更多的社區伙伴參與到 OpenFunction 的功能建設,
蔡禮澤
SAP, OpenFunction 早期用戶
我從去年關注到OpenFunction,當時被它的技術選型所吸引,非常的前沿,讓我想到了許多的可能性,之后一直關注著專案的技術走向還有社區發展,還有參與貢獻,一個優秀的專案離不開社區的支持,OpenFunction的維護者非常專業與熱情,優秀的技術設計加上專業的社區,我相信OpenFunction會在云原生領域大放異彩,
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468013.html
標籤:其他
