When you are hosting your own Atlassian Apps, upgrades can be the bane of your existence. For those hosting them with Contegix, it’s a breeze…. because we do all the work!
Here’s How It Works:
From the customer, we request the following information prior to beginning:
- What specific instance do you want upgraded? (e.g. wiki.example.com)
- What specific version do you want to upgrade to? (e.g. newest available,
- Should we update all plugins requiring updates?
- Are there any customizations we need to pay attention to during the upgrade? (e.g. specialized jarfile, custom icons, etc.) ** Note: we may also have follow-up questions after we review the specific environment.
Other things we may have to contact you about before getting started:
- If certain plugins are incompatible or ‘unknown’ if compatible with the newer version, we will inform you prior to updating so your team can review.
- If Postgresql/MySQL needs to be a newer version in order to be compatible with the newer application version. Generally we try to do this upgrade in a separate maintenance window, if at all possible to narrow down any potential issues before they happen.
- If java has to be updated for the newer version, we will request your approval.
- If you are due for a license update, we will notify you so the details can be worked out ahead of time.
Planning & Prepping
Once we have the info, we prepare the schedule by prepping as many steps as possible, and writing out specifically what we will do for the upgrade. We begin by making a backup of the data directory (using rsync) for the instance during prep, this is refreshed immediately before we do the actual upgrade. Then we deploy the new version in the Contegix-standard location. Next, we symlink the new deployment to ‘next’ during the preparation phase, and fix up the various configuration files to match the previous version, updating where necessary (e.g. server.xml, setenv.sh, etc.)
After that, we ensure the java version is correct and ready to go. Then we rsync the existing application data directory to the new version, data/next so that will be ready to go. The written steps and preparation work will then be reviewed by 2 more engineers prior to actually running (3 sets of eyes in total on the one procedure).
Let The Upgrading Begin
At the maintenance window, we shut the instance down, and make a fresh db backup of the instance. We refresh our backup of the application’s data directory
We move the symlinks around, e.g. current -> previous, next -> current. If java is being updated, we update the setting to point to the newer java version (If the SQL instance had to be upgraded, this would have been done beforehand or at beginning of this maintenance). We update the apache vhost if necessary (e.g. copying the pre-modified vhost file into place after backing up the old one). Next, we start the instance up under its new version. We upgrade any plugins necessary, starting with the UPM. If we are doing a JIRA upgrade, we run a full foreground reindex for the instance. After that, we log in to the instance and check for any errors. Finally, we turn the newly-updated instance over to your team for QA checks.
If your instance encounters any problems, we fix them immediately. If the issues turn out to be show-stoppers, and the maintenance window is up, we can simply rollback to the known working instance using the backup made beforehand.
As you see, upgrading your Atlassian instance is no easy task. There are many details involved and it requires a lot of preparation and expertise. If upgrading your Atlassian Applications are eating up too much of your time, contact us. We are the Atlassian Hosting Experts! We handle everything from installation to upgrades.