Jump to: navigation, search

Difference between revisions of "TaskFlow"

(Why)
Line 17: Line 17:
 
OpenStack code is highly unstructured (likely due to organic growth of code and architecure) and even though the unstructured code does ''work'' there are many failure scenarios skipped and/or recovery scenarios which are not possible in unstructured code. With the aid of taskflow and the structuring/organization it brings it allows for these scenarios to be a non-problem and allows for new & very desirable functionality to be introduced (resumption, reversion).
 
OpenStack code is highly unstructured (likely due to organic growth of code and architecure) and even though the unstructured code does ''work'' there are many failure scenarios skipped and/or recovery scenarios which are not possible in unstructured code. With the aid of taskflow and the structuring/organization it brings it allows for these scenarios to be a non-problem and allows for new & very desirable functionality to be introduced (resumption, reversion).
  
== Links ==
+
== Design ==
 +
 
 +
'''Key concepts:''' https://wiki.openstack.org/wiki/StructuredWorkflowPrimitives
 +
 
 +
=== Tasks ===
 +
 
 +
=== Flows ===
 +
 
 +
=== Activation ===
 +
 
 +
* https://wiki.openstack.org/wiki/Celery
 +
 
 +
=== Reversion ===
 +
 
 +
=== Resumption ===
 +
 
 +
== Join us! ==
  
 
* https://launchpad.net/taskflow
 
* https://launchpad.net/taskflow
* https://wiki.openstack.org/wiki/Celery
 

Revision as of 18:29, 20 June 2013

Revised on: 6/20/2013 by Harlowja

Executive Summary

Taskflow is meant to be a core underlying library in OpenStack that aids in structuring OpenStack code into lightweight task objects and/or functions that are combined together into workflows and provides fundamental components that know how to run these workflows in a manner that can be resumed and reverted. It helps in organizing said code into tasks which are easily testable and then builds on-top of these lightweight task by providing ways for developers to connect those tasks into useful flows (aka workflows). A workflow usually has some end result or completes some activity using the underlying tasks and there connections between each other. Since a workflow is just a structure (aka a set of tasks linked together somehow) the way of running said workflow can be disconnected from the workflow itself. Taskflow provides a few mechanisms for running workflows and lets the developer pick and choose which one will work for their system.

Background

Taskflow started as a prototype with the NTTdata corparation along with Yahoo! for nova and has moved into a more general solution/library that suites multiple OpenStack projects at once.

Wiki with requirements and more background:

Why

OpenStack code is highly unstructured (likely due to organic growth of code and architecure) and even though the unstructured code does work there are many failure scenarios skipped and/or recovery scenarios which are not possible in unstructured code. With the aid of taskflow and the structuring/organization it brings it allows for these scenarios to be a non-problem and allows for new & very desirable functionality to be introduced (resumption, reversion).

Design

Key concepts: https://wiki.openstack.org/wiki/StructuredWorkflowPrimitives

Tasks

Flows

Activation

Reversion

Resumption

Join us!