Jump to: navigation, search

Difference between revisions of "TaskFlow"

(Background)
Line 7: Line 7:
 
== Background ==
 
== 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.  
+
Taskflow started as a prototype with the ''NTTdata'' corparation 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:'''

Revision as of 18:30, 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 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 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!