Allocations
IMS zeuz operates on declarative specifications of game servers known as Allocations. An Allocation is responsible for creating, running and deleting Payloads dynamically to scale with your game server demand.
How does an allocation work?
When an Allocation is defined, the system will continuously monitor it to ensure the desired state of the Allocation is satisfied. How does it do that?
- Find all running Payloads in this Allocation
- If there are fewer (or more) payloads in
Ready
state than defined in theBuffer Size
, the system ensures payloads are created (or deleted). During this action, the system also takes into account the specifiedMin payloads
andMax payloads
properties and the total number of payloads will never go below (or exceed) these thresholds. Only payloads which are notReserved
will be automatically scaled by the system. - Collect information about each payload running to compute an
Allocation Status
.
Allocation statuses
Defining an allocation
An Allocation has a range of properties which configure, and customize, the Allocations behaviour.
General properties
Name
: How do you want to call the allocation? This is used only by humans to find the Allocation.Region
: The region in which the allocation should be created. To add a region speak to your Account Manager.Annotations
: (optional) Arbitrary set of key:value pairs attached to the allocation, this data does not get added to payloads.
Game server properties
CPU
: How much CPU do you expect each Payload to use?- Examples:
1.5
(one and a half CPU cores),200m
(200 millicores).
- Examples:
Memory
: How much memory do you want each Payload to have?- This is not a hard limit for the payload. It's used to determine how many payloads can fit on a machine.
Examples:
100Mi
,1Gi
. Careful: 100m (lowercase m) means 0.1 byte. See resource units in kubernetes for more details.
- This is not a hard limit for the payload. It's used to determine how many payloads can fit on a machine.
Ports
: Specify ports. Each port has a name, internal port number, protocol and policy.
Port policies
See the different port policies and how to use them in Port policies.
Scaling properties
Buffer size
: How many Ready payloads should the system try to maintain?- Can either be a fixed number (
10
), or a percentage (10%
).A percentage buffer size will try to ensure that x% of all running payloads are in a Ready state. This is useful for scaling the buffer size based on current demand.
- Can either be a fixed number (
Min payloads
: What is the minimum number of payloads (reserved and unreserved) the system should run?- This can be increased to pre-scale the number of available payloads, e.g. before a launch or playtest.
Max payloads
: What is the maximum number of payloads (reserved and unreserved) the system should run?- The system won't scale beyond this amount of payloads, even the buffer is depleted.
Game image properties
Image
: URL of your game Image - this contains your server build.Command
: (optional) Specify the command to run when your container starts.Arguments
: (optional) Specify additional arguments to the command above.