Actually this is not very reasonable at all, unless you have a different
definition of production than I. The only sane way to run a production
environment is a single version. You should always use the approach
described in your second paragraph. Have as many versions as you want in
a development environment, do your testing there, then roll the new
version to production.

As for easy way out, you should never roll anything into production
without a rollback plan. It would not be hard to devise several
different rollback plans for this sort of upgrade.

Ken Williams wrote:

> It's quite reasonable to have multiple versions of perl in a
> production environment, even though it may be a pain in the
> ass.  The main reason is for forward transition and backward
> compatibility.  If you've got 100 applications on a server,
> chances are some of them are going to break when you upgrade
> perl (more precisely, when the included modules change).  So the
> safest sane way to transition forward to new versions of perl is
> to make sure that you keep the old & new versions separate, so
> that applications can choose which one they're using, and then
> "go live" with the updated versions when they've been properly
> updated & tested in development.
>
> The alternative is to do all the testing & development in
> advance on a development machine for all 100 applications so you
> can upgrade them all at the same time, when you install the new
> perl and blow away the old perl.  And this doesn't give you an
> easy way out if some application starts having unforeseen
> problems, short of rolling back the entire upgrade.

Reply via email to