1. 程式人生 > 其它 >CNCF Serverless工作流社群攜手華為雲FunctionGraph,開拓Serverless編排新時代

CNCF Serverless工作流社群攜手華為雲FunctionGraph,開拓Serverless編排新時代

摘要:華為雲以CNCF Serverless Workflow 規範為標準,聯合2012實驗室華為元戎團隊共同打造了華為雲FunctionGraph Workflow,為使用者提供函式流管理功能,並支援視覺化拖拽式的函式編排。

企業應用從微服務架構向Serverless(無伺服器)架構演進,開啟了無伺服器時代,面向無伺服器計算領域的Workflow也應運而生。CNCF為了給業界提供一種標準方法,建立100%由社群貢獻者驅動的Serverless Workflow開源社群,攜手社群夥伴,以更全面的規範、更豐富的元素,賦能企業產品化,並有效解決廠商鎖定等問題,推進無伺服器計算領域的發展。

華為雲作為CNCF Serverless Workflow社群的官方合作伙伴,聯合2012實驗室華為元戎團隊在函式工作流優化、版本相容等多方面提供了優質高效的改進建議。在2021年10月的KubeCon NA 2021(North America)活動中,Tihomir Surdilovic社群領導人介紹了CNCF Serverless Workflow的開源合作伙伴,華為是2021年度CNCF Serverless Workflow 社群貢獻排名榜前五中唯一的國內廠商。

工欲善其事,必先利其器

許多Serverless應用程式是由系列函式組成,這些函式可能會根據不同的事件觸發器依次執行、並行執行或在分支中執行,我們稱之為函式工作流。為了使Serverless 平臺正確執行 Serverless 應用程式的函式工作流,應用程式開發人員需要對系列函式進行編排,如何支援應用開發人員簡單快速進行函式編排,需要定義一套完整、易用的工作流規範。

就像在微服務架構中,只需要編寫Workflow定義的JSON,就可以完成對不同業務流程的排程、編排與自動化,同時國際工作流管理聯盟(Workflow Management Coalition,WfMC)還對微服務的Workflow定義了一套完整的參考規範,以使不同廠商的微服務工作流產品之間可以平滑地交換工作單元。

當下,Serverless大行其道,各個大廠紛紛下場佈局。Workflow作為其工具鏈中的一部分,每個廠商都有一套自己的服務介面,當某一廠商暫停服務或者使用者想要更換廠商時,這種各自為政的模式導致使用者陷入被廠商鎖定、移植困難、成本高甚至需要重構系統的艱難境地。

因此,如同WfMC為微服務的Workflow定義參考規範一樣,Serverless Workflow也急需一種完整的標準方法和參考規範來打破各大廠商閉門造車的侷限。

集眾人之長,成Serverless之利

為了給業界提供一種標準方法,CNCF在2020年7月成立了Serverless Workflow 社群,與社群貢獻者一起共同構建、完善Serverless Workflow 規範,以促進Serverless應用程式在不同廠商平臺之間的可移植性。該社群的開源專案包括:基於DSL的工作流規範、為程式語言提供SDK等,同時與CNCF其他專案也有深度的合作,比如CloudEvents, OpenAPI等。

CNCF Serverless Workflow規範針對無服務技術領域,所以關注點會在事件驅動應用、函式或微服務。CNCF Serverless Workflow規範是一種用於微服務、事件和函式編排的工作流語言規範,可以通過YAML或JSON的格式描述和定義工作流,具有以下優勢:

基於通用的、宣告式的思想提煉語言,更容易表達

目前,工作流語言分為四個型別(如下圖所示),CNCF Serverless Workflow 規範是一種基於通用的、宣告性的思路提煉出的工作流規範,且支援通過YAML或JSON的格式描述和定義工作流,更容易表達像functions, events, retries這些無伺服器技術領域的元素。

四類工作流語言

支援強大的、業界通用的控制流邏輯

CNCF Serverless Workflow規範本身提供了非常強大的控制流邏輯,包括了大多數業界支援的核心功能,如順序執行,以便使用者可以定義流水線。在順序執行的基礎上,使用者也可以定義並行的執行,如並行呼叫函式或微服務。另外,也支援使用不同種類的迴圈結構執行資料庫迴圈呼叫之類的工作流。此外,重試、錯誤處理、工作流的手工干預,還有諸如等待和恢復之類的標準能力都被CNCF Serverless Workflow的規範所支援。

為解決實踐中業務級的問題,CNCF Serverless Workflow規範增強了諸多重要功能:自動重試、金鑰和常量;定義可插拔的表達語言,以便使用者可以插入自己選擇的表達語言;不同型別的超時,如全域性超時或分支超時等;短時和長時工作流的支援;工作流執行期間的補償處理,如撤銷已經成功完成的工作或狀態;休眠,如等待某種事件或狀態。此外,CNCF Serverless Workflow規範還提供了繼續屬性的功能,針對工作流在達到雲平臺執行限制後被迫停止,使用者可以編排繼續屬性,停止當前工作流例項,啟動新的工作流例項執行停止前的狀態。

