Mistral Atlanta design session

14
1 Mistral Workflow Service for OpenStack Renat Akhmerov Senior Software Engineer @ Mirantis Dmitri Zimine Chief Stormer @ StackStorm

description

Atlanta OpenStack Summit Mistral design session slides

Transcript of Mistral Atlanta design session

Page 1: Mistral Atlanta design session

1

Mistral Workflow Service for OpenStack

Renat AkhmerovSenior Software Engineer @ Mirantis

Dmitri Zimine

Chief Stormer @ StackStorm

Page 2: Mistral Atlanta design session

2

Agenda

• Overview

• Workflow Service: what and why

• Architecture

• Roadmap

• Discussion

Page 3: Mistral Atlanta design session

3

What is Mistral?

Mistral = Workflow Service for OpenStack

Page 4: Mistral Atlanta design session

4

Workflow Service

!

• Service to define, execute, and monitor workflows

• Keeps state

• Carries data

• Provides goodies: HA, tracking, history, etc.

• Best for cross-service integration “orchestration”

Page 5: Mistral Atlanta design session

5

Mistral Workflow

• Workflow: a graph of tasks

• Task Actions: call REST, run command, create VM, send email…

• Control flow:

• transitions

• conditions

• Data Flow: passing data between tasks

• Triggers: cron, events, API

T1

T5

T3

T4T2

Start

T6

T7

T8

T9

Page 6: Mistral Atlanta design session

6

Workflow Definition Snippet

Workflow:! tasks:! ...! runJob:! action: Demo.runJob! on-error: deleteVM! on-success: sendJobError! publish:! job_results: job_results!! deleteVM:! action: Nova:deleteVM! on-finish: end!! sendJobError:! action: std.email! parameters:! to: [email protected]! subject: Workflow completed! body: | !! ! Workflow {$.execution.id} completed ! with results {$.job_results}! on-finish: deleteVM! ...

Page 7: Mistral Atlanta design session

7

Data Flow Concept

RunVM input:

image_id

SendMsg input:

person.email

IsApprover input:

person.name

GoOn “image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]" }

“image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]” }, “vm_ip”: “10.0.0.3”

“image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]” }, “vm_ip”: “10.0.0.3”

“image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]” }, “vm_ip”: “10.0.0.3”, “approver”: “true”

“image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]” }, “vm_ip”: “10.0.0.3”, “sent_msg”: “true”

“image_id”: “123”, “person”: { “name”: “John”, “email”: “[email protected]” }, “vm_ip”: “10.0.0.3”, “approver”: “true”, “sent_msg”: “true”

- task input - task result (added into context)

Page 8: Mistral Atlanta design session

8

Architecture

Scheduler

Executor

API ServerEngine

Executor!

...

workflows executions

tasks events

Workflow Queue

Task Queue

Page 9: Mistral Atlanta design session

9

Dashboard

Page 10: Mistral Atlanta design session

© MIRANTIS 2014 10

ROADMAPNOW -> NEXT -> FUTURE

Page 11: Mistral Atlanta design session

11

What Works Now (ver 0.0.2)

• API, Engine, Executor, Scheduler, scale up/down

• Workflow DSL *

• Workflow engine:

• Control flow - transitions, conditions *

• Data Flow

• Basic tasks: ssh, HTTP/REST, email, echo

• ‘Ad-hoc’ actions

• Keystone integration

• CLI and Python client

• Horizon dashboard *

Page 12: Mistral Atlanta design session

12

Next

• Apply POC learnings

• Finalize workflow capabilities

• Simplify definition syntax

• Create content

• openstack action pack: nova, heat

• more standard actions

• Provide extensibility for writing custom actions

• Work on maturity, stability, performance

• Horizon Dashboard improvements

Page 13: Mistral Atlanta design session

13

Future

• Ceilometer Triggers

• Event Listeners

• Rollback

• Horizon Dashboard - Graphical Workflow Presentation

• “Dry-run” mode

• TaskFlow integration, when ready

Page 14: Mistral Atlanta design session

14

More Info

Discussion etherpad: !https://etherpad.openstack.org/p/juno-summit-mistral !

More info: • Mistral POC Demo: Expo E-26 booth

• Launchpad: https://launchpad.net/mistral

• Wiki: https://wiki.openstack.org/wiki/Mistral

• Screencast: https://www.youtube.com/watch?v=x-zqz1CRVkI (search for “OpenStack Mistral POC Demo”)