On Tue, May 14, 2013 at 03:34:00PM +0000, Hugo Trippaers wrote:
> Hey all,
> 
> We have invested a lot of effort in creating upgrade paths from
> older releases to the latest version. As a sysadmin this is one of
> the things I value CloudStack for. 
> 
> However as a developers there are some drawbacks to this. It means
> every time we release a new version we need to QA the entire upgrade
> path to check if users can upgrade to this new versions. With the
> speed and features we are picking up, I'm expecting this to become a
> large burden in the near future. My proposal would be to draw a line
> somewhere. Personally I think it would be ok to say to a user that
> wants to upgrade from version 2.2.14 to 4.2 to first upgrade to
> version 4.0.x en than upgrade to 4.2.x.  For our code it does not
> really matter that much, but it does matter for QA and packaging.
> 
> For QA we can safely assume that the upgrades from 2.2.14 to 4.0 are
> covered by the 4.0 release. If we run into trouble, we release a
> maintenance release of that version. QA for new versions should
> focus on a stable upgrade path for one or two recent versions and
> can "ignore" old versions in the process.  With only a few versions
> to test against we could also automate parts of this.
> 
> For packaging it is also great. Especially with the current changes
> in naming (from cloud to cloudstack) and potential future changes to
> integrate better with distributions it becomes handy  to be able to
> have short upgrade paths. How reasonable is it to have an upgrade
> path for 2.2.14 in the RPM when that rpm is built for RedHat 7.
> 
> I would be in favor of supporting upgrades from the first major
> release in any series. For example 4.1, 4.2 and 5.0 should have a
> tested upgrade path from 4.0. 5.1 would have an upgrade path only
> from 5.0.
> 
> What do you guys think?
> 

This should probably go to user@ as well considering a lot of
sysadmins/operators are pained by our upgrades. 

As you've listed there's two areas where we can improve: QA upgrade
testing and the packaging. I'll speak for the former here since it is
mostly a manual process now:

The major drawback of our upgrade is the need for the server to be
running to perform an upgrade making automating it a difficult task.

Many of the upgrade issues stem from improper schema scripts. If the
database upgrade itself can be separated and performed across versions
(any X to any Y) it can easily be scripted and run for every script
change in setup/db. 

There's proven methods of doing database change managment [1] and we've
taken a good first step in establishing a base schema [2] at 4.0. It's
probably the right time to think about these things now that 4.1 has
been stalling for a while with upgrade issues.

[1] http://blog.42.nl/articles/automate-liquibase-migrations/
[2] 
http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx

-- 
Prasanna.,

------------------------
Powered by BigRock.com

Reply via email to