Developer Advocate for Game at Google Cloud Platform for Google
Mark Mandel is a Developer Advocate for Google Cloud Platform and one half of the Google Cloud Platform Podcast. Hailing from Australia, Mark built his career developing backend systems for over 15 years and authoring and contributing to several widely adopted open source projects. When he’s not building infrastructure in the cloud for games, he’s constantly looking for new and interesting things he can do with Docker containers, playing with his dog and reading too much fantasy literature.
Scaling Dedicated Game Services with Containers
Awesome! You’ve built the next Overwatch! You have your game client, and your dedicated game server to power each of these game sessions as your players duke it out in your new amazing PvP tournament, or MOBA death match.
Now you need to write all the code to spin up a game server to run with each match, power up machines to run those game servers, and ideally, autoscale it all to match the load of your players. This sounds like a lot of work, and we haven’t even talked about things like log aggregation, health checking, deployment of new version of your game servers and all the annoying ops requirements that come with building your own infrastructure. Let’s also not mention doing the same for any of the supporting services you may also want to host, such as matchmaking, account management or an auction house.
The good news is, there are open source projects that can solve almost all the problems outlined above, for both dedicated game servers as well as their supporting applications – namely software containers with Docker and the Kubernetes project to help orchestrate them. Kubernetes allows us to take advantage of the abstraction that containers provides over any kind of software, and thereby gives us common solutions that work for deployment, health checking, logging, scaling and more. In this talk we will look at the basics of how these two projects work, and how they can be used to scale, and autoscale, both our game servers and their supporting infrastructure, with relatively low effort compared to building this infrastructure yourself. Finally we will run a Unity based multiplayer game on our newly built infrastructure, so you can see it all in action!