AZ-400 Question 188
Single answerYou are implementing a configuration management strategy for an Azure-based application. The application includes several Azure Virtual Machines hosting a front-end web app and a container-based microservice running in Azure Kubernetes Service (AKS). The goal is to ensure consistent configuration across Development, Test, and Production environments and to maintain the ability to roll back easily if an update causes an issue. Which approach should you recommend?
- A
Store configuration scripts on a shared file system and manually run them on every environment after each deployment.
- B
Use Infrastructure as Code (ARM or Bicep) templates maintained in a centralized Git repository, integrated with Azure DevOps Pipelines to perform automated and versioned deployments across all environments.
- C
Configure environment variables directly in the Azure Portal for each environment, making adjustments as needed in real time.
- D
Deploy a single ARM template that references environment-specific parameters from a local JSON file on the build server.
Show answer and explanation
Correct answer: B
Explanation
Using Infrastructure as Code in combination with a robust CI/CD pipeline is a core best practice for managing configurations in distributed environments. By leveraging Azure Resource Manager (ARM) or Bicep templates stored in a Git repository and deploying them through Azure DevOps Pipelines, you gain version visibility, consistency across environments, and rollback capabilities. For more information, see the Microsoft documentation on Infrastructure as Code (https://docs.microsoft.com/azure/devops/learn/what-is-devops/infrastructure-as-code).
- A. Incorrect.
Option 1 is incorrect. Manually running scripts can lead to inconsistencies and human errors. This approach also makes it difficult to track and roll back changes.
- B. Correct.
Option 2 is correct. Storing Infrastructure as Code templates in a Git repository allows for version control, automated deployments via Azure DevOps Pipelines, and straightforward rollbacks if an update causes problems.
- C. Incorrect.
Option 3 is incorrect. Manually updating environment variables in the Azure Portal is prone to human error and lacks version control, making rollbacks and audits cumbersome.
- D. Incorrect.
Option 4 is incorrect. While a single template can be parameterized for multiple environments, referencing local files on a build server is not ideal for version tracking and consistency. Storing parameters in source control with your IaC templates is the recommended practice.