AWS Certified DevOps Engineer - Professional Exam: Minimizing Costs and Maximizing Parallel Test Execution

Best Practices for Running Build Tests on Amazon EC2 Instances

Prev Question Next Question

Question

You are administering a continuous integration application that polls version control for changes and then launches new Amazon EC2 instances for a full suite of build tests.

What should you do to ensure the lowest overall cost while being able to run as many tests in parallel as possible?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - B.

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day.

Each check-in is then verified by an automated build, allowing teams to detect problems early.

Option A and D are invalid because you can build tests on a CI system and not only Syntax tests.

And Syntax tests are normally done during coding time and not during the build time.

Option C is invalid because Opswork is ideally not used for build and integration tests.

For an example of a Continous integration system, please refer to the Jenkins system via the URL below.

https://jenkins.io/

The objective of the question is to select the appropriate approach that would help reduce overall costs while maximizing the number of tests that can run in parallel when administering a continuous integration application. Let's examine each of the options:

A. Perform syntax checking on the continuous integration system before launching a new Amazon EC2 instance for build test, unit and integration tests.

This option suggests performing only syntax checking before launching a new EC2 instance for testing. While this approach can reduce the number of instances launched, it may not be the best option to maximize parallel testing. Since only syntax checking is performed, it may not be sufficient to identify all issues in the code. Moreover, the EC2 instances would still need to be launched for build, unit, and integration tests, which would result in additional costs.

B. Perform syntax and build tests on the continuous integration system before launching the new Amazon EC2 instance unit and integration tests.

This option suggests performing both syntax and build tests on the continuous integration system before launching the EC2 instance for unit and integration tests. This approach could help reduce the number of EC2 instances launched since only successful syntax and build tests would trigger the launch of an instance for unit and integration testing. However, there is still a risk that some tests may fail at the instance level, resulting in the need for additional instances to be launched.

C. Perform all tests on the continuous integration system, using AWS OpsWorks for unit, integration, and build tests.

This option suggests performing all tests on the continuous integration system, leveraging AWS OpsWorks for unit, integration, and build tests. This approach could help reduce costs since EC2 instances would not need to be launched for each test. Instead, tests would be run on the same infrastructure, and AWS OpsWorks could help manage parallel testing to maximize the number of tests run in parallel.

D. Perform syntax checking on the continuous integration system before launching a new AWS Data Pipeline for coordinating the output of unit, integration, and build tests.

This option suggests using AWS Data Pipeline for coordinating the output of unit, integration, and build tests. While this approach can help streamline the testing process, it may not be the best option to reduce costs or maximize parallel testing. AWS Data Pipeline is designed for data processing, and it may not be the best tool to coordinate testing. Additionally, EC2 instances would still need to be launched for testing, resulting in additional costs.

Given the above analysis, option C is the best answer as it suggests performing all tests on the continuous integration system, leveraging AWS OpsWorks for unit, integration, and build tests. This approach could help reduce costs and maximize the number of tests run in parallel.