Mountkirk Games: Cloud-based Scalable Infrastructure for Online Multiplayer Games

Building a Scalable Infrastructure for Online Multiplayer Games

Question

Mountkirk Games makes online, session-based, multiplayer games for the most popular 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 theminto 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 clous resources we useReduce lateny to all customers Technical Requirements - Requirements for Game Backend Platform 1

Dynamically scale up or down based on game activity 2

Connect to a managed NoSQL database service 3

Run customize Linux distro Requirements for Game Analytics Platform 1

Dynamically scale up or down based on game activity 2

Process incoming data on the fly directly from the game servers 3

Process data that arrives late because of slow mobile networks 4

Allow SQL queries to access at least 10 TB of historical data 5

Process files that are regularly uploaded by users' mobile devices 6

Use only fully managed services CEO Statement - Our last successful game did not scale well with our previous cloud provider, resulting in lower user adoption and affecting the game's reputation.

Our investors want more key performance indicators (KPIs) to evaluate the speed and stability of the game, as well as other metrics that provide deeper insight into usage patterns so we can adapt the game to target users.

CTO Statement - Our current technology stack cannot provide the scale we need, so we want to replace MySQL and move to an environment that provides autoscaling, low latency load balancing, and frees us up from managing physical servers.

CFO Statement -

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

A.

From Scenario: A few of their games were more popular than expected, and they had problems scaling their application servers, MySQL databases, and analytics tools.

Requirements for Game Analytics Platform include: Dynamically scale up or down based on game activity.

The question does not provide clear context on what exactly needs to be tested. However, given the solution concept and business and technical requirements, it can be inferred that testing is a crucial aspect of the project, and some specific considerations need to be made.

A. Tests should scale well beyond the prior approaches: This statement highlights the importance of testing the scalability of the new solution, which is a critical technical requirement. It implies that the tests should go beyond testing the scalability of the previous cloud provider and should test the scalability of the new environment built on Google Compute Engine. This testing should include testing the ability of the environment to dynamically scale up or down based on game activity, which is a key requirement for both the game backend and analytics platforms.

B. Unit tests are no longer required, only end-to-end tests: This statement is not entirely accurate. Both unit tests and end-to-end tests have their place in the testing process. Unit tests are essential for testing the individual components of the system, while end-to-end tests are necessary to validate the entire system's functionality. Therefore, both types of tests are required, but the emphasis may shift towards more end-to-end testing due to the complexity of the new solution.

C. Tests should be applied after the release is in the production environment: This statement is not recommended, as it is generally better to catch issues early in the development process to reduce the likelihood of bugs being introduced into the production environment. It is generally advisable to have a robust testing strategy in place that includes various types of testing throughout the development cycle, such as unit testing, integration testing, and end-to-end testing.

D. Tests should include directly testing the Google Cloud Platform (GCP) infrastructure: This statement is accurate, as the new solution will be built on Google Compute Engine and other Google Cloud Platform (GCP) services. Therefore, it is essential to test the GCP infrastructure to ensure it works as expected and can handle the workload. This testing may involve load testing, stress testing, and other types of testing to ensure the GCP infrastructure can meet the business and technical requirements.

In summary, the most appropriate statement for this question is A. Tests should scale well beyond the prior approaches, as it highlights the importance of testing the scalability of the new solution, which is a crucial technical requirement. However, it is essential to note that all the statements in the answer choices have some validity and may be necessary for a comprehensive testing strategy.