Jump to: navigation, search

Difference between revisions of "TaskFlow"

(Why)
(Why)
Line 15: Line 15:
 
== Why ==
 
== Why ==
  
To avoid being to controversial the reason that taskflow is believed to be needed is pretty simple: OpenStack code is highly unstructured (likely due to organic growth) and even though the unstructured code does ''work'' there are many failure scenarios skipped and/or recovery scenarios which are not possible in said unstructured code. With the aid of taskflow and the structuring it brings it allows for these scenarios to not be a problem as well as allowing 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 ==
 
== Links ==

Revision as of 18:27, 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).

Links