azuregameserversscalingkubernetes

module
v0.0.0-...-af0835f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2021 License: MIT

README

This repository is not maintained anymore. For a similar solution, please check https://github.com/PlayFab/thundernetes

Go Report Card Build Status Software License PRs Welcome unofficial Google Analytics for GitHub codecov

Scaling multiplayer Dedicated Game Servers on Azure Kubernetes Service

Scaling Dedicated Game Servers (DGS) is a hard problem. They're stateful (having the bulk of player data stored in server memory), can't be explicitly shut down (since players might be still enjoying their game) and, as a rule of thumb, their connection with the players must be of minimal latency, especially for real-time multiplayer games.

This repository aims to provide a solution/guidance/building blocks for managing containerized dedicated game servers using the Kubernetes orchestrator on Azure using the managed Azure Kubernetes Service (AKS). However, you could probably use parts of the project to scale memory-stateful workloads.

~ This is currently a work in progress. Not recommended for production use ~

Documentation

Other

Demos

In order to demonstrate this project, we've built a simple "echo" UDP server in Node.js and we've also adapted the OpenArena open source game so it can work with our solution. Both Dockerfiles are stored in the demos folder whereas the corresponding Kubernetes deployment YAML files are located in the artifacts/examples folder.

Docker Hub Images

Images used for this project are hosted on Docker Hub:

Architecture Diagram

architecture diagram

Thanks

To Brian Peek and Andreas Pohl for the countless discussions we had (and still have!) about scaling DGSs. Moreover, I'd like to express my gratitude to the awesome people on #sig-api-machinery channel on Kubernetes Slack for answering a lot of my questions during the development of this project.

Presentation

Checkout a presentation I gave about this project on Open-conf conference in Greece, on March 2019.

Open-Conf Youtube video


This is not an official Microsoft product.

Directories

Path Synopsis
cmd
e2e
cmd
pkg
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/azuregaming/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/azuregaming/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL