Jump to: navigation, search

Difference between revisions of "StructuredStateManagement"

(What problems does this solve)
(What problems does this solve)
Line 12: Line 12:
 
* Fixes a variety of problems that previously had piecemeal like patches applied.
 
* Fixes a variety of problems that previously had piecemeal like patches applied.
 
* Eliminates  the inherent  fragility of a ad-hoc workflow.
 
* Eliminates  the inherent  fragility of a ad-hoc workflow.
 +
* Creates the path for ''smart'' resource scheduling.
  
 
==== Issues that would likely not have happened with a better state management system ====
 
==== Issues that would likely not have happened with a better state management system ====

Revision as of 21:50, 22 April 2013

Summary

Move away from ad-hoc states and state transitions to a more concrete organized structured state management in nova.

What problems does this solve

  • Increases the [stability, extendability, reliability] of nova.
  • Makes it easier to [debug, test, understand, verify, review] nova code.
  • Removes hard to discover state-transition dependencies and interactions with clearly defined state-transition dependencies and interactions.
  • Ensures state transitions are done reliably and correctly by isolating those transitions to a single place.
  • Removes the need for periodic tasks to cleanup garbage left by nova's ad-hoc states.
  • Fixes a variety of problems that previously had piecemeal like patches applied.
  • Eliminates the inherent fragility of a ad-hoc workflow.
  • Creates the path for smart resource scheduling.

Issues that would likely not have happened with a better state management system

Examples include:

  1. Varying exceptions
  2. MQ timeouts
  3. DB timeouts
  4. WS call timeouts


Bugs/blueprints that likely would not be needed:

  1. https://blueprints.launchpad.net/nova/+spec/compute-instance-cleanup-service
  2. https://bugs.launchpad.net/nova/+bug/1050979
  3. https://bugs.launchpad.net/nova/+bug/1061024
  4. https://bugs.launchpad.net/nova/+bug/1082414
  5. ...

Requirements

https://etherpad.openstack.org/task-system

Discussions

https://etherpad.openstack.org/the-future-of-orch

Plan of record

  1. Create prototype.
  2. Get feedback from summit session.
  3. Get more feedback from email list & heat folks about common library.
  4. Adjust prototype as needed from feedback.
  5. Split prototype into small chunks.
  6. Adjust tests for each small chunks.
  7. Start to submit prototype chunks into http://review.openstack.org (disabling whole/pieces component until ready to turn on?).

Design

New-arch.png



Design details

In order to implement of this new orchestration layer the following key concepts must be built into the design from the start.

  1. A set of atomic tasks that can be organized into a workflow.
  2. Task resumption.
  3. Task rollback.
  4. Task tracking.
  5. Resource locking.
  6. Workflow sharding/ownership.
  7. Simplicity (allowing for extension and verifiability).
  8. Tolerant to upgrades.

Atomic tasks

Why it matters
How it will be addressed

Task resumption

Why it matters
How it will be addressed

Task rollback

Why it matters
How it will be addressed

Task tracking

Why it matters
How it will be addressed

Resource locking

Why it matters
How it will be addressed

Workflow sharding/ownership

Why it matters
How it will be addressed

Simplicity

Why it matters
How it will be addressed

Tolerant to upgrades

Why it matters
How it will be addressed