Gosu.ai: Playing with preemptible VMs for faster delivery, more savings, and happier gamers

About Gosu.ai

Gosu.ai is an esports training platform that helps gamers to improve their skills by delivering rapid, automated analysis of their gameplay and personalized recommendations. Founded in 2016, Gosu.ai is based in Lithuania and has more than 500,000 active users.

Google Cloud results

Operates a team of 15 developers working independently of a DevOps engineer

Generates KPI dashboards that access powerful analytics on-demand

Cuts the cost of infrastructure by 80%

Right now, up to three million people around the world may be playing Player Unknown's Battleground (PUBG), an online "battle royale" game where players fight it out to be the last one standing. At the same time, every month, another 10 million people enter the colorful arenas of Dota 2 to hone their strategy and teamwork. Games are big business, and in addition to playing, millions more follow the surrounding esports universe of sponsorships, tournaments and more, worth an estimated US$1 billion.

Created in 2016, Gosu.ai offers a first-of-its-kind service to more than 500,000 active users looking to improve their gaming skills. After playing a match in Dota 2, PUBG, and the first-person shooter CS:GO, users send a recording of their gameplay to Gosu.ai, which offers expert advice within seconds on tactics, tips, and which skills to work on.

"There are often events in games that attract large numbers of users at once, meaning we need to quadruple capacity for several days. We looked for a way to decrease our spend on virtual machines, with a platform that provides an effective autoscaler. We've found both with Google Cloud."

—Peter Romov, CTO, Gosu.ai

"It's a personal coach for computer games," explains Peter Romov, CTO at Gosu.ai. "It automatically watches replays of a user's matches, performs a deep analysis of their gameplay, communicates advice to the player, and tracks their learning progress. We aim to help the majority of players, not just beginners, who want to bring their skills up to a professional level. And we provide that service by combining statistical analysis with the knowledge of highly skilled human players."

To do that, Gosu.ai created an analyzer that uses algorithms to turn raw data from a game into useful statistics and recommendations. The demands of that data processing make the analyzer the largest and most expensive element of the Gosu.ai architecture, and by 2017, the team encountered mounting problems with its original cloud infrastructure provider.

"There are often events in games that attract large numbers of users at once, meaning we often need to quadruple capacity for several days," says Peter. "We looked for a way to decrease our spend on virtual machines, with a platform that provides an effective autoscaler. We found both with Google Cloud."

Driving down costs with Google Kubernetes Engine and preemptible VMs

As software-as-a-service products become successful, they need to find cost-effective ways to scale at speed. Gosu.ai built up its infrastructure from a single virtual machine (VM) to cater to the increasing popularity of its gaming assistant, but soon found it needed to rethink its architecture. "The first version of our product was hosted on a single VM," says Peter. "We used Docker as a primary tool for deployment, and as we rapidly grew, we moved first to multiple VMs with Docker Daemon, and then decided to switch to Kubernetes. Then we began to run into problems. The VMs were expensive, the Kubernetes container orchestration service we were using was unstable and had no autoscaling tool."

Gosu.ai decided to migrate the analyzer to Google Cloud. With Google Kubernetes Engine (GKE) to orchestrate clusters, the team trusts the platform's autoscaling tool to match demand when it spikes and to scale down rapidly when it subsides, meaning it only pays for the processing it uses. To monitor the health of the analyzer, the team uses Stackdriver to store logs from the Kubernetes containers. "GKE surprised us with just how easy it is to manage and the way it integrates with other Google Cloud services, such as Cloud Load Balancing or Cloud Storage, which we use to keep the video files of replays."

"Preemptible VMs deliver excellent value in our gameplay analyzer. They're very low-cost, but they can be withdrawn at any time, so we use Google Kubernetes Engine to move tasks to another VM as soon as that happens. That has a major positive impact on the infrastructure cost per user."

—Peter Romov, CTO, Gosu.ai

For deep product analytics, Gosu.ai sends raw game data, processed data, and recommendations to BigQuery. "With Google BigQuery, we can do ad hoc analytics and propose ideas about how to improve our services," says Peter. "Using Google Data Studio on top of BigQuery, we've created a business dashboard with KPIs such as user acquisition cost, user retention, and the infrastructure cost for each user. Without BigQuery, we'd have to run an alternative service on VMs, and it wouldn't be fully used most of the time. With BigQuery we pay just for the requests we send."

As well as using GKE to improve the efficiency of the way VMs are used, Gosu.ai dramatically reduced the cost of the VMs themselves, using preemptible VMs.

"Preemptible VMs deliver excellent value in our gameplay analyzer," says Peter. "They're very low-cost, but they can be withdrawn at any time, so we use Google Kubernetes Engine to move tasks to another VM as soon as that happens. That has a major positive impact on the infrastructure cost per user."

Integrating chatbots and better AI for future gamers

In the year since Gosu.ai migrated to GCP, the company's user base has increased by 500%. "Before the migration, with 100,000 users, we spent more on VMs than we do now," says Peter. "That means we've effectively reduced our expenses by more than five times, thanks to preemptible VMs and autoscaling on GKE." In addition, the team operates with 15 developers working independently of any DevOps specialist. "We consider that to be one of the best aspects of working with Google Cloud," says Peter. "We don't have to spend time managing infrastructure, because the work is done by Google Cloud. Instead, we can focus on faster delivery of features."

"Google Cloud helps us to grow fast by delivering more functionality with less expensive infrastructure, and we don't waste time on infrastructure issues because the services work so well. Unlike other providers, Google Cloud isn't just called Infrastructure as a Service. It's the real thing."

—Peter Romov, CTO, Gosu.ai

Now the team is working to build its user base and deploy its product to two more of its popular games, and more in the future. "We already use TensorFlow to identify where players have made mistakes and automatically label those moments in replays, so that we can train them before they commit errors. We're also trying to use speech recognition and Dialogflow to improve our chatbots, so that users can ask questions during game sessions using voice commands."

"Google Cloud helps us to grow fast by delivering more functionality with less expensive infrastructure, and we don't waste time on infrastructure issues because the services work so well," says Peter. "Unlike other providers, Google Cloud isn't just called Infrastructure as a Service. It's the real thing."

About Gosu.ai

Gosu.ai is an esports training platform that helps gamers to improve their skills by delivering rapid, automated analysis of their gameplay and personalized recommendations. Founded in 2016, Gosu.ai is based in Lithuania and has more than 500,000 active users.