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都會存入到數據庫中。
