CNCF Serverless工作流社區攜手華為云FunctionGraph,開拓Serverless編排新時代
企業應用從微服務架構向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規范產品化案例,并在社區內部共享。
Serverless 函數工作流 FunctionGraph
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。