top of page
  • Writer's pictureALIF Consulting

Customer Leverages Terraform and Azure to Scale Gaming Platforms (Scaling Gaming Platforms)

Updated: Nov 28, 2023


Customer Introduction

Scaling Gaming Platforms

Up through 2018, the customer ran its core game platform on-premises and at co-location facilities. To achieve the scalability needed for Rogue Company, its latest game, customer moved its core platform to Azure Kubernetes Service and Azure SQL, using Kafka for messaging, HashiCorp Terraform for deployment, and GitHub for source control and collaboration. Since then, customer has adopted several additional Azure services, open-source solutions, and HashiCorp tools—giving the company a scalable DevOps environment that is benefiting both the company’s centralized back-end services team and its portfolio of game studios.

Continued Success

Up through 2018, the customer ran its core game platform on-premises and at co-location facilities. To achieve the scalability needed for Rogue Company, its latest game, customer moved its core platform to Azure Kubernetes Service and Azure SQL, using Kafka for messaging, HashiCorp Terraform for deployment, and GitHub for source control and collaboration. Since then, customer has adopted several additional Azure services, open-source solutions, and HashiCorp tools—giving the company a scalable DevOps environment that is benefiting both the company’s centralized back-end services team and its portfolio of game studios.

Containerization on AKS

As the customer moved its on-premises applications into Azure Kubernetes Service, they also migrated the data stores needed to support those applications to Azure. Azure SQL Managed Instance provided a simple migration path for older databases, while Azure SQL Database Hyperscale tier gave customer the scalability needed to handle the massive database load that Rogue Company would eventually generate.

Initial Gen-2 efforts also marked the company’s adoption of Azure Container Registry, which stores container images before they’re deployed into Azure Kubernetes Service.

with Azure Kubernetes Service is beyond anything customer could have achieved before, and the way it automates everything for us is like having a free ops team

Adoption of other Azure Services

While Azure Kubernetes Service and Azure SQL were primary enablers for supporting more concurrent gamers, they aren’t the only Azure services that customer has adopted to meet its scalability needs. The company’s homegrown ETL pipeline that feeds its data warehouse—developed soon after the company’s move to Azure—is a good example.

In the past, the ETL pipeline used long-running Python scripts that ran on game server instances for data collection. Other Python scripts running as scheduled jobs would then periodically collect that data, transform it, and load it into the data warehouse. The problems provided by this approach were manifold.

Customer solved all these problems by rebuilding the ETL pipeline using Azure services. Today, the game servers send HTTP messages containing file content to an Azure Function, which stores that data in Azure Blob Storage. The function also sends an event to Azure Event Hub, upon which another Azure Function loads the information into the data warehouse.

Use of Open Sources

As the company’s use of Azure services has expanded, so has its use of open source. Today, in addition to Kafka,the customer also uses Apache ZooKeeper for configuration management, Linkerd as a service mesh, FastAPI to publish APIs written in Python, and HELM for the deployment of containerized applications into Azure Kubernetes Service.

GitHub for Source Control

Historically, Customers used Perforce for all its source control needs, as do most leading game studios. However, since the company’s move to Azure, the Back-end Services Team has moved almost all of its code to GitHub.

The Back-end Services Team also uses GitHub for things like change requests from other parts of the business.

Customers use it for pull requests and other coordination tasks. The HELM charts for our Kubernetes environment are also stored in GitHub, which we use to automate a CI/CD process for each of our environments. And we run many environments for each game, so there’s a lot to manage in that area. Being able to stay hands-off via automation has been a huge win

Hashicorp Tools for DevOps

Alongside Azure, open source, and GitHub, tools from HashiCorp comprise the fourth major pillar of the company’s Gen-2 architecture. Use of the HashiCorp suite began alongside the move to Kubernetes, when the company began using HashiCorp Terraform to describe the deployment of Azure Kubernetes Service clusters using code stored in GitHub.

Terraform lets customer codify what we want in a text file then creates that infrastructure for us, in a fully documented and repeatable manner. With Terraform, any time we deploy a Kubernetes cluster or other resource, we know that it was setup correctly.

Terraform also makes provisioning new infrastructure faster and easier. The new ETL pipeline Xie developed is a good example.

Customer also adopted HashiCorp Packer, which enables the creation of identical machine images for multiple platforms from a single source configuration.

Solution Design


Solution Design

A Successful Launch

Customer released Rogue Company into open beta in October 2020 across the Windows, Xbox One, PlayStation 4, and Nintendo Switch platforms, with an Xbox Series X/S release following in November 2020. A PlayStation 5 release followed in March 2021, and the game came out of beta in May 2022.

The company’s Gen-2 architecture based on Azure, GitHub, open source, and the HashiCorp suite helped pave the way for the success of Rogue Company, delivering the scalability needed to support 15 million players within the first two months—followed by millions more since then.

What’s more, with the DevOps environment that customer now has in place, developers across the company are also more agile—able to deliver new functionality faster and with fewer distractions.

Looking forward, as customer continues to delight gamers with new experiences, the company plans to continue relying on the technology partners that helped it get to where it is today.

Recent Posts

See All

Comments


bottom of page