工作流邏輯說明圖示

提供自定義拓展能力

除了上述核心的控制流邏輯,CNCF Serverless Workflow規範也提供了自定義擴充套件能力。目前社群規範提供兩個拓展:關鍵效能指標和限流。

使用者可以通過關鍵效能指標的擴充套件能力(如工作流的整體指標、事件的消費與生產指標、函式使用指標、工作流狀態指標等)定義工作流,使用自定義指標衡量工作流的效能,對效能和成本進行增強。此外,使用者也能夠通過限流的拓展能力對呼叫進行速率的限制,這在無伺服器領域尤為重要,比如函式呼叫併發的限制、呼叫事件數量的限制、工作流狀態總數的限制、工作流執行期間轉換的限制等。

拓展能力說明圖示

功能更全面,能支援更多複雜場景

CNCF Serverless Workflow Specification支援更多元素,比如:CloudEvent、OpenAPI、AsyncAPI、GraphQL、gRPC等開源事件和服務標準的整合。在功能方面,支援建模人工決策、定義超時和重試、定義並行執行邏輯和迴圈、做出基於資料或事件的決策、定義回撥、編寫強大的表示式、設定祕密和常量等。在應用方面,支援廣泛的複雜場景,比如:網上車輛拍賣、網上訂餐、付款處理、資料分析、錯誤通知、持續整合和部署等。

所以CNCF Serverless工作流規範更加全面,能支援更多複雜場景,也具備產品化更多新特性的潛力。基於CNCF Serverless Workflow 規範本身的優勢,不僅能有效避免廠商鎖定,也能助力企業創新。目前,已有國內外企業關注並使用此規範產品化。

CNCF群策群力,華為雲竭誠盡智

從KubeCon NA 2021大會發布的各項資料可以看出,當前社群處於初期快速的成長階段。2021年全年,10多家不同公司參與社群貢獻,社群整體取得了顯著的成就,工作流規範也已更新至0.8版本。

社群在2021全年總共有500合入的PR、2K commits, CNCF Serverless Workflow Specification有超過200個新星關注的增長,去年實現了新星關注的100%增長,同時,社群的各類社交平臺也受到廣泛關注。在2021年KubeCon EU大會中,共計300+人蔘與CNCF Serverless Workflow專案的辦公時間;190+人蔘加了2021年KubeCon NA北美大會社群專案的辦公時間。

作為社群官方合作伙伴,以及CNCF Serverless Workflow的開源合作伙伴,華為雲聯合2012實驗室華為元戎團隊,提供持續的技術能力支撐,主要貢獻包括:

  1. Action支援重試和錯誤處理已合併到0.7版本;
  2. 支援分支內部進行編排的想法,已被社群採納,並規劃在0.9版本中實現;
  3. 發現並提出規範版本之間相容性不足的問題,社群確認從0.8版本之後會確保向後相容;
  4. 幫助社群在0.7和0.8版本的釋出做出了貢獻,包括審查與規範相關的設計文件,審閱社群新提交的PR(拉取請求)和Issue.

作為 CNCF Serverless Workflow 社群官方合作伙伴,華為雲與社群夥伴攜手並進,共同推動無伺服器計算領域的發展。

FunctionGraph Workflow——更上一層樓

在繁榮向上的社群生態中,華為雲以CNCF Serverless Workflow 規範為標準,聯合2012實驗室華為元戎團隊共同打造了華為雲FunctionGraph Workflow,為使用者提供函式流管理功能,並支援視覺化拖拽式的函式編排。

在使用FunctionGraph Workflow時,使用者無需進行二次開發,只要通過視覺化拖拽的方式,即可將多個獨立的無伺服器函式用順序、分支、並行等方式輕鬆快速地編排一個完整的應用。

FunctionGraph Workflow 視覺化編排示意圖

同時,FunctionGraph Workflow提供監控和管理平臺,用於診斷和除錯應用,支援跟蹤每次執行的狀態,執行中的輸入輸出等,快速定位故障,使用者可以輕鬆配置重試,處理異常分支。

FunctionGraph Workflow 監控管理平臺示意圖

目前,FunctionGraph Workflow 已應用於事務型業務流程編排、多媒體檔案處理、資料處理流水線等場景。面向未來,華為雲期望通過不斷的技術突破,將華為雲開源引擎打造為 CNCF Serverless Workflow 社群的預設實現,形成應用社群 Serverless Workflow規範產品化案例,並在社群內部共享。

點選關注,第一時間瞭解華為雲新鮮技術~