Amazon ECS, AWS Fargate, Amazon ECR, Amazon Elasticache for Redis
Amazon Web Services
Sufle began designing an effective infrastructure for Boa Games from the ground up, starting with an organizational structure. Since Boa Games is a game studio with potential different games upcoming, AWS Organizations was set up with a per-game account structure. This enabled isolation of not just environments, but also both team and project level access controls.
Both SRE and Development teams from Sufle teamed up with the BOA Games to analyze application behavior and their requirements. Even though the application was not cloud-ready, the application’s cloud-native adaptation was achieved in a short period of time through training and knowledge sharing between teams. Applications were containerized, the local environment was adapted to containerization. Main concern was the soft underbelly of many applications, websockets. Horizontally scaling becomes a challenge due to the stateless nature of websockets. Sufle’s past experiences came to the rescue, the websocket backend was modernized with Redis as main pub-sub component.
While application modernization was under its way, the SRE team started coding the infrastructure with Terraform. Each component used in the infrastructure was coded, tested, and version controlled. Application runs on an AWS Fargate cluster on Amazon ECS, hence no servers are managed. Container images are hosted on Amazon ECR and are scanned for vulnerabilities continuously. Hosting the application on Amazon ECS made autoscaling a breeze. Application was designed to use a relational database, so Amazon RDS was utilized to host the application's database instance with multi-az support, accordingly. Amazon RDS Performance Insights are enabled to gather all the metrics, which helps us determine soft spots, bottleneck queries, tables that need indexes and more importantly the right database instance size. Finally, for the websocket backend, a resilient highly available Amazon Elasticache Redis cluster was set up with auto-failover capabilities.
After setting up the infrastructure, a continuous deployment pipeline was built to deploy the application. All components and flows were tested and validated to work, and the first batch of test users were onboarded to the application as a closed beta testing group. Beta testing helped us analyze the application’s footprints, right sizes for the tasks, autoscaling and all other components in the infrastructure. When the testing was completed, everything was ready to go.
Cap Royale was launched on all major mobile stores in the Turkey region, boosted with marketing campaigns on many popular platforms. While thousands of users were downloading and playing the game, both Sufle and BOA Games teams were closely monitoring, analyzing metrics, gathering feedback and checking out for any issues. It was a huge success with the help of the right design, even though install numbers were skyrocketing.
At the end of the day, Cap Royale became a sensation in the mobile gaming market. It was played by more than 150.000 users in the first month, became #1 app in the strategy category in the first week after launch. For the near future, BOA Games is planning to go further in the serverless direction and experiment with Amazon DynamoDB. Cloud adaptation has given the team the notice that replacing the current SQL database with a fully serverless NoSQL database would optimize the operations even further, and make it a no-hassle to launch in the overseas markets.