[openstack-dev] [barbican] Rolling upgrade in Barbican project
namnh at vn.fujitsu.com
namnh at vn.fujitsu.com
Wed Mar 1 02:52:23 UTC 2017
Hi Dave,
Thanks for your reply. I would like to answer your email like below:
> Offline rolling upgrades is part of the current Barbican project
Do you mean that Barbican supported to upgrade? Currently, there are 4 main level during upgrade [1]
1. Support upgrade
2. Support rolling upgrade
3. Support zero downtime
4. Support zero impact
> 2) Database Upgrades
>
> I think we have good support for doing database upgrades when upgrading the version of Barbican. We offer a barbican-db-manage script to handles upgrades. [1] It would be good to improve the documentation on this process. It would also be good to add a gate job to automatically test upgrading Barbican.
Yes, I tested upgrading DB and it works well. However, I am considering a point that Barbican still allow our to delete/alter table/column in DB by upgrading, that is a problem if we want to support rolling upgrade. For example, in Neutron, there was a blueprint [2] and a spec to describe this. You can see the description of the blueprint is """Currently pretty much every major upgrade requires full shutdown for all neutron-server instances for the time while upgrade process is running. The downtime is due to the need to run alembic scripts that modify schema and transform data. Neutron-server instances are currently not resilient to working with older schema. We also don't make an effort to avoid 'contract' migrations""".
> 3) RPC version
So I am wondering that Barbican have a plan to do this on this cycle(Pike)?
[1] https://governance.openstack.org/tc/reference/tags/#project-assertion-tags
[2] https://blueprints.launchpad.net/neutron/+spec/online-upgrades
[3] https://review.openstack.org/#/c/386685/
-----Original Message-----
From: Dave McCowan (dmccowan) [mailto:dmccowan at cisco.com]
Sent: Tuesday, February 28, 2017 9:07 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [barbican] Rolling upgrade in Barbican project
Hi Nam--
Thanks for writing. Offline rolling upgrades is part of the current Barbican project. Better support and documentation for upgrades would be a welcome addition.
1) API Versioning
Currently, Barbican only has one API version. The wiki you reference is an old list of ideas that we started collecting for when/if we create a V2. I agree, that as part of any new API version, we'll need to consider upgrades and backwards compatibility.
2) Database Upgrades
I think we have good support support for doing database upgrades when upgrading the version of Barbican. We offer a barbican-db-manage script to handles upgrades. [1] It would be good to improve the documentation on this process. It would also be good to add a gate job to automatically test upgrading Barbican.
3) RPC Versioning
Adding versioning to our RPC message would be good to future-proof our design. Perhaps we should leave the message objects stable for now, and add a version field in the future when/if a scenario occurs that requires us to change these message objects.
[1]
https://docs.openstack.org/developer/barbican/contribute/database_migration
s.html
--Dave (dave-mccowan)
On 2/28/17, 4:52 AM, "namnh at vn.fujitsu.com" <namnh at vn.fujitsu.com> wrote:
>Hi everyone,
>
>Recently, there are many emails to discuss a topic that "Why are
>projects trying to avoid Barbican, still?" [0]. That is very an interesting topic.
>Now I would like to make a new topic related to Rolling upgrade. I am
>trying to find information about the strategy to support
>rolling-upgrade for Barbican project. Unfortunately, there is not any
>results, if any, could you please update it for me.
>
>In my point of view, in order to support this feature, there will be
>three impacts which need to solve:
>
>1. API versioning:
>
>Maybe, Barbican will have version two [1] so I think we should have a
>plan to still support version 1 on version 2. What do you about this
>point?
>
>2. Database
>
>- For OVO (Oslo version object) [2], I am wondering we should use OVO
>for this project. In my option, I am afraid that OVO is overkill for
>this project.
>- For DB upgrading, currently there are some files [3-4] to drop and
>alter column. This really should not have because there is not still
>have a solution in case of delete or alter DB. That why there is a rule
>that don't allow somebody to delete/alter DB in Nova and Neutron :) Do
>you think we should prepare for this?
>
>3. RPC
>
>There is not version parameter when sending AMQP [5]. This parameter is
>really necessary to distinguish the message is Ocata or Pike.
>
>That is some points in my option, what do you think we should have to
>plan to support this feature and I am very glad to discuss this topic
>with you on this thread mailing-list.
>
>[0]
>http://lists.openstack.org/pipermail/openstack-dev/2017-January/thread.
>htm
>l#110192
>[1] https://wiki.openstack.org/wiki/Barbican/v2
>[2] https://www.slideshare.net/davanum/ovo-deep-dive
>[3]
>https://github.com/openstack/barbican/blob/master/barbican/model/migrat
>ion
>/alembic_migrations/versions/3041b53b95d7_remove_size_limits_on_meta_ta
>ble
>_values.py
>[4]
>https://github.com/openstack/barbican/blob/master/barbican/model/migrat
>ion
>/alembic_migrations/versions/254495565185_removing_redundant_fields_fro
>m_o
>rder.py
>[5]
>https://github.com/openstack/barbican/blob/master/barbican/queue/client
>.py
>#L49
>
> ------------------------------
>Best Regard,
>
>Nam NH
>OpenStack team
>
>
>_______________________________________________________________________
>___ OpenStack Development Mailing List (not for usage questions)
>Unsubscribe:
>OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list