AWS Certified Solutions Architect – Professional — Question 616
A company standardized its method of deploying applications to AWS using AWS CodePipeline and AWS CloudFormation. The applications are in TypeScript and
Python. The company has recently acquired another business that deploys applications to AWS using Python scripts.
Developers from the newly acquired company are hesitant to move their applications under CloudFormation because it would require that they learn a new domain-specific language and eliminate their access to language features, such as looping.
How can the acquired applications quickly be brought up to deployment standards while addressing the developers' concerns?
Answer options
- A. Create Cloud Formation templates and re-use parts of the Python scripts as Instance user data. Use the AWS Cloud Development Kit (AWS CDK) to deploy the application using these templates. Incorporate the AWS CDK into CodePipeline and deploy the application to AWS using these templates.
- B. Use a third-party resource provisioning engine inside AWS CodeBuild to standardize the deployment processes of the existing and acquired company. Orchestrate the CodeBuild job using CodePipeline.
- C. Standardize on AWS OpsWorks. Integrate OpsWorks with CodePipeline. Have the developers create Chef recipes to deploy their applications on AWS.
- D. Define the AWS resources using TypeScript or Python. Use the AWS Cloud Development Kit (AWS CDK) to create CloudFormation templates from the developers' code, and use the AWS CDK to create CloudFormation stacks. Incorporate the AWS CDK as a CodeBuild job in CodePipeline.
Correct answer: D
Explanation
Option D is correct because the AWS Cloud Development Kit (AWS CDK) allows developers to define cloud infrastructure using familiar programming languages like Python and TypeScript, supporting language features like loops while still generating standard AWS CloudFormation templates. This satisfies both the company's standard of using CloudFormation/CodePipeline and the developers' desire to avoid learning a new domain-specific language. Other options either introduce unnecessary third-party tools (Option B), require learning Chef/OpsWorks (Option C), or fail to leverage the full capabilities of the AWS CDK to define infrastructure (Option A).