Serverless Workflow项目
- 2022 年 2 月 8 日
- 筆記
- .NET, BPM&WF, Kubernetes
维基百科对工作流的定义是:对工作流程及其各操作步骤之间业务规则的抽象、概括描述。我们认为工作流的主要职责是:
-
保证结果一致性,提高容错性要求:对错误重试,捕获,执行回滚或补偿逻辑
-
为长时间运行的流程维护持久化状态,保证任务调度可靠性
-
控制逻辑和任务逻辑解耦:细化责任,便于管理、维护和扩展
-
流程控制中心化、可视化:增强进度可观测性,简化来自不同背景人群的交流
-
模板方式定义控制逻辑和任务依赖:减少重复工作,统一流程描述标准
工作流通常适用于有状态的(stateful),异步 (async),长时间执行(long running)等特性的业务场景。其中比较典型的场景包括:
-
视频,音频,图片处理工作流
-
订单、审批流程
-
数据处理流水线
-
自动化运维
-
机器学习流水线、基因测序工作流
常见的开源工作流服务软件如 Apache Airflow,Activiti,Flowable,Netflix Conductor 等提供了使用代码,DSL 或是 BPMN 这类标准的工作流描述方式,允许开发者自己搭建工作流服务。不同云服务厂商也提供了各自的工作流服务如 AWS Step Functions, AWS Simple Workflow Service,Azure Durable Functions。那么有没有一个云原生的工作流服务呢?
Serverless Workflow项目由CNCF(Cloud Native Computing Foundation,云原生计算基金会)托管。它的引擎是用 c# 实现的,思想非常不错,社区有人在用c# 做云原生项目。有关谁参与以及Serverless Workflow扮演角色的详细信息,请阅读Serverless Workflow的建议书:
//github.com/cncf/toc/blob/master/proposals/serverlessworkflow.md
网站/代码:
//serverlessworkflow.io/
//github.com/serverlessworkflow
文档:
//github.com/serverlessworkflow/specification
//github.com/serverlessworkflow/specification/wiki
错误和功能请求:
//github.com/serverlessworkflow/specification/issues
即时交流:
//slack.cncf.io/的#serverless-workflow频道
邮件列表:
//lists.cncf.io/g/cncf-wg-serverless
订阅邮件列表,也可以发电邮到: