Mountkirk Games - Cloud-based Backend Design for Popular Game

Designing a Cloud-based Backend for Mountkirk Games' Popular Game

Question

Mountkirk Games makes online, session-based, multiplayer games for mobile platforms.

They build all of their games using some server-side integration.

Historically, they have used cloud providers to lease physical servers.

Due to the unexpected popularity of some of their games, they have had problems scaling their global audience, application servers, MySQL databases, and analytics tools.

Their current model is to write game statistics to files and send them through an ETL tool that loads them into a centralized MySQL database for reporting.

Solution Concept - Mountkirk Games is building a new game, which they expect to be very popular.

They plan to deploy the game's backend on Google Compute Engine so they can capture streaming metrics, run intensive analytics, and take advantage of its autoscaling server environment and integrate with a managed NoSQL database.

Business Requirements -Increase to a global footprintImprove uptime " downtime is loss of playersIncrease efficiency of the cloud resources we useReduce latency to all customers Technical Requirements - Requirements for Game Backend PlatformDynamically scale up or down based on game activityConnect to a transactional database service to manage user profiles and game stateStore game activity in a timeseries database service for future analysisAs the system scales, ensure that data is not lost due to processing backlogsRun hardened Linux distro Requirements for Game Analytics PlatformDynamically scale up or down based on game activityProcess incoming data on the fly directly from the game serversProcess data that arrives late because of slow mobile networksAllow queries to access at least 10 TB of historical dataProcess files that are regularly uploaded by users' mobile devices Executive Statement - You want to follow Google-recommended practices.

How should you design the backend?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

A.

The solution concept for Mountkirk Games is to deploy their game backend on Google Compute Engine, which allows them to capture streaming metrics, run intensive analytics, and take advantage of its autoscaling server environment and integrate with a managed NoSQL database. The business requirements are to increase their global footprint, improve uptime, increase efficiency of cloud resources, and reduce latency for all customers. The technical requirements for the game backend platform include dynamically scaling up or down based on game activity, connecting to a transactional database service to manage user profiles and game state, storing game activity in a timeseries database service for future analysis, ensuring data is not lost due to processing backlogs, and running on a hardened Linux distro. The technical requirements for the game analytics platform include dynamically scaling up or down based on game activity, processing incoming data on the fly directly from game servers, processing data that arrives late because of slow mobile networks, allowing queries to access at least 10 TB of historical data, and processing files regularly uploaded by users' mobile devices.

To follow Google-recommended practices, the backend should be designed using an instance template for the backend. For every region, it should be deployed on a multi-zone managed instance group to increase availability and redundancy. The load balancer should be an L7 load balancer, which provides application-layer routing and can distribute traffic based on various factors, such as URL or cookie values. This allows for more granular control over traffic routing, which is important for a session-based, multiplayer game. Additionally, an L7 load balancer can offload SSL termination, which reduces the load on backend servers.

Therefore, the recommended design for the backend is option C: create an instance template for the backend. For every region, deploy it on a multi-zone managed instance group. Use an L7 load balancer.