Skip to content

DeploymentProfile

The DeploymentProfile is the main element that determines how your ApplicationInstances will be deployed.

Figure 1: Highlighting where the DeploymentConfiguration element belongs in the overview

Usage

A DeploymentProfile is always the only child of a Fleet. As such, you can only have one DeploymentProfile per Fleet.

A DeploymentProfile allows you to set global deployment configuration options which define how ApplicationInstances are deployed within its DeploymentRegion children. DeploymentRegions allow you to override most configuration options.

Element structure

Property Value type Required Description
id string Read-only Unique identifier of this element
name string Yes Name of the DeploymentProfile
description string No A custom description
strategyType int Yes Deployment strategy
1: round robin
minimumCapacity int Yes The minimum amount of game instances that should always be deployed for each region in this fleet. Can be overridden per region
bufferValue int Yes Global buffer value, to be applied to individual deployment regions. Can be overriden per region
bufferValueType int Yes Interpretation of the bufferValue property:
0: absolute value
1: percentage value (must be accompanied by bufferValueMin and bufferValueMax)
bufferValueMin int No The minimum absolute buffer value when using a percentage, to prevent bufferValue from going to low
bufferValueMax int No The maximum absolute buffer value when using a percentage, to prevent bufferValue from going to high
markedForDeletion boolean Read-only When true, we will also make sure markedForDeletion will be set to true in all subsequent deployment regions. We will then only scale down in those regions until all game servers and VMs have been removed. When that situation is reached, we will set the deployment profile to inactive
deploymentRegions [DeploymentRegion] Read-only All deployment regions of this profile
createdAt int Read-only A unix timestamp of when this element was created
Table 1: DeploymentProfile element structure

Minimum capacity

When you enable automatic deployment or automatic scaling on a Fleet, our automatic scaling mechanism will start by deploying the number of Application Instances defined by the DeploymentProfile.minimumCapacity value. The number of deployed instances will never drop below this value, even if there are no players at all. The minimumCapacity value as such can be used in preparation for a new release, to ensure you have enough game servers to begin with upon release of your game.

If the DeploymentProfile.minimumCapacity value exceeds your bare metal capacity, the scaler will continue to deploy in the cloud, provided cloud locations have been defined for the relevant regions.

The DeploymentProfile.minimumCapacity value defines the minimum capacity - minimum amount of deployed game servers - for each individual region. You can override this value per region in case you would like more instances deployed in a region where you expect more players. But keep in mind, minimumCapacity is just for the initial deployment of instances. Our scaling mechanism will of course start scaling instances if more players are needed [in a certain region].

The bufferValue

Besides the minimumCapacity setting, there is the bufferValue setting which determines the size of the pool of ApplicationInstances that must be available at all times. The purpose of this buffer is to catch sudden increases in the number of players and as such, to attempt (to ensure) there are always sufficient free game servers for your clients to join. In other words, the bufferValue is there to compensate for the time it takes to deploy game servers. The longer that takes (related to the size of your build files), the larger the buffer should be. The larger the buffer, the less risc there is of running out of available game servers. It is therefore important not to set this value too low.

API example

Create a new DeploymentProfile within your i3D.net account.

Full API reference

HTTP request

POST /v3/deploymentProfile

Request body

{
  "name": "",
  "description": "",
  "strategyType": 0,
  "minimumCapacity": 0,
  "maximumCapacity": 0,
  "bufferValue": 0,
  "bufferValueType": 0,
  "bufferValueMin": 0,
  "bufferValueMax": 0,
}

Response body

[
  {
    "id": 0,
    "fleetIds": [
      0
    ],
    "name": "",
    "description": "",
    "strategyType": 0,
    "minimumCapacity": 0,
    "maximumCapacity": 0,
    "bufferValue": 0,
    "bufferValueType": 0,
    "bufferValueMin": 0,
    "bufferValueMax": 0,
    "markedForDeletion": false,
    "deploymentRegions": [],
    "createdAt": 0
  }
]