首页 > 代码库 > Mistral 工作流组件之一 概述

Mistral 工作流组件之一 概述

Mistral的前世今生:  Mistral是Mirantis公司为Openstack开发的工作流组件,提供Workflow As a Service.典型的应用场景包括任务计划服务Cloud Cron,任务调度Task Scheduling, 复杂的运行时间长的业务流程等。对应的是AWS的SWS(Simple Workflow Serivce)。

 

Mistral的核心概念有如下几个:

  • Workbook
  • Workflow
  • Task
  • Action
  • Workflow Execution

 

Workbook:工作簿。可以理解为工作流任务的文档,纪录了工作流,任务以及任务的执行顺序,依赖关系,以及每个任务的输入输出等。从开发者的角度看,可以认为它是一种工作流任务的文档组织形式,或者命名空间。

 

Workflow:工作流。比Workbook小的单元。描述了任务,动作的执行顺序,依赖关系。 一个Workbook可以有多条Workflow,也可以只有一条Workflow。

 

Task: 描述Workflow中包含的工作步骤。

 

Action: Mistral中最小的单位,描述了某一个具体的动作,比如执行一个http请求,或者发一个e-mail等等。

 

Workflow Execution: 工作流执行纪录,每个Workflow的执行纪录都会存数据库,可以供日后查询,或者重新执行。

 

Mistral官方文档描述了其中几个概念之间的关系:

 技术分享

Mistral Server的架构

 

官网的图描述了其架构 

 

 技术分享 

  • 服务端收到API请求,建立workflow队列
  • 执行引擎从队列中取出一个workflow交给调度器
  • 调度器解析出task列表,生成task队列
  • task调度器调度一个个task执行

 

这些workflows, executions, tasks, actions, triggers都会存入到数据库中。

 

 

Mistral 工作流组件之一 概述