Forced Deployment
Last updated
Last updated
The classical approach to updating game servers is to update them all at the same time, within a maintenance window. Clients cannot go online during this window and they will usually have to upgrade their client software in order to go online afterwards, depending on whether it concerns a compatible update or not. No game servers with different versions will exist alongside each other afterwards.
No extra server resources are required. The total amount of game servers will remain equal during a forced update
A maintenance window is required: results in a little downtime during which clients cannot play the game online. It does give your clients time to already update their client software
No way to test your newly deployed game server versions in production. As such, testing must be done beforehand!
Our platform performs several actions during the patching process. These actions can be split into configuration changes and actual deployments.
When a Patch Job starts, the Forced Deployment method will perform the following configuration changes:
Swap the old ID of the selected ApplicationBuild to the new ID, in either the or
Disable automatic scaling on the selected Fleet(s). This is needed to prevent dynamic downscaling of all your game servers during the patching process
The following actions are performed in-order, for each individual application instance:
Download the new build
Stop instance (hard or soft with a timeout)
Remove the old build files while leaving behind any files newly generated by the instance
Deploy the new build files into the same folder as the old build
Start the instance
The Forced Deployment method requires a maintenance window because all instances will updated around the same time, with the option to drain instances allowing players to finish a match.
Figure 1: Creating a new Patch Job - step 1
Deployment Environment: the process will only apply to instances in this environment
Application: the process will only apply to instances of this Application
Old Application Build: the process will only apply to instances running this Application Build - these builds must be of the Application type previously indicated
Fleet(s): the process will only apply to instances running in these Fleets running the aforementioned Application Build
The next screen asks you to provide runtime details for the Patch Job:
Figure 2: Creating a new Patch Job - step 2
Set Patch Job name
Set the new Application Build to deploy
Select patching method: Forced Deployment
Indicate whether to drain instances
If yes, with which timeout?
Set Patch Job start time
Add optional comment
Finally you can add any email addresses that you would like us to send reporting emails towards:
Figure 3: Creating a new Patch Job - step 3
add any email addresses that must receive reporting emails
indicate per address which reports they should receive
The same idea applies for creating a Patch Job via the API, as they do when creating them via the UI. You must pass the ID of the Deployment Environment within which you want to perform the patch, then define the Application ID, old Application Build ID and the Fleet ID(s) to create a selection of running Application Instances to update.
Patch Job creation and maintenance is done via the and pages.
On the Job Queue page you can see pending and running Patch Jobs. You can create a new one by clicking the button. This opens the following multi-step wizard:
Upon successful submission of a new Patch Job, you can find it in your Patch Job overview: .
You can perform all of the above manually if you wish, bypassing our automated systems. For more details on how to do this, please see the chapter. Note that you will not receive any live-reporting emails then.