Tuesday, March 25, 2008

Upgrading the ControlTier Framework

Our installation documentation does a good job of describing how to establish a new ControlTier infrastructure, but there are a couple of considerations when upgrading an existing setup. Here's a reformatted version of some notes I originally posted to the ControlTier Google Group:

The process of "upgrading in place" has improved significantly over recent releases and I thought I'd document the steps here for anyone contemplating taking it on for an existing project:
  • Preparation

    Please take the precaution of backing up your $CTIER_ROOT directory, committing any ProjectBuilder source changes you might have, and using the "Create Archive" function of the Workbench administration page to safeguard a copy of your project(s) before starting.
  • Software upgrade

    After shutting down Workbench and Jobcenter, upgrade the ControlTier software on your ControlTier server following the installation process documented on Open.ControlTier. Many of the steps will be redundant, but you can still follow the process to safely overwrite and supplement your existing installation. Make sure you make any site-specific "default.properties" changes that may be necessary. Once the installation process is complete, you'll have an updated ".ctierrc" in place, so make sure to restart Workbench and Jobcenter from a new shell. Follow the client-only software installation process to upgrade any client systems you may have in the same manner.
  • Base seed upgrade

    Each release of the ControlTier software comes with an updated set of base modules. These are automatically utilized when new projects are created, but existing projects need to be explicitly upgraded. The software upgrade process places the base seed archive on the ControlTier server's WebDAV at http://localhost:8080/webdav/seeds (or wherever you're running the server). With your project selected in Workbench, use the administration page's "Import Seed" function to load the "base-seed.jar" file. You'll need to repeat this for each active project in Workbench. (Note that you can also use ProjectBuilder's "load-library" command to upgrade the base seed).
  • Module upgrade

    The final step is to bring the server and client nodes' Antdepo module cache into line with the newly updated project(s). The cleanest way to do this currently is:

    1. Remove the depot's module library cache (e.g. "rm -rf $ANTDEPO_BASE/depots/myproject/lib").
    2. Re-create the project's depot structure (e.g. "depot-setup -p myproject -a create").
    3. Re-install the project's deployments (e.g. "depot-setup -p myproject -a install").

    Note that this approach leaves your project's deployment working files (under "$ANTDEPO_BASE/depots/myproject/deployments") completely untouched. In fact you can safely apply this upgrade while your application deployments are running.
Anthony Shortland.

No comments: