Fork me on GitHub

Serverless Workflow项目

维基百科对工作流的定义是:对工作流程及其各操作步骤之间业务规则的抽象、概括描述。我们认为工作流的主要职责是:

  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

posted @ 2022-02-08 10:02  张善友  阅读(1382)  评论(0编辑  收藏  举报