Rolling Upgrade Support in Sahara

Registered by Ken Chen

This blueprint is to introduce rolling upgrade to Sahara. Rolling upgrade means allowing sahara services (sahara-api, sahara-engine, and maybe more if other services like sahara-conductor is splited out in the future) to be updated one at a time and yet still be operational (only one service is taken down for upgrade instead of all).
Currently rolling upgrade was already implemented in nova, and are in implementing in Cinder, Heat, and many other services.
Rolling upgrade will be implemented by backwards compatible RPC and versionedobject pinning. The basic idea is to allow services in Sahara to register their RPC and versionedobject versions (current/pin and available/max) in sahara database. There will be logic added into the rpcapi layer that will allow the content/object and RPC API to be backwards compatible. Once all services are upgraded, a "sahara-manage version upgrade" command can be used to switch over the object and RPC versions to the latest available.
Below are some links for your reference.
https://blueprints.launchpad.net/cinder/+spec/rpc-object-compatibility
https://specs.openstack.org/openstack/cinder-specs/specs/liberty/rpc-object-compatibility.html
The former registered bp https://blueprints.launchpad.net/sahara/+spec/versioned-objects was not a complete solution. Therefore I registered a new one here and will re-submit a spec for this one.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Ken Chen
Direction:
Needs approval
Assignee:
Ken Chen
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/rolling-upgrade-for-sahara,n,z

Addressed by: https://review.openstack.org/245556
    Add Rolling Upgrade Support in Sahara

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.