Performing a rolling upgrade of your platform
Platform upgrade is a key aspect of a platform high availability. While it is essential to ensure that a platform stays up-to-date at all time (for a number of reasons ranging from security, to performance improvements and getting the latest fancy features released in each version), platform upgrade can also mean service downtime.
The rolling upgrade presented here allows to use the existing servers and update them one at a time while serving HTTP traffic with the remaining computation power. Click on the following image to watch an animation.
Prerequisites
The procedure works with the following Jahia target versions:
- 7.3.0.0 and later
- 7.2.3.2 and later
Performing a rolling upgrade
Consider the following environment: a cluster of 3 nodes in the version X behind a load balancer (represented by the logo). The steps show how to migrate the environment to the version X+1 without service disruption.
We advise that you perform this procedure during a period of low activity and traffic as the upgrade requires to use the full read-only mode and the ability to remove a node from the load balancer at any time during the upgrade procedure.
Here is the environment is in its initial state:
To perform a rolling upgrade
- Turn all nodes of the cluster in full read-only mode. The procedure is described here.
- Create a backup of your environment.
- Create a copy of the database, in what we’ll call “DB Schema B”
Your environment is now in the following state:
- Remove the processing node from the load balancer so it does not serve any requests.
- Stop the processing node.
- Point the processing node to the copied database “DB Schema B”:
- Migrate the processing node.
- Before restarting the node, create a marker file (empty file) named "rolling-upgrade" in the <digital-factory-data> folder. This will prevent any conflict with the other nodes. The description of this marker is available here.
- Restart the node. Note that the node will not be in full read-only mode anymore.
- Traffic can be redirected to this node:
- Repeat the steps 5 to 12 for the other, non processing, nodes (remove from load balancer, stop, point to migrated database, migrate the node, create backup-restore file and restart):
Your environment is now migrated to the newer version.