Jump to: navigation, search

Difference between revisions of "TaskFlow"

(Design)
(Activation)
Line 31: Line 31:
 
* https://wiki.openstack.org/wiki/DistributedTaskManagement
 
* https://wiki.openstack.org/wiki/DistributedTaskManagement
 
* https://wiki.openstack.org/wiki/Celery
 
* https://wiki.openstack.org/wiki/Celery
 +
 +
'''Traditional:'''
  
 
=== Reversion ===
 
=== Reversion ===

Revision as of 19:20, 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 primitives: https://wiki.openstack.org/wiki/StructuredWorkflowPrimitives

Tasks

Flows

Activation

Distributed:

Traditional:

Reversion

Resumption

Join us!