[openstack-dev] [heat] Rolling Upgrades

Michał Dulko michal.dulko at intel.com
Tue Oct 25 05:46:22 UTC 2016


On 10/21/2016 11:57 PM, Zane Bitter wrote:
> On 21/10/16 08:37, Michał Dulko wrote:
>>> > Finally, a note about Oslo versioned objects: they don't really help
>>> > us. They work great for nova where there is just nova-conductor
>>> > reading and writing to the DB, but we have multiple heat-engines
>>> doing
>>> > that that need to be restarted in a rolling manner. See the
>>> references
>>> > below for greater detail.
>> They do help in case you're changing RPC arguments *content*. In
>> particular they make it easier to modify schema of dict-like structures
>> sent over RPC.
>
> This is technically true, but there's a much simpler solution to that
> which we already have: just don't change the content in
> non-backward-compatible ways (i.e. you can add stuff but not
> change/rename/remove stuff).
>
> We have to do that anyway, because this is effectively our user
> interface, so if we didn't we'd break clients. For that reason, we're
> already much more strict about this than required to avoid this
> problem in the RPC layer.

Sure, it's about compatibility, so if nothing ever changes, then you're
fine.

>
> As Crag said, the problem we do have is when we add flags/arguments to
> a message, how can we ensure that older versions of the engine still
> interpret it correctly.

In Cinder we're assuming you cannot send a message containing some new
flags/arguments if the environment is running services in various
versions. It's better to fail fast and possibly with a message to the
user, than to do something he haven't asked for.

Thanks,
Michal




More information about the OpenStack-dev mailing list