Updating an Overcast Cluster requires a certain amount of planning since we need to update the Lobby and all Game Nodes at the same time, while avoiding service interruptions.
This guide will walk you through the optimal steps to update your Overcast Cluster while minimizing downtimes.
There are two possible types of cluster updates:
- An update patch, which can be applied to a live system; e.g. SFS2X patch 2.18.3 is available and your cluster is running version 2.18.0.
- A new major release, which requires a full install; for instance SFS2X 2.19.0 is available and your cluster is running version 2.18.0.
As with standalone SmartFoxServer, an update patch allows to upgrade an existing installation, while a new major release comes with a complete installer and needs to be setup from scratch. This in turn means that upgrading to a new major release requires migrating your current configuration and Extension code.
Updating all cluster nodes to a new patch (e.g. from 2.18.0 to 2.18.3) involves the following steps:
- Update your snapshot server or, if you don't have one, create it and set it up
- Create a new snapshot of the server
- Deactivate all Game Nodes from the AdminTool
- Update the Lobby Server and reference the new snapshot
- Start one or more Game Nodes manually
If you're planning to move to a new major release the same workflow applies, only you should replace any instances of "Update" with "Create". For example points #1 and #4 require to create new servers/snapshots rather than relying on existing ones.
Let's now analyze each of these steps a bit more in detail.
1) Update the snapshot server
The snapshot server is the instance used to prepare the main snapshot for Game Nodes. Keeping an active snapshot server is a good idea, if you often need to apply changes, but it's not mandatory. You can also re-create it on demand from the latest snapshot, when needed.
If you don't have an active snapshot server go ahead and create one, starting from the latest snapshot available. Next you will connect to it via the AdminTool and select the Cluster Updater module.
Here you can review the latest update available with the relative release notes and decide if you want to proceed with the update. When you click the Update button the system will start the update process immediately, which is going to be followed by a SmartFoxServer restart. So don't worry if you will be logged out from the AdminTool, it is expected.
2) Create a new snapshot
After its restart, the server is ready for a new snapshot. If you need to update anything else, such as configuration settings or Extensions, this is a good time to go ahead and do so. Next you can create a new Game Node snapshot by clicking the [Actions] icon of the selected server and choosing the Take snapshot menu option.
3) Deactivate all Game Nodes
At this point you have to deactivate all current Game Nodes from the cluster. This will simply tell the Lobby that these Game Nodes are no longer available to receive new players, but they will continue to run and handle all of the current active games.
Eventually this group of servers will become empty and will be removed from the cluster while the new and updated Game Nodes will take over (see the next steps).
The operation is performed from the AdminTool's Cluster Monitor.
Here you have to select the nodes to deactivate and proceed by clicking the Deactivate nodes button. Once this is done you can still find these Nodes under the Inactive nodes list on the same panel.
One last thing you should check is if you have old Game Nodes under the inactive section that are recyclable. These are empty servers that are still running and could be re-activated when a Scale-up event occurs. They are recognizable by a green light in the "R" column (for Recyclable) of the table above. These should also be deactivated as well.
4) Update the Lobby Server
The process for updating the Lobby Node is the same used at step #1 for the snapshot server. By selecting the AdminTool's Cluster Updater module you can verify the latest update available for the major version in use and trigger the manual update.
This operation also requires a server restart, once you confirm the operation you will be disconnected from the current Admin session.
5) Start one or more Game Nodes manually
Once the Lobby has been updated, you need to launch at least one Game Node manually to rebuild the cluster. Typically one server can be enough since the Orchestrator will trigger more "ScaleUp" events and add more servers as they are needed.
From the AdminTool's Cluster Monitor module click the Scale-up button.
A dialog box will open asking how many Game Nodes to launch.
Finally you can check the logs of the operation in the Orchestration Log tab.
As mentioned in the introduction, the process of upgrading an Overcast Cluster is more complex than updating a single instance but, if you follow our walkthrough, you should be able to reduce downtimes to a bare minimum, just the time for the Lobby to be restarted.
Here are a few more suggestions that can help optimizing the process:
- Notify your user base in advance that a maintenance activity is scheduled for a specific day and time.
- For the update time, choose a moment of the week where you have the least amount of traffic.
- Before manually upgrading the Lobby (which triggers a restart), send an Admin message to all players notifying that the server will go down for a few minutes.
Finally, the Admin message can also be useful to automatically reconnect players to the Lobby after a while (remember: the Lobby takes a moment to restart). Since many players are probably engaged in a gaming session the client can detect the "maintenance" Admin message and use it as a signal that a reconnection to the Lobby will be required.