Few changes in the doc

* Article "Architecture" is too small. It makes sense to add more
  information. - Added some more information

* I think we need to change "How to write an Action Plugin" to just
  "How to write a custom action". I think the word "plugin" here is
  not important from user perspective - Done

* I think we need to change "How to extend YAQL with a new function"
  to "How to write a custom YAQL function" and put it right next to
  "How to write a custom action". That would be more consistent.
  - Done

Change-Id: I9b43694072cb23271e33440741204da3e10b89ac
Partial-Implements: blueprint mistral-doc
This commit is contained in:
Sharat Sharma 2016-11-14 14:15:56 +05:30
parent 74a2c9af92
commit d914e289dd
4 changed files with 69 additions and 20 deletions

View File

@ -1,16 +1,65 @@
Architecture Mistral Architecture
============ ====================
Mistral is OpenStack workflow service. The main aim of the project is to provide
capability to define, execute and manage tasks and workflows without writing
code.
Basic concepts
~~~~~~~~~~~~~~
A few basic concepts that one has to understand before going through the Mistral
architecture are given below:
* Workflow - consists of tasks (at least one) describing what exact steps should
be made during workflow execution.
* Task - an activity executed within the workflow definition.
* Action - work done when an exact task is triggered.
Mistral components
~~~~~~~~~~~~~~~~~~
Mistral is composed of the following major components:
* API Server
* Engine
* Task Executors
* Scheduler
* Persistence
The following diagram illustrates the architecture of mistral:
.. image:: img/mistral_architecture.png .. image:: img/mistral_architecture.png
* Engine - handles control and data flow of workflow executions. Computes which API server
tasks are ready and places them in a queue. Passes the data from task to ----------
task, deals with condition transitions, etc.
* Task Executors - execute task Actions. Pick up tasks from the queue, run The API server exposes REST API to operate and monitor the workflow executions.
actions, and send results back to the engine.
* API server - exposes REST API to operate and monitor workflow executions. Engine
* Scheduler - stores and executes delayed calls. It is the important Mistral ------
component since it interacts with engine and executors. It also triggers
workflows on events (e.g., periodic cron event) The Engine picks up the workflows from the workflow queue. It handles the control
* Persistence - stores workflow definitions, current execution states, and and dataflow of workflow executions. It also computes which tasks are ready and
past execution results. places them in a task queue. It passes the data from task to task, deals with
condition transitions, etc.
Task Executors
--------------
The Task Executor executes task Actions. It picks up the tasks from the queue,
run actions, and sends results back to the engine.
Scheduler
---------
The scheduler stores and executes delayed calls. It is the important Mistral
component since it interacts with engine and executors. It also triggers
workflows on events (e.g., periodic cron event)
Persistence
-----------
The persistence stores workflow definitions, current execution states, and
past execution results.

View File

@ -1,6 +1,6 @@
============================= ============================
How to write an Action Plugin How to write a Custom Action
============================= ============================
1. Write a class inherited from mistral.actions.base.Action 1. Write a class inherited from mistral.actions.base.Action

View File

@ -1,6 +1,6 @@
====================================== ===================================
How to extend YAQL with a new function How to write a custom YAQL function
====================================== ===================================
******** ********
Tutorial Tutorial

View File

@ -5,7 +5,7 @@ Developer's Reference
:maxdepth: 3 :maxdepth: 3
creating_custom_action creating_custom_action
asynchronous_actions
extending_yaql extending_yaql
asynchronous_actions
devstack devstack
troubleshooting troubleshooting