Difference between revisions of "TaskFlow"
Line 9: | Line 9: | ||
== Background == | == Background == | ||
− | Taskflow started as a prototype with the ''NTTdata'' | + | Taskflow started as a prototype with the ''NTTdata'' corporation along with ''Yahoo!'' for nova and has moved into a more general solution/library that can form the underlying structure of multiple OpenStack projects at once. |
'''Wiki with requirements and more background:''' | '''Wiki with requirements and more background:''' | ||
Line 17: | Line 17: | ||
== Why == | == Why == | ||
− | OpenStack code is highly unstructured (likely due to organic growth of code and | + | OpenStack code is highly unstructured (likely due to organic growth of code and architecture) 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 == | == Design == |
Revision as of 22:46, 20 June 2013
Revised on: 6/20/2013 by Harlowja
Contents
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 corporation along with Yahoo! for nova and has moved into a more general solution/library that can form the underlying structure of 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 architecture) 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 primitives: https://wiki.openstack.org/wiki/StructuredWorkflowPrimitives
Tasks
Flows
Activation
Distributed:
Traditional: