Rayark, a mobile game developer founded in 2011, has published several award-winning games that have garnered millions of downloads. Earlier this month, it launched VOEZ, which is running in production on Google Container Engine (GKE).
Rayark chose to build VOEZ with containers because it wanted to make the game portable across clouds. In the gaming business, it's common for local game publishers to host a game on a separate infrastructure, for improved network latency and to satisfy regional go-to-market demands. Containers’ portable architecture plus Kubernetes will make it easy for Rayark to replicate VOEZ to companies who don't share its infrastructure. Containers also make more efficient use of underlying resources. Moreover, because containers’ underlying OS is already running, they can scale to handle burst demands much faster than virtual machines.
Two weeks after launch, VOEZ had already reached 2 million downloads, but for Rayark CTO Alvin Chung, that success was anything but assured. After all, one study showed that 86% of users deleted or uninstalled apps due to performance issues. Leading up to the launch, Chung wondered whether going with Container Engine was the right choice, whether the backend infrastructure would scale, whether the container technology would behave as expected, and whether Google Cloud Platform would provide the after-sales service that matched its marketing and pre-sales talk.
The answers to these questions started to unfold during beta testing, when 10,000 fans were invited to download VOEZ. The front-end HTTPS Load Balancer scaled seamlessly without any warm-up, but when Rayark conducted large-scale load testing, it started to see some potential bottlenecks. Cloud Platform’s solution architects team advised scaling Container Engine with DNS pods, sharding Redis and tracking down HTTPS connection resets that were related to Python. Once these issues were addressed, the application scaled smoothly. Front-end load balancing sees higher and higher peaks every night after 9 p.m., while backend infrastructure stays under 35% CPU utilization throughout.
Looking back, the success of the VOEZ launch was built on a number of high-level principles:
- Take your time to produce quality software
- Put together a strong developer team
- Explore ways to handle load even if it means using relatively new technology
- Think far, think big. Using open-source technology like containers ensures portability and helps avoid vendor lock-in
- Perform large-scale testing. Your goal is for surprises to crop up as early as possible
- Take advantage of on-site support and monitoring of the production infrastructure from Google partner and presales teams.
Hosting VOEZ on Container Engine has been a big success for Rayark. Here’s to the next two million downloads!