快速概述¶
主要用例¶
任务调度 - 云 Cron¶
用户可以使用 Mistral 在云环境中调度任务。任务可以是任何内容,从在指定的虚拟机上执行本地进程(shell 脚本、二进制文件)到调用云环境中可访问的 REST API。它们也可以是与云管理相关的任务,例如创建或终止虚拟机。重要的是,可以将多个任务组合成一个工作流并以计划方式运行(例如,每周日凌晨 2 点)。Mistral 将负责它们的并行执行(如果逻辑上可行)和容错能力,并提供工作流执行管理/监控功能(停止、恢复、当前状态、错误和其他统计信息)。
云环境部署¶
用户或框架可以使用 Mistral 指定部署由多个虚拟机和应用程序组成的所需环境的工作流。
长期运行的业务流程¶
用户发起一个请求来运行一个复杂的、多步骤的业务流程,并希望它具有容错能力,以便如果执行在某个节点上崩溃,则系统中的另一个活动节点可以自动接管并在停止的位置继续。在这种用例中,用户将业务流程分解为一组任务,并让 Mistral 处理它们,即充当协调器并决定何时启动哪个特定任务。因此 Mistral 会回调“执行操作 X,这是数据”。如果执行操作 X 的应用程序崩溃,则另一个实例将承担继续工作的责任。
此用例在 长期运行的业务流程 中有更详细的描述
大数据分析与报告¶
数据分析师可以将 Mistral 用作数据抓取工具。例如,为了准备财务报告,收集和处理所需报告数据的整个步骤可以表示为相关 Mistral 任务的图。
实时迁移¶
用户指定由 Ceilometer(CPU 占用率 100%)事件触发的虚拟机实时迁移任务。
原理¶
Mistral 服务背后的主要思想包括以下几点
能够上传自定义工作流定义。
实际的任务执行可能不由服务本身执行。服务可以充当其他工作进程的协调器,这些工作进程执行实际工作,并通知有关任务执行结果。换句话说,任务执行可能是异步的,从而为插入任何特定于领域的处理和使此服务可扩展和高度可用的机会提供灵活性。
该服务提供了一个 **任务操作** 的概念,这是一个可插拔的逻辑片段,工作流任务与之关联。开箱即用,该服务提供一组标准操作以方便用户使用。但是,用户可以基于标准操作包创建自定义操作。