Cloud Infrastructure for Optimizing Test Suite Efficiency

Migrating Your Test Suite to the Cloud: Minimizing Changes, Maximizing Speed

Question

Your company's test suite is a custom C++ application that runs tests throughout each day on Linux virtual machines.

The full test suite takes several hours to complete, running on a limited number of on-premises servers reserved for testing.

Your company wants to move the testing infrastructure to the cloud, to reduce the amount of time it takes to fully test a change to the system, while changing the tests as little as possible.

Which cloud infrastructure should you recommend?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

B.

Google Compute Engine enables users to launch virtual machines (VMs) on demand.

VMs can be launched from the standard images or custom images created by users.

Managed instance groups offer autoscaling capabilities that allow you to automatically add or remove instances from a managed instance group based on increases or decreases in load.

Autoscaling helps your applications gracefully handle increases in traffic and reduces cost when the need for resources is lower.

Incorrect Answers: B: There is no mention of incoming IP data traffic for the custom C++ applications.

C: Apache Hadoop is not fit for testing C++ applications.

Apache Hadoop is an open-source software framework used for distributed storage and processing of datasets of big data using the MapReduce programming model.

D: Google App Engine is intended to be used for web applications.

Google App Engine (often referred to as GAE or simply App Engine) is a web framework and cloud computing platform for developing and hosting web applications in Google-managed data centers.

https://cloud.google.com/compute/docs/autoscaler/

Given the requirement of running a custom C++ application on Linux virtual machines, the ideal cloud infrastructure for this use case is Google Compute Engine managed instance groups with auto-scaling.

Managed instance groups allow you to manage a group of identical VM instances as a single entity, and auto-scaling helps to increase or decrease the number of VMs based on the demand for your application. This feature ensures that the testing infrastructure can scale up or down depending on the size of the test suite and the frequency of the tests, resulting in better resource utilization and reduced testing time.

Additionally, Google Compute Engine provides a range of VM instance types that are optimized for various workloads, including memory-optimized and CPU-optimized instances, which can be leveraged for running C++ tests.

Using unmanaged instance groups with Network Load Balancer could work, but it would require more manual management of the VMs, which can increase the likelihood of errors and reduce efficiency. It would also require more manual scaling, which is less efficient than auto-scaling.

Google Cloud Dataproc and Apache Hadoop are not suitable for this use case since they are primarily designed for processing large data sets, whereas this use case involves running custom C++ tests on virtual machines.

Finally, Google App Engine with StackDriver logging would not be an ideal solution since App Engine is a Platform-as-a-Service (PaaS) solution that does not provide access to the underlying VMs. This lack of control over the underlying infrastructure would make it difficult to customize the environment for running C++ tests. Additionally, logging is only one aspect of monitoring an application, and App Engine doesn't provide the necessary infrastructure monitoring capabilities that would be required for this use case.