1. Mistral
Task Orchestration and Scheduling service
Task Orchestration and Scheduling service
â˘
Home: launchpad.net/mistral
â˘
Wiki: wiki.openstack.org/wiki/Mistral
â˘
IRC: #openstack-mistral
â˘
Me: Renat Akhmerov <
rakhmerov@mirantis.com>
2. Background
â˘
Realized by Murano team as a generic external
state machine with HA and scalability
â˘
Discussed with and supported by the authors of the
Convection proposal, Joshua Harlow and
TaskFlow team
â˘
Joshua, Thanks!
3. How is Mistral related to
TaskFlow & Convection
â˘
Mistral implements the Convection (Workflow
as a Service) and goes far beyond the initial ideas
â˘
TaskFlow library will be used for
implementation
â˘
TaskFlow library will have Mistral engine to
execute tasks over Mistral in a distributed manner
4. Mistral Mission
â˘
Build a Task Orchestration and Scheduling
service for OpenStack
â˘
Provide an easy and flexible mechanism for executing
workflows that consist of interrelated tasks in a cloud
environment
â˘
Help other OpenStack projects automate their
internal workflows
â˘
Provide HA and Scalability for task/workflow execution
5. Mistral Users
â˘
Infrastructure OpenStack developers : Nova,
Heat, Murano, Solum etc.
â˘
System administrators : to use capabilities like
Cloud Cron to be able to schedule helper cloudwide tasks (local VM processes, RESTful services,
creating/terminating VMs, etc.)
â˘
Enterprise application developers : automate
business processes consisting of multiple
distributed processing steps
6. Reasons to use Mistral
1. High Availability : ability to continue a workflow from the point it crashed at
2. Scalability: Mistral knows what parts of a workflow can be executed in parallel
3. Scheduling: workflows/tasks can be scheduled for periodical execution (e.g. every
Tuesday at 3 am)
4. Observable state: can always see the details of the current execution state and
history
5. Offloading dependency management : given what needs to be completed
Mistral executes whatever tasks needed for that
6. Additional integration points : a 3rd party application can hook into deployment
processes represented as Mistral workflows using events
7. Formalized task graphs are just easier to manage and understand : they
can be visualized, analyzed and optimized
7. Use Cases
â˘
Cloud Cron: a system administrator can schedule
cloud tasks for periodical execution
â˘
Cloud Environment Deployment : a deployment
tool or a system can represent deployment steps as
a Mistral workflow and use Heat for every step as a
software orchestration tool
â˘
Event Based Scheduling : e.g. Live Migration on
CPU 100% from Ceilometer
8. Cloud Cron
â˘
Single point of configuration
and control
â˘
Wide range of tasks : local
processes, RESTful services
etc.
â˘
Monitoring & Management
â˘
HA & Scalability
10. Event Based Scheduling
â˘
Live migration is an example
â˘
Workflow execution on
external events
â˘
Various event types
â˘
Various event sources
11. Key Mistral Features
â˘
Uploading custom graphs of tasks
â˘
Driven by simple DSL: YAML/JSON/XML
â˘
Task Scheduling: using UI or Cron patterns
â˘
Generic service: doesnât do the actual work itself
and acts as an HA coordinator signaling to
workers about what needs to be done
12. Main Concepts
â˘
Task Graph - a set of related
tasks
â˘
Workflow - a subgraph involved
into one execution
â˘
Flow - a path that can be
processed independently
â˘
Target task - a task that needs to
get completed in a particular case
â˘
Action - a particular piece of work
associated with a task (signal)
14. Data Flow (Concept)
1. Select a subset of input
data
2. Process it
3. Merge it back in
4. Pass it on
5. Merge with parallel
branches
15. What about Mistral workers?
â˘
Core engine doesnât start any workers
â˘
Workers are dynamic, configured in
DSL
â˘
Types of workers:
â˘
â˘
â˘
Client application nodes
REST services
Other processes accessible by AMQP, SSH
etc.
â˘
BUT!
â˘
Dedicated workers can be allocated
using toolsets created on top of Mistral
core engine
16. Can Mistral do anything
else?
â˘
Easy to build additional toolsets and frameworks
â˘
Potential capabilities include:
â˘
Domains (Namespaces)
â˘
Event subscription
â˘
Role Based Access Control
â˘
Task priorities
â˘
Task collocation
â˘
Language-oriented frameworks (Python, Java, etc.)
â˘
Plugin system to introduce new DSL keywords
17. Is Mistral similar to Amazon
Simple Workflow
â˘
In many ways Mistral is similar to Amazon SWF
â˘
Amazon SWF is oriented to language bindings
(Java, Ruby, Python)
â˘
Conceptual differences in underlying model
â˘
Mistral is targeting to be much simpler
â˘
Mistral may later have Amazon SWF adapter
18. Current Status
â˘
Documented all the core ideas and concepts
â˘
Prepared a draft of DSL/API specification
â˘
Planned the Roadmap
â˘
Started prototyping core ideas
â˘
Introduced at HK OpenStack design summit! :)
19. Roadmap
â˘
Nov 25th, 2013.
â˘
â˘
Dec 10th, 2013.
â˘
â˘
DSL v1.0 and API v1.0 implementation
Feb 20th, 2014. Release 0.2:
â˘
â˘
Mistral PoC: Basic task orchestration, DSL, API and Scheduling
Jan 20th, 2014. Release 0.1
â˘
â˘
DSL/API v1.0 specifications
Task engine HA & scalability, Web UI for monitoring & management
March 20th, 2014. Release 0.3:
â˘
Triggers (Cron, Events), Web UI for triggers (Cron, Events)