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

Mistral Atlanta design session

Aug 19, 2014

Download

Engineering

Renat Akhmerov

Atlanta OpenStack Summit Mistral design session slides
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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”)