Serverless Workflow專案

張善友發表於2022-02-08

維基百科對工作流的定義是:對工作流程及其各操作步驟之間業務規則的抽象、概括描述。我們認為工作流的主要職責是:

  1. 保證結果一致性,提高容錯性要求:對錯誤重試,捕獲,執行回滾或補償邏輯

  2. 為長時間執行的流程維護持久化狀態,保證任務排程可靠性

  3. 控制邏輯和任務邏輯解耦:細化責任,便於管理、維護和擴充套件

  4. 流程控制中心化、視覺化:增強進度可觀測性,簡化來自不同背景人群的交流

  5. 模板方式定義控制邏輯和任務依賴:減少重複工作,統一流程描述標準

工作流通常適用於有狀態的(stateful),非同步 (async),長時間執行(long running)等特性的業務場景。其中比較典型的場景包括:

  1. 視訊,音訊,圖片處理工作流

  2. 訂單、審批流程

  3. 資料處理流水線

  4. 自動化運維

  5. 機器學習流水線、基因測序工作流

常見的開源工作流服務軟體如 Apache Airflow,Activiti,Flowable,Netflix Conductor 等提供了使用程式碼,DSL 或是 BPMN 這類標準的工作流描述方式,允許開發者自己搭建工作流服務。不同雲服務廠商也提供了各自的工作流服務如 AWS Step Functions, AWS Simple Workflow Service,Azure Durable Functions。那麼有沒有一個雲原生的工作流服務呢?

image

Serverless Workflow專案由CNCF(Cloud Native Computing Foundation,雲原生計算基金會)託管。它的引擎是用 c# 實現的,思想非常不錯,社群有人在用c# 做雲原生專案。有關誰參與以及Serverless Workflow扮演角色的詳細資訊,請閱讀Serverless Workflow的建議書:

https://github.com/cncf/toc/blob/master/proposals/serverlessworkflow.md

網站/程式碼:

http://serverlessworkflow.io/

https://github.com/serverlessworkflow

文件:

https://github.com/serverlessworkflow/specification

https://github.com/serverlessworkflow/specification/wiki

錯誤和功能請求:

https://github.com/serverlessworkflow/specification/issues

即時交流:

https://slack.cncf.io/的#serverless-workflow頻道

郵件列表:

https://lists.cncf.io/g/cncf-wg-serverless

訂閱郵件列表,也可以發電郵到:

cncf-wg-serverless+subscribe@lists.cncf.io

相關文章