Microsoft Practice Questions, Discussions & Exam Topics by our Authors
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You need to recommend an integration strategy for the build process of a Java application. The solution must meet the following requirements:
* The builds must access an on-premises dependency management system.
* The build outputs must be stored as Server artifacts in Azure De...
Let’s evaluate the solution step by step to determine if it meets the given requirements.
Requirements:
1. The builds must access an on-premises dependency management system:
- Installing and configuring a self-hosted build agent on an on-premises machine allows the build pipeline to run on that machine. This setup provides access to on-premises systems, including dependency management tools like local repositories (e.g., Nexus or Artifactory) that are hosted on-premises. So, this requirement is met by using the self-hosted build agent.
2. The build outputs must be stored as Server artifacts in Azure DevOps:
- Azure DevOps allows you to store build outputs as server artifacts directly within the build pipeline. The self-hosted agent is just the machine running the build, but it doesn’t interfere with the ability to store the outputs in Azure DevOps. As long as the build pipeline is configured to publish artifacts (which can be done using tasks like Publish Build Artifacts), this requirement will be fulfilled.
3. The source code must be stored in a Git repository in Azure DevOps:
- This requirement is met by default since the source code is already specified to be stored in a Git repository in Azure DevOps, and it doesn't depend on the build agent configuration. The build pipeline can pull from this repository for the build process.
Evaluation of the Solution:
- Self-hosted Build Agent: Installing and configuring a self-h...
Author: Deepak · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You need to recommend an integration strategy for the build process of a Java application. The solution must meet the following requirements:
* The builds must access an on-premises dependency management system.
* The build output...
Let’s evaluate this solution step by step based on the given requirements.
Requirements:
1. The builds must access an on-premises dependency management system:
- Using a Hosted VS 2019 agent pool means the build is running on a Microsoft-hosted machine provided by Azure DevOps. These hosted agents are managed by Azure and are typically not located on the same network as your on-premises systems. As a result, they may not have direct access to on-premises dependency management systems (e.g., a local Maven or Nexus repository). Accessing on-premises systems from a hosted agent is problematic because of network constraints, especially if the on-premises systems require access that is not publicly available or needs specific firewall configurations.
2. The build outputs must be stored as Server artifacts in Azure DevOps:
- Azure DevOps Hosted Agents, including the VS 2019 agent, can still publish build outputs as server artifacts to Azure DevOps. This is not an issue in this scenario since Azure DevOps supports artifact publishing regardless of whether the build agent is hosted or self-hosted.
3. The source code must be stored in a Git repository in Azure DevOps:
- This requirement is met by default because the solution specifies that the source code is stored in a Git repository in Azure DevOps, and this is independent of which type of...
Author: VenomousSerpent42 · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
You need to recommend an integration strategy for the build process of a Java application. The solution must meet the following requirements:
* The builds must access an on-premises dependency management system.
* The build outpu...
Let’s analyze the proposed solution based on the requirements:
Requirements:
1. The builds must access an on-premises dependency management system:
- Using a Hosted Ubuntu agent pool means the build is running on a cloud-based virtual machine provided by Azure DevOps. These hosted agents have network access to the internet and public resources but generally do not have direct access to on-premises systems (e.g., local Maven, Nexus, or Artifactory repositories) unless specific network configurations (such as a VPN, proxy, or self-hosted agent setup) are implemented. So, using a hosted agent by default will likely not meet the requirement of accessing an on-premises dependency management system, as the agent will not have direct access to internal resources.
2. The build outputs must be stored as Server artifacts in Azure DevOps:
- Azure DevOps Hosted Agents, including the Hosted Ubuntu agent, can publish build outputs as server artifacts. This requirement is not affected by whether the agent is hosted or self-hosted, as the artifact publishing process can be done regardless of the type of agent used.
3. The source code must be stored in a Git repository in Azure DevOps:
...
Author: Leah · Last updated May 25, 2026
Your company uses a Git repository in Azure Repos to manage the source code of a web application. The master branch is protected from direct updates.
Developers work on new features in the topic branches.
Because of the high volume of requested features, it is difficult to follow the history of the changes to the master branch.
You need to enforce a pull request merge strategy. The strategy must...
Let’s evaluate each of the options in terms of the requirements:
Requirements:
1. Consolidate commit histories: This means that multiple commits from a feature branch should be combined into a single commit when merging to the master branch.
2. Merge the changes into a single commit: The solution should ensure that the final merge results in only one commit on the master branch.
Option A: Squash Merge
- Squash merge allows all the changes in a topic branch to be consolidated into a single commit when merged into the target branch (master in this case). This eliminates the individual commit history of the topic branch and combines it into one commit on the master branch.
- Meets the requirements perfectly as it consolidates the history and merges everything into one commit.
Option B: Fast-Forward Merge
- Fast-forward merge occurs when there are no new commits on the master branch since the branch point, and the topic branch is simply "fast-forwarded" to the latest commit on the master branch. This does not consolidate multiple commits into one. Instead, it directly applies the commits from the topic branch to the master branch without any merging process (unless you specifically enable a merge commit).
- Does not m...
Author: Aria · Last updated May 25, 2026
Your company uses cloud-hosted Jenkins for builds.
You need to ensure that Jenkins can retrieve source code from Azure Repos.
Which three actions should you perform? Each correct answer...
Author: Aria · Last updated May 25, 2026
DRAG DROP -
Your company has four projects. The version control requirements for each project are shown in the following table.
You plan to use Azure Repos for all the projects.
Which version control system should you use for each project? To answer, drag the appropriate version control systems to the correct projects. Each version control system may be used once, more than ...
Author: Ishaan · Last updated May 25, 2026
You are automating the build process for a Java-based application by using Azure DevOps.
You need to add code coverage testing and p...
To determine the best option for adding code coverage testing in an Azure DevOps pipeline for a Java-based application, we need to evaluate the available tools and their suitability for Java projects.
Key Requirements:
- Java-based application: The tool should be compatible with Java applications.
- Code coverage testing: The tool should be able to measure and report code coverage.
- Publish the outcomes to the pipeline: The tool should be able to integrate with Azure DevOps and publish code coverage results within the build pipeline.
Evaluating the options:
A) Bullseye Coverage
- What it does: Bullseye Coverage is a code coverage tool for C and C++ projects, not typically used for Java applications.
- Why it's rejected: This option is not suitable for Java projects as it's designed specifically for C/C++ code. Therefore, it cannot be used for Java-based applications in this scenario.
B) JUnit
- What it does: JUnit is a widely used testing framework for Java applications that allows writing and running tests. It does not inherently provide code coverage reporting; however, it can be integrated with tools that generate code coverage reports.
- Why it's rejected: While JUnit is useful for testing, it doesn't provide bu...
Author: Liam123 · Last updated May 25, 2026
HOTSPOT -
You company uses Azure DevOps to deploy infrastructures to Azure.
Pipelines are developed by using YAML.
You execute a pipeline and receive the results in the web portal for Azure Pipelines as shown in the following exhibit.
Use the drop-down menus to select the answer choice that compl...
Author: Zara · Last updated May 25, 2026
DRAG DROP -
You are configuring Azure DevOps build pipelines.
You plan to use hosted build agents.
Which build agent pool should you use to compile each application type? To answer, drag the appropriate build agent pools to the correct application types. Each build agent pool may be used once, more than once, or not at all. Yo...
Author: FrostFalcon88 · Last updated May 25, 2026
You are automating the build process for a Java-based application by using Azure DevOps.
You need to add code coverage testing and p...
To automate code coverage testing in Azure DevOps for a Java-based application, the selected option should be A) Cobertura. Let's break down each option, its suitability, and the reasons for rejecting the others:
A) Cobertura:
- Reason for selection: Cobertura is a widely used code coverage tool in the Java ecosystem. It integrates well with CI/CD tools like Azure DevOps and provides detailed code coverage reports, which can be easily published to Azure DevOps pipelines.
- Key factors: Cobertura generates code coverage reports in formats like XML, which can be consumed by Azure DevOps. Additionally, Cobertura is specifically designed for Java applications, which makes it an ideal choice for your use case.
- Common scenario: Cobertura is best suited for Java-based projects where integrating code coverage analysis into Azure DevOps pipelines is required.
B) Bullseye Coverage:
- Reason for rejection: Bullseye Coverage is a code coverage tool, but it is not as widely used or natively integrated with Azure DevOps as Cobertura. It also primarily targets C and C++ applications.
- Key factors: Bullseye is more suited for non-Java projects, especially C and C++ applications, which makes it less relevant in this scenario.
- Common scenario: Bullseye would be used i...
Author: Sophia · Last updated May 25, 2026
You have an existing build pipeline in Azure Pipelines.
You need to use incremental builds without purging the environme...
To achieve incremental builds without purging the environment between pipeline executions in Azure DevOps, the most suitable option is A) a self-hosted agent. Let's break down the options, their suitability, and the reasoning for rejecting the others:
A) A Self-hosted Agent:
- Reason for selection: A self-hosted agent provides more control over the build environment and allows you to maintain a persistent environment between pipeline executions. This helps in enabling incremental builds, as the environment does not get reset or purged between runs, and you can cache dependencies, build artifacts, or other resources to speed up the build process.
- Key factors: With a self-hosted agent, you can configure persistent caching mechanisms and store state between builds, which is crucial for incremental builds. This option gives you the flexibility to optimize your environment based on your specific needs, such as preserving certain build outputs or dependencies between executions.
- Common scenario: A self-hosted agent is commonly used in scenarios where you need consistent, incremental builds that leverage an existing environment or where faster builds are required by reusing prior build steps and dependencies. It’s ideal for situations where the environment should remain consistent across builds.
B) Microsoft-hosted Parallel Jobs:
- Reason for rejection: Microsoft-hosted agents are reset after each pipeline run, which means the environment does not persist between runs. This is not suitable for incremental builds because the environment is purged, and every execution starts with a clean slate.
-...
Author: Daniel · Last updated May 25, 2026
HOTSPOT -
You are designing YAML-based Azure pipelines for the apps shown in the following table.
You need to configure the YAML strategy value for each app. The solution must minimize app downtime.
Which value should you configure for each app? To answer,...
Author: Aditya · Last updated May 25, 2026
You have a private project in Azure DevOps.
You need to ensure that a project manager can create custom work item queries to report on the project's progress. The solution must use the princip...
To allow the project manager to create custom work item queries while adhering to the principle of least privilege, the most suitable security group to add them to is D) Contributor. Here's a breakdown of each option:
A) Reader:
- Reason for rejection: The Reader role grants only read access to the project and its contents. A user in this group can view work items and other project resources but cannot create, modify, or run custom queries. Since the project manager needs to create custom work item queries, this role doesn't provide the necessary permissions.
- Key factors: Readers are limited to viewing information, which does not meet the requirement to allow creating custom work item queries.
- Common scenario: The Reader role is appropriate for users who only need to view project information and reports, not modify or interact with them.
B) Project Collection Administrators:
- Reason for rejection: The Project Collection Administrators group grants administrative rights across the entire Azure DevOps organization, giving them full control over all projects. This includes permissions to manage security settings, configure service hooks, and manage all resources. While this group would provide the necessary permissions to create work item queries, it goes beyond the principle of least privilege. Granting this level of access is excessive when the goal is to allow someone to create queries without unnecessary administrative access.
- Key factors: This group has extensive permissions that can affect the entire Azure DevOps organization, which is more than necessary for the specific task of creating queries for a single project.
- Common scenario: Project Collection Administrators are typically used for full administrative roles at the organization level, not for individual project management tasks.
C) Project Administrators:
- Reason for rejection: The Project Administrators group provides full control over p...
Author: FrostFalcon88 · Last updated May 25, 2026
Your company has a project in Azure DevOps for a new application. The application will be deployed to several Azure virtual machines that run Windows Server
2019.
You need to recommend a deployment strategy for the virtual machines. The strategy must meet the following requirements:
* Ensure that the virtual machines maintain a ...
To meet the requirements of maintaining a consistent configuration across the virtual machines (VMs) and minimizing administrative effort in configuring them, the most suitable strategy would be A) Azure Resource Manager templates and the PowerShell Desired State Configuration (DSC) extension for Windows. Here’s a detailed analysis of why this option is selected and why others are rejected:
A) Azure Resource Manager templates and the PowerShell Desired State Configuration (DSC) extension for Windows:
- Reason for selection:
- Azure Resource Manager (ARM) templates can be used to provision Azure VMs with a consistent configuration, ensuring that each VM is deployed with the exact same setup (such as OS, networking, and security configurations).
- PowerShell Desired State Configuration (DSC) is specifically designed to maintain consistent configuration on Windows machines. It allows you to define the desired state of the VM (such as specific software, services, configurations) and continuously ensures that the machine remains in that state, even after reboots or manual changes.
- Key factors: DSC ensures that the VMs are always configured correctly and consistently, while ARM templates provide repeatable deployment of infrastructure. Together, they minimize administrative effort because once configured, the system automatically handles compliance with the desired state without manual intervention.
- Common scenario: This approach is ideal for maintaining consistency in a large number of VMs (as in your scenario with several Windows Server 2019 VMs), where you need to ensure that configuration is consistent across all machines and reduce manual administrative work.
B) Deployment YAML and Azure pipeline deployment groups:
- Reason for rejection:
- Deployment YAML is used for defining pipeline steps in Azure DevOps, and deployment groups are useful for managing VMs during the deployment of applications. However, this combination is more focused on application deployment, not maintaining the underlying configuration of the virtual machines.
- Key factors: This option does not address the need for consistent configuration management for the VMs themselves. It’s more about how you deploy the application rather than how you maintain VM configuration.
- Common scenario: Deployment YAML ...
Author: Siddharth · Last updated May 25, 2026
You have an Azure DevOps project that uses many package feeds.
You need to simplify the project by using a single feed that stores packages produced by your company and packages consumed from remote feeds. The so...
To simplify the project by using a single feed that stores both your company's packages and packages consumed from remote feeds, while supporting both public and authenticated feeds, the most suitable option is B) upstream sources. Let’s go through each option and why upstream sources is the correct choice:
A) Universal Packages
- Universal Packages are used to store packages in the Azure DevOps ecosystem, but they are primarily for custom packaging solutions, such as storing large artifacts (e.g., Docker images, application binaries, etc.).
- Downside: Universal Packages are not ideal for handling external dependencies like remote public or authenticated feeds.
- Reason for rejection: While they can store your internal packages, they do not provide a way to aggregate external (remote) feeds into a single feed.
B) Upstream Sources
- Upstream Sources allow you to connect external package sources to your Azure DevOps feed. This way, you can consume packages from public or private repositories and store them in your Azure DevOps feed, simplifying the management of dependencies from external sources.
- Key factor: You can configure Azure Artifacts to pull in packages from other public or authenticated feeds (such as NuGet, npm, Maven, etc.) and store them in your own private feed. This is exactly what you need to aggregate both your company's internal packages and external packages into a sin...
Author: Emily · Last updated May 25, 2026
DRAG DROP -
Your company has two virtual machines that run Linux in a third-party public cloud.
You plan to use the company's Azure Automation State Configuration implementation to manage the two virtual machines and detect configuration drift.
You need to onboard the Linux virtual machines.
You install PowerShell Desired State Configuration (DSC) on the virtual machines, and then run register.py.
Which th...
Author: Leah Davis · Last updated May 25, 2026
SIMULATION -
You plan to deploy a runbook that will create Azure AD user accounts.
You need to ensure that runbooks can run the Azure PowerShell cmdlets for Azure Active...
To ensure that runbooks can run the Azure PowerShell cmdlets for Azure Active Directory (Azure AD), you need to authenticate and authorize the required resources for the runbooks. The correct option for this task in the Azure portal involves using Azure Automation Run As Account. Let’s break down the reasoning behind this selection and why other options are rejected:
Key Considerations:
- Runbooks need permission to interact with Azure resources, including Azure Active Directory. This requires appropriate authentication mechanisms.
- Azure PowerShell cmdlets for Azure AD require an authenticated session, which typically involves either a service principal or an automated process like a Run As Account.
Options to Consider:
1. A) Azure Automation Run As Account
- Run As Account is a feature of Azure Automation that allows the automation runbooks to authenticate to Azure resources securely. This account has built-in permissions, including access to Azure resources like Azure AD, and can be used for running PowerShell cmdlets.
- Key factor: The Run As Account will provide the necessary Azure AD authentication for the Azure Automation runbooks to execute Azure PowerShell cmdlets, including those for Azure AD user creation.
- Reason for selection: It's designed specifically for authenticating and granting permissions to Azure Automation runbooks to interact with Azure resources, including Azure AD, making it the ideal solution for your use case.
2. B) Managed Identity for Automation Account
- Managed Identity enables Azure resources to authenticate to Azure services without needing credentials. However, ...
Author: ThunderBear · Last updated May 25, 2026
DRAG DROP -
You are creating a container for an ASP.NET Core app.
You need to create a Dockerfile file to build the image. The solution must ensure that the size of the image is minimized.
How should you configure the file? To answer, drag the appropriate values to the correct targets. Each value may be used once, more than once, or not at ...
Author: Emily · Last updated May 25, 2026
DRAG DROP -
You are configuring the settings of a new Git repository in Azure Repos.
You need to ensure that pull requests in a branch meet the following criteria before they are merged:
* Committed code must compile successfully.
* Pull requests must have a Quality Gate status of Passed in SonarCloud.
Which policy type should you configure for each requirement? To answer, drag the appropriate policy types to the correct requirements. Each policy ...
Author: Ava · Last updated May 25, 2026
You use a Git repository in Azure Repos to manage the source code of a web application. Developers commit changes directly to the default branch.
You need to implement a change management procedure that meets the following requirements:
* The default branch must be protected, and new changes must be built in the feature branches first.
* Changes must be reviewed and approved by ...
To implement a change management procedure in Azure Repos that meets the specified requirements, let's examine the available options and their suitability.
A) Branch policies of the default branch
Explanation:
Branch policies in Azure Repos are designed to enforce rules and guidelines on branches, ensuring that changes are thoroughly reviewed and tested before being merged. This is the most appropriate option for meeting the requirements.
The key points:
- Protect the default branch: Branch policies can be configured to require that the default branch is protected, preventing direct commits to it. This ensures that no changes can be pushed directly to the default branch without going through the appropriate process.
- Feature branches first: You can require that new changes must be made in feature branches, and merges into the default branch can only occur through pull requests.
- Review and approval process: You can set policies that require specific reviewers (e.g., release managers) to approve the changes before they are merged into the default branch. This guarantees that changes are reviewed and approved before integration into the default branch.
- Pull requests: Azure Repos allows you to configure the merge process such that all changes must be brought into the default branch via pull requests, ensuring that any change undergoes proper review and testing before merging.
Branch policies directly align with the requirements of enforcing code reviews, requiring pull requests for merges, and protecting the default branch.
B) Services in Project Settings
Explanation:
The "Services" section in Project Settings typically deals with configuring external services that integrate with Azure DevOps, such as build services or deploym...
Author: Noah · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company uses Azure DevOps to manage the build and release processes for applications.
You use a Git repository f...
Understanding the Problem:
The goal is to implement a pull request strategy that reduces the history volume in the master (default) branch. The concern is that the history in the master branch may become too large if changes are continuously merged in a way that retains detailed commit history.
Explanation of Fast-Forward Merges:
A fast-forward merge occurs when the target branch (in this case, the master branch) is directly behind the feature branch (the branch being merged), meaning there are no commits in the master branch since the feature branch was created. In this case, Git simply moves the pointer of the master branch forward to the latest commit in the feature branch, thus avoiding the creation of a merge commit.
How Fast-Forward Merges Address the Problem:
- Reduced history volume: By using fast-forward merges, you avoid creating unnecessary merge commits. Instead of having multiple merge commits in the master branch (each representing the merging of a feature branch), you only add the individual commits from the feature branch. This results in a cleaner, linear history in the master branch without additional "noise" from merge commits.
- Clean, stre...
Author: Sofia · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company uses Azure DevOps to manage the build and release processes for applications.
You use a Git reposito...
Understanding the Goal:
The goal is to implement a pull request strategy that reduces the history volume in the master branch. Reducing history volume means ensuring the commit history remains clean and concise, without unnecessary details or "noise."
Explanation of Squash Merges:
A squash merge is a strategy where all the commits from a feature branch are squashed into a single commit when merging into the target branch (in this case, the master branch). This results in the entire set of changes from the feature branch being condensed into one commit.
How Squash Merges Help Achieve the Goal:
- Reduced history volume: With a squash merge, only one commit is added to the master branch, regardless of how many commits were in the feature branch. This keeps the history in the master branch concise and clean, significantly reducing the number of commits in the master branch.
- Simplified commit history: The master branch will only show the final result of the feature branch, without showing all the intermediate steps, such as bug fixes or minor commit...
Author: Michael · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company uses Azure DevOps to manage the build and release processes for applications.
You use a Git repository ...
Understanding the Goal:
The goal is to reduce the history volume in the master branch by implementing a pull request strategy. Reducing history volume implies ensuring that the commit history in the master branch remains clean, without unnecessary merge commits or excessive detail.
Explanation of Explicit Merge:
An explicit merge is a term that refers to merging branches in the traditional way, where a merge commit is explicitly created to combine the changes from the source branch (e.g., a feature branch) into the target branch (e.g., the master branch). This is the standard merge strategy, where a merge commit is created to show the integration of changes.
Impact of Explicit Merge on History Volume:
- Merge commits increase history volume: When using an explicit merge, a merge commit is added to the master branch every time a pull request is merged. This merge commit represents the point where the changes from the feature branch are integrated into the master branch. Although the merge commit shows the integration point, it also adds a "merge commit" entry to the history.
- Potential for increased history clutter: If multiple pull requests are merged using e...
Author: Olivia · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company uses Azure DevOps to manage the build and release processes for applications.
You use a Git repository ...
Understanding the Goal:
The goal is to reduce the history volume in the master branch by implementing an appropriate pull request strategy. Reducing history volume means minimizing the number of unnecessary commits or merge commits in the master branch.
Explanation of Three-Way Merge:
A three-way merge occurs when Git attempts to merge two branches (e.g., a feature branch and the master branch) that have diverged. This involves Git taking the most recent common ancestor of the two branches, and comparing it to the current versions of both branches to create a new merge commit.
Impact of Three-Way Merge on History Volume:
- Merge commit is created: In a three-way merge, Git creates a merge commit that combines the changes from the feature branch into the master branch. This merge commit is necessary to record the integration of changes, especially when the branches have diverged.
- Increased history volume: While a three-way merge accurately reflects the history of both branches, it results in the creation of an additional merge commit in the master branch. Each time a t...
Author: Ming88 · Last updated May 25, 2026
You need to recommend a Docker container build strategy that meets the following requirements:
* Minimizes image sizes
* Minimizes the security surface ar...
To meet the requirements of minimizing image sizes and reducing the security surface area, I would recommend multi-stage builds. Let's walk through the reasoning for selecting and rejecting other options:
A) Multi-stage builds
Explanation: Multi-stage builds allow you to use multiple `FROM` instructions in a Dockerfile, effectively creating distinct stages within the build process. You can use one stage to compile or build your application and another to create the final image with only the necessary runtime dependencies. This helps to reduce the size of the final image by excluding unnecessary build tools and libraries.
- Minimizing image sizes: The final image only contains the application and necessary dependencies, discarding build tools, source code, and temporary files.
- Minimizing security surface area: The smaller, final image has fewer components, making it less likely to have vulnerabilities. The build tools and environments are excluded, reducing the attack surface.
Use case: Ideal for applications where build tools, such as compilers or packaging systems, are not needed at runtime but are required during the build process. This can be used in web applications, microservices, etc.
B) PowerShell Desired State Configuration (DSC)
Explanation: PowerShell Desired State Configuration (DSC) is a tool used to automate the management of Windows infrastructure, ensuring that configurations are applied consistently across systems. While useful for managing infrastructure and configuration, DSC doesn't address image size reduction or security surface area in Docker images.
- Minimizing image sizes: DSC doesn't inherently help with minimizing image size in Docker.
- Minimizing security surface area: DSC is not designed for Docker containers and doesn't help reduce the s...
Author: ThunderBear · Last updated May 25, 2026
You plan to create an image that will contain a .NET Core application.
You have a Dockerfile file that contains the following code. (Line numbers are included for reference only.)
You need to ensure that the imag...
To answer the question, we need to assess the Dockerfile and determine which line is most likely responsible for the size of the final image. Without the exact contents of the Dockerfile, we can infer from common Dockerfile structures used to build .NET Core applications.
Let’s assume the Dockerfile looks something like this:
```dockerfile
1 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
2 WORKDIR /app
3 COPY . .
4 RUN dotnet restore
5 RUN dotnet build
6 RUN dotnet publish -c Release -o /out
7 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
8 WORKDIR /app
9 COPY --from=build /out .
10 ENTRYPOINT ["dotnet", "myapp.dll"]
```
Explanation of each line:
1. Line 1: This line specifies the base image for building the application (`mcr.microsoft.com/dotnet/core/sdk:3.1`). This image is large because it includes everything needed to compile a .NET Core application.
2. Line 3: This line copies the source code into the image. It is a necessary step but doesn't directly affect the image size in terms of build dependencies.
3. Line 4: This line restores dependencies, a necessary step for building the .NET Core application, but it doesn't affect the size of the final image after build.
4. Line 7: This line starts the second stage of the Dockerfile using a runtime image (`mcr.microsoft.com/dotnet/core/aspnet:3.1`). This is the runtime environment where the application will run after it's built. This image is typically smaller than the SDK image.
5. Line 9: This line copies the published output from the build stage into the final image. The published output contains only the files necessary for running the application, so the image size will be much smaller.
Key Focus: Minimizing Image Size
The goal is to reduce the image size by not including unnecessary build dependencies in the final image. This can be done by using a multi-stage build approach, where the build environment is separated from the runtime environment.
In a mul...
Author: CrystalWolfX · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company has a project in Azure DevOps for a new web applicatio...
Let's break down the situation and assess whether the proposed solution meets the goal of ensuring that a build runs automatically when code is checked in.
Understanding the Solution:
The solution suggests using the "Batch changes while a build is in progress" option under the Triggers tab in the build pipeline configuration in Azure DevOps. This option is specifically designed to manage how code changes are batched and how builds are triggered when multiple commits occur, especially when there are ongoing builds.
Key Factors:
1. Automatic Build Trigger: The main goal is to ensure that when code is checked in (a commit happens), an automatic build is triggered.
2. Batching Changes: The option of "Batch changes while a build is in progress" means that if multiple commits are made before the current build finishes, these commits are grouped together in a single build run rather than triggering a new build for each commit.
How it Works:
- Batch changes helps optimize builds by reducing the frequency of builds. If multiple commits occur while a build is already in progress, those commits are not immediately triggering separate builds. Instead,...
Author: Isabella · Last updated May 25, 2026
HOTSPOT -
You need to deploy Azure Kubernetes Service (AKS) to host an application. The solution must meet the following requirements:
* Containers must only be published internally.
* AKS clusters must be able to create and manage containers in Azure.
What should you use for each require...
Author: Noah · Last updated May 25, 2026
You have 50 Node.js-based projects that you scan by using WhiteSource. Each project includes Package.json, Package-lock.json, and Npm-shrinkwrap.json files.
You need to minimize the number of libraries report...
Problem Overview:
You have 50 Node.js-based projects, each with `Package.json`, `Package-lock.json`, and `Npm-shrinkwrap.json` files, and you are using WhiteSource to scan these projects. You want to minimize the number of libraries reported by WhiteSource to only those libraries you explicitly reference in the project, rather than including transitive (dependency) libraries.
Options Review:
A) Configure the File System Agent plug-in
- Explanation: The File System Agent plugin is used to enable the scanning of locally stored libraries and dependencies, but it does not directly affect the reporting of libraries or how dependencies are resolved.
- Why Rejected: This option will not help minimize the number of libraries reported. The issue isn't with how libraries are located but with how they are reported (i.e., you want only explicit dependencies). Configuring the File System Agent doesn't provide a direct way to control which libraries are scanned or reported by WhiteSource.
B) Add a devDependencies section to Package-lock.json
- Explanation: The `devDependencies` section is used to define dependencies that are only required for development (e.g., testing, build tools) and not production. By adding dependencies to `devDependencies`, they will not be counted as direct runtime dependencies in production environments.
- Why Selected: By ensuring that non-production dependencies are properly categorized under `devDependencies` in `Package-lock.json`, WhiteSource will report only the libraries that are explicitly referenced and categorized as production dependencies. This minimizes the number of dependencies reported for the project when scanned. It’s a simple and effective way to ensure only explicit, non-dev dependencies are included.
...
Author: GlowingTiger · Last updated May 25, 2026
Your company deploys applications in Docker containers.
You want to detect known exploits in the Docker images used to provision the Docker containers.
You need to integrate image scanning into the application lifecycle. The solution must...
To detect known exploits in Docker images used to provision Docker containers as early as possible in the application lifecycle, the goal is to integrate the image scanning process in a way that allows for the identification of vulnerabilities before production deployment.
Let’s evaluate each option:
Option A: A task executed in the continuous integration pipeline and a scheduled task that analyzes the image registry
- Explanation: Integrating image scanning into the continuous integration (CI) pipeline means vulnerabilities can be detected early in the development phase. Developers can address any discovered issues before code moves further down the pipeline, minimizing the chances of deploying vulnerable images.
- Registry scanning can then ensure that any pushed images are also checked before deployment, adding an extra layer of security.
- Why this works: The task in the CI pipeline can be triggered when images are built, while registry scans ensure that images stored for deployment are also checked regularly. This proactive approach ensures issues are caught as early as possible.
- Scenario: This is appropriate when the priority is catching vulnerabilities early in the CI/CD workflow, ensuring minimal risk before production.
Option B: Manual tasks performed during the planning phase and the deployment phase
- Explanation: Manual tasks during the planning phase and deployment phase can slow down the process. They are less effective than automated tasks because manual intervention adds delays and is error-prone. Scanning at this stage also increases the chances of human oversight.
- Why rejected: While manual checks are sometimes necessary, relying on them as the primary method for detecting exploits is inefficient in a fast-paced, automated environment like a CI/CD pipeline.
- ...
Author: Emily · Last updated May 25, 2026
Your company has a hybrid cloud between Azure and Azure Stack.
The company uses Azure DevOps for its full CI/CD pipelines. Some applications are built by using Erlang and Hack.
You need to ensure that Erlang and Hack are supported as part of the build strategy across ...
In this scenario, the goal is to ensure that Erlang and Hack are supported in the build pipeline across a hybrid cloud, with minimal management overhead. Let's evaluate the options provided:
Option A: A Microsoft-hosted agent
- Explanation: A Microsoft-hosted agent provides a managed, pre-configured environment in Azure DevOps for executing build pipelines. However, it may not support Erlang and Hack out of the box. While it minimizes management overhead, it doesn’t provide the flexibility to install or configure custom dependencies like Erlang or Hack unless specifically supported.
- Why rejected: Since the build requirements include Erlang and Hack (languages that are not commonly pre-configured on Microsoft-hosted agents), this option would require custom setup in the pipeline itself, which increases complexity and management overhead.
- Scenario: This option might be suitable for standardized environments, but not for customized, language-specific needs.
Option B: Azure DevOps self-hosted agents on Azure DevTest Labs virtual machines
- Explanation: Azure DevTest Labs provides a way to create virtual machines (VMs) for testing, and you can configure them to run custom software such as Erlang and Hack. However, using DevTest Labs could involve more management overhead than required, as it is more geared toward testing and development environments.
- Why rejected: While this option allows custom configurations, it may still require ongoing management of VMs in Azure DevTest Labs and might not integrate seamlessly across the hybrid cloud between Azure and Azure Stack.
- Scenario: This could be used in a development-focused environment, but it introduces unnecessary complexity for production CI/CD pipelines.
Option C: Azure DevOps self-hosted agents on Hyper-V virtual machines
- Explanation: Hosting self-hosted agents on Hyper-V VMs provides more control over the build environment, allowing custom configurations like Erlang and Hack. However, managi...
Author: FlamePhoenix2025 · Last updated May 25, 2026
Your company has an Azure DevOps project,
The source code for the project is stored in an on-premises repository and uses on an on-premises build server.
You plan to use Azure DevOps to control the build process on the build server by using a self-hosted agent.
You need to implement the self-hosted agent.
You downloa...
To implement a self-hosted agent for an Azure DevOps project using an on-premises build server, you must perform several steps to properly configure the agent and ensure it can communicate with Azure DevOps for managing the build process. Let's review each option:
Option A: From Azure, create a shared access signature (SAS).
- Explanation: A shared access signature (SAS) provides limited access to resources in Azure Storage. While useful for granting temporary access to specific resources in Azure Storage, this is not required when setting up a self-hosted build agent in Azure DevOps. The agent setup does not directly involve creating SAS tokens.
- Why rejected: SAS tokens are typically used to grant access to specific Azure resources like blobs or queues and are not part of the process for configuring a self-hosted agent for build purposes.
Option B: From the build server, create a certificate, and then upload the certificate to Azure Storage.
- Explanation: Creating a certificate and uploading it to Azure Storage is not part of the setup for a self-hosted agent in Azure DevOps. While certificates are important for securing communications, the process for configuring a self-hosted agent does not require a certificate to be stored in Azure Storage.
- Why rejected: This step is irrelevant for the Azure DevOps agent configuration. Azure DevOps authentication and communication are handled differently (via personal access tokens or other configurations).
Option C: From the build server, create a certificate, and then upload the certificate to Azure Key Vault.
- Explanation: While Azure Key Vault is used for securely storing and managing secrets like certifi...
Author: Ethan · Last updated May 25, 2026
You have an Azure subscription that contains an Azure Active Directory (Azure AD) tenant.
You are configuring a build pipeline in Azure Pipelines that will include a task named Task1. Task1 will authenticate by using an Azure AD service principal.
Which three values should you ...
To authenticate a task (Task1) using an Azure AD service principal in Azure Pipelines, several pieces of information are required to properly configure the authentication for the task. The key components involve identifying the service principal and ensuring it has the necessary permissions to perform the task.
Let’s break down each option:
Option A: The tenant ID
- Explanation: The tenant ID identifies the Azure Active Directory instance that the service principal belongs to. It is required to specify which Azure AD instance the service principal is part of.
- Why selected: This is needed to ensure the task knows which Azure AD instance (tenant) to authenticate against. The tenant ID is crucial for authenticating and resolving the service principal.
- Scenario: Required when authenticating via an Azure AD service principal to distinguish the Azure AD instance.
Option B: The subscription ID
- Explanation: The subscription ID identifies the specific Azure subscription within a tenant where resources are deployed. It’s typically needed when performing operations that require access to specific Azure resources.
- Why rejected: While it’s important for some tasks in Azure (especially those involving Azure resources), it’s not directly tied to the authentication process for a service principal. The task can authenticate using the service principal’s credentials without needing the subscription ID in the authentication step itself.
- Scenario: The subscription ID is relevant for tasks that involve working with Azure resources, but it's not required for authentication via a service principal.
Option C: The client secret
- Explanation: The client secret is the key (password) used by the service principal to authenticate to Azure. This is essential for authenti...
Author: Joseph · Last updated May 25, 2026
DRAG DROP -
You are deploying a new application that uses Azure virtual machines.
You plan to use the Desired State Configuration (DSC) extension on the virtual machines.
You need to ensure that the virtual machines always have the same Windows feature installed.
Which three actions should you perform in sequence? To...
Author: Nathan · Last updated May 25, 2026
You need to execute inline testing of an Azure DevOps pipeline that uses a Docker deployment model. The solution must prevent the results from being publi...
To execute inline testing of an Azure DevOps pipeline using a Docker deployment model while ensuring that the results are not published to the pipeline, we need to consider options that allow us to test the Docker containers without affecting the final pipeline results. Let's analyze each option and reason out why some are more appropriate than others.
Option A: A Single Stage Dockerfile
A single-stage Dockerfile is generally used to build and run a container in a single step. While it could technically be used for inline testing (since you can run commands within the Docker container), it is not the most flexible or appropriate choice for testing purposes. The main limitation here is that it doesn’t support multi-step builds, so testing and building would all happen in a single stage, making it hard to separate testing from the final build. Additionally, using a single-stage Dockerfile would make it harder to prevent the testing results from being included in the final pipeline outcome, which violates the requirement.
Option B: An Azure Kubernetes Service (AKS) Pod
Using an AKS pod to run tests can provide a scalable, isolated environment for testing, but it's an over-engineered solution for simple inline testing in a pipeline. AKS involves setting up a Kubernetes cluster, and while this setup is powerful, it adds complexity that isn’t necessary for inline testing of Docker containers. Furthermore, testing in AKS typically involves external cluster resources, which means the testing results are not easily isolated or prevented from affecting the pipeline outcome, which goes against the requirement.
Option C: A Multi-Stage Dockerfile
A multi-stage Dockerfile is designed to build an image in stages, allowing different steps (such as building, testing, and p...
Author: Ahmed · Last updated May 25, 2026
You are designing an Azure DevOps strategy for your company's development team.
You suspect that the team's productivity is low due to accumulate technical debt.
You need to recommend a met...
When assessing the amount of technical debt, the goal is to measure how much work is needed to address issues that impede the development process and reduce productivity. Technical debt can manifest in various ways, including poorly written code, inadequate testing, or excessive rework. Let's examine each option in terms of its ability to measure technical debt and productivity impacts.
Option A: The Number of Code Modules in an Application
This metric measures the size or complexity of an application by counting its modules. While the number of modules can indicate the scale of a project, it does not directly reflect technical debt. A large number of code modules does not necessarily indicate poor quality or inefficiency, nor does it reveal if the code is difficult to maintain or contains technical debt. It’s an indirect measure and does not address the essence of technical debt, which relates to the cost of maintaining or improving the software due to earlier design or coding decisions.
Option B: The Number of Unit Test Failures
The number of unit test failures can be an important indicator of the quality of the codebase, but it is not a comprehensive metric for measuring technical debt. While failing tests point to issues in the code, it doesn't directly reflect the underlying causes of technical debt, such as incomplete refactoring, poor design decisions, or slow performance. A codebase with many unit test failures may reflect some technical debt, but it's not a clear or exclusive measure of the overall technical debt. Additionally, it’s a reactive measure rather than proactive, meaning it only identifies debt after it has caused a failure.
Option C: The Percentage of Unit Test Failures
Similar to the previous option, the percentage of unit test failures reflects the proportion of tests that are failing. This metric still highlights issues in...
Author: SilverBear · Last updated May 25, 2026
You are developing an open source solution that uses a GitHub repository.
You create a new public project in Azure DevOps.
You plan to use Azure Pipelines for continuous build. The sol...
When integrating GitHub with Azure Pipelines for continuous build and using the GitHub Checks API, it's crucial to select an appropriate authentication method to enable seamless integration and ensure security. Let’s go through each authentication type to determine the best fit for the given scenario:
Option A: OpenID
OpenID is a decentralized authentication protocol typically used for web-based logins and single sign-on (SSO) purposes. While OpenID is useful for user authentication across different services, it is not typically used for automating interactions between systems like Azure DevOps and GitHub, especially when dealing with API calls for CI/CD pipelines. It is not an ideal choice for authenticating service-to-service communications, like using the GitHub Checks API with Azure Pipelines.
Why rejected: OpenID is primarily used for user authentication and is not the best choice for service-to-service interactions in this context.
Option B: GitHub App
A GitHub App is specifically designed for integrations with GitHub. It provides secure, fine-grained access control and is a recommended approach for interacting with GitHub’s API, including the GitHub Checks API. By using a GitHub App, you can authenticate in a more secure and scalable way. A GitHub App is granted specific permissions to interact with repositories, and it can perform actions like posting status checks or commenting on pull requests on behalf of the app, without exposing personal access tokens or user credentials.
Why selected: GitHub Apps provide secure, targeted access to the GitHub API, making it the most appropriate and secure choice for integrating Azure Pipelines with GitHub and using the GitHub Checks API.
Option C: Personal Access Token (PAT)
A Personal Access Token (P...
Author: Akash · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company has a project in Azure DevOps for a new web application.
You need ...
Solution Analysis
The goal is to ensure that a build runs automatically when code is checked in. Let's break down the solution and assess whether enabling the Pull request trigger setting in the release pipeline would meet this goal.
Option A: Yes
Enabling the Pull request trigger setting in the release pipeline does not meet the goal of triggering a build automatically when code is checked in. The pull request trigger is specifically designed to trigger actions in the release pipeline when a pull request (PR) is created or updated, but it does not automatically trigger a build upon a direct code commit to the repository.
This is a release pipeline setting that responds to changes in pull requests, not commits directly to the branch. Therefore, enabling this setting will only trigger the pipeline when there is a pull request event, not when a code commit occurs.
While this is useful in workflows that involve reviewing and merging code through pull requests, it do...
Author: Emma Brown · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company has a project in Azure DevOps for a new web applic...
Solution Analysis
The goal is to ensure that a build runs automatically when code is checked in. Let's examine whether selecting "After stage" in the Pre-deployment conditions settings of the release pipeline meets this goal.
Option A: Yes
Selecting "After stage" in the Pre-deployment conditions of a release pipeline would not trigger an automatic build when code is checked in. This setting in a release pipeline is used to control the sequence of deployment stages, and it determines when a deployment will be triggered after a specific stage completes. It’s used to establish conditions for deployments and is related to the deployment pipeline, not the build pipeline.
This setting does not have any impact on triggering builds on code check-ins. Instead, it is used to define conditions for releasing code (i.e., deploying) after previous deployment stages have completed, which is not the objective in this case.
Option B: No
The correct solution to automatically trigger a build ...
Author: Ravi Patel · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company has a project in Azure DevOps for a new web application.
You need to e...
In Azure DevOps, a release pipeline is typically used to deploy applications, while build pipelines are used to compile and validate the application code. The question mentions selecting the "Batch changes while a build is in progress" option under the Pre-deployment conditions of the release pipeline. Let's break down the factors involved:
Pre-deployment conditions: Batch changes while a build is in progress
- This option controls whether deployment should wait for multiple code changes to accumulate before triggering a release, effectively "batching" the deployment when several commits happen during an ongoing build process.
- This option doesn't trigger a build automatically when code is checked in; it only affects the behavior of releases that occur after a build has already been completed.
Goal: Triggering a build automatically when code is checked ...
Author: NebulaEagle11 · Last updated May 25, 2026
DRAG DROP -
You have an Azure DevOps release pipeline as shown in the following exhibit.
You need to complete the pipeline to configure OWASP ZAP for security testing.
Which five Azure CLI tasks should you add in sequence? To answer, move the...
Author: Layla · Last updated May 25, 2026
You have a build pipeline in Azure Pipelines that uses different jobs to compile an application for 10 different architectures.
The build pipeline takes approximately one day to complete.
You need to reduce the time it takes to execute the build pipeline.
Which two actions ...
Understanding the scenario:
The build pipeline in Azure Pipelines takes approximately one day to complete, and the goal is to reduce the time it takes for the build pipeline to execute. The pipeline has multiple jobs to compile an application for 10 different architectures.
Option Analysis:
A) Move to a blue/green deployment pattern
- Reasoning: A blue/green deployment pattern is used to reduce downtime during application deployment by maintaining two environments: a blue environment (current) and a green environment (new). This is typically a deployment strategy to ensure continuous availability, not a technique for reducing build pipeline execution time.
- Why Rejected: This option does not address the build time problem at all. It's more about deployment and has no impact on speeding up the build process.
- Scenario: Use this for deployment strategies, not build time reduction.
B) Create a deployment group
- Reasoning: A deployment group is a collection of target machines or environments where deployments can be made. While helpful for organizing target machines for deployment, this does not impact build pipeline execution time directly.
- Why Rejected: This option is focused on organizing and executing deployments, not optimizing the build pipeline for reduced execution time.
- Scenario: Use this for deployment tasks, not to speed up builds.
C) Increase the number of parallel jobs
- Reasoning: Increasing the number of parallel jobs in your build pipeline can significantly speed up the build process by allowing multiple jobs to run at the same time. This is particularly useful when there are multiple jobs for different architectures (as in the scenario), and you can execute them simultaneously.
- Why Selected: By running jobs in parallel, the build time can be drastically reduced, especially if the jobs are independent (compiling for different architectures). This action directly addresses the problem ...
Author: Rahul · Last updated May 25, 2026
You are creating a build pipeline in Azure Pipelines.
You define several tests that might fail due to third-party applications.
You need to ensure that the build pipeline completes su...
Scenario Breakdown:
You are creating a build pipeline in Azure Pipelines, and you have tests that may fail due to third-party applications being unavailable. The goal is to ensure that the build pipeline completes successfully even if these tests fail due to external dependencies (third-party applications).
Option Analysis:
A) Configure the build pipeline to use parallel jobs
- Reasoning: Configuring parallel jobs allows multiple jobs to run simultaneously, which can speed up the pipeline. However, this option does not address the issue of third-party application failures or allow the pipeline to complete successfully if certain tests fail.
- Why Rejected: Parallel jobs are focused on performance (speeding up execution), not on handling test failures due to external factors. This does not solve the problem of ensuring the build completes successfully when tests fail due to third-party application unavailability.
- Scenario: Use this option if you want to speed up pipeline execution, but it doesn't address the goal of handling failing tests due to third-party service issues.
B) Configure flaky tests
- Reasoning: Flaky tests are tests that are known to occasionally fail due to external or unstable factors. Azure Pipelines provides a feature to mark such tests as "flaky." When flaky tests are marked as such, Azure Pipelines will not fail the build if the test fails once or twice in a row, instead marking the result as flaky and allowing the build to continue.
- Why Selected: This directly addresses the problem. By marking tests as flaky, Azure Pipelines will not block the build even if the third-party application causes those specific tests to fail, as long as the failures are intermittent or due to external factors.
- Scenario: Use this option when you have known tests that fail intermittently due to external factors (like third-party applications being unavailabl...
Author: Kunal · Last updated May 25, 2026
DRAG DROP -
You have an Azure subscription that contains a resources group named RG1. RG1 contains the following resources:
* Four Azure virtual machines that run Windows Server and have Internet Information Services (IIS) installed.
* SQL Server on an Azure virtual machine.
* An Azure Load Balancer.
You need to deploy an application to the virtual machines in RG1 by using Azure Pipelines.
Which four actions should you perform in sequence? To answer, move the appropriate actions from th...
Author: William · Last updated May 25, 2026
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
Your company has a project in Azure DevOps for a new web a...
Understanding the scenario:
You are working with a project in Azure DevOps for a new web application, and the goal is to ensure that when code is checked in, a build runs automatically.
Option Analysis:
A) Yes
- Reasoning: In Azure DevOps, Continuous Integration (CI) is a process where every time code is checked in or a change is made to the repository, a build is triggered automatically. This is done by enabling continuous integration in the Triggers tab of the build pipeline.
- Enabling CI in the build pipeline ensures that a build is automatically triggered whenever a code change is committed to the repository (or to a specific branch if configured).
- This directly meets the goal of running a build when code is checked in.
- Why Selected: By enabling Continuous Integration (CI), the pipeline will automatically start building every time changes are pushed to the repository. This is the correct configuration to ensure that a build runs when code is checked in.
- Scenario: Use this ...
Author: Mia · Last updated May 25, 2026
You have an Azure DevOps organization named Contoso and an Azure DevOps project named Project1.
You plan to use Microsoft-hosted agents to build container images that will host full Microsoft .NET Framework apps in a YAML pipeline in Project1.
What are two possible virtual machine images that you can use fo...
Understanding the scenario:
You need to use Microsoft-hosted agents in Azure DevOps to build container images that will host full Microsoft .NET Framework apps. The build will be carried out in a YAML pipeline in the Project1 of the Contoso Azure DevOps organization.
Requirements:
- You need a virtual machine image for the Microsoft-hosted agent pool that supports building .NET Framework apps.
- The .NET Framework requires Windows-based environments, as it’s a Microsoft-specific framework and doesn't run on Linux or macOS environments.
Option Analysis:
A) vs2017-win2016
- Reasoning: The vs2017-win2016 image is a Windows-based image with Visual Studio 2017 and Windows Server 2016. This image is suitable for building and compiling .NET Framework applications, as it supports the necessary environment for Windows-based technologies, including the .NET Framework.
- Why Selected: This option is ideal because it provides a Windows environment with the necessary tools for building .NET Framework apps.
- Scenario: Use this when you need a Windows Server 2016 environment with Visual Studio 2017, suitable for .NET Framework apps.
B) ubuntu-16.04
- Reasoning: Ubuntu 16.04 is a Linux-based image, and while it can support some Microsoft technologies like .NET Core, it cannot run .NET Framework apps because they are Windows-specific. .NET Framework requires a Windows-based environment.
- Why Rejected: This option does not meet the requirement because it’s a Linux image and .NET Framework apps cannot run on Linux-based environments.
- Scenario: Use this if you're working with .NET Core or other Linux-based technologies, but not for .NET Framework.
C) win1803
- Reasoning: The win1803 image is a ...
Author: Emma · Last updated May 25, 2026
HOTSPOT -
You currently use JIRA, Jenkins, and Octopus as part of your DevOps processes.
You plan to use Azure DevOps to replace these tools.
Which Azure DevOps service should you use to replace each tool? To answer, select the ...
Author: StarryEagle42 · Last updated May 25, 2026
Your company has a project in Azure DevOps.
You need to ensure that when there are multiple builds pending deployment, only t...
Understanding the scenario:
Your company has a project in Azure DevOps, and you want to ensure that when there are multiple builds pending deployment, only the most recent build is deployed.
The objective is to prevent older builds from being deployed if there are newer builds that are waiting for deployment.
Option Analysis:
A) Deployment conditions
- Reasoning: Deployment conditions control when and how deployments occur based on certain criteria. While they provide the ability to manage deployments, they don't specifically control the deployment of the most recent build in the case of multiple pending builds.
- Why Rejected: Deployment conditions are useful for controlling when a deployment happens (e.g., after a successful build or under specific conditions), but they don’t directly ensure that only the most recent build is deployed when multiple builds are pending.
- Scenario: Use this when you need specific pre-deployment conditions, but it won't help in the case of choosing only the most recent build.
B) Deployment queue settings
- Reasoning: Deployment queue settings can be configured to ensure that only one deployment is active at a time, and they allow you to define rules for managing the order in which deployments are handled.
- Automatic deployment cancellation can be enabled in these settings to ensure that if a new build is queued for deployment, it will cancel any pending deployments for older builds and deploy the most recent build.
- Why Selected: This option directly addresses the requirement to ensure that only the most recent build is deployed, by automatically canceling older pending deployments in favor of the most recent one.
- Scenario: Use this when you want to ensure that only the most recent build is...
Author: Zara1234 · Last updated May 25, 2026
Your company develops a client banking application that processes a large volume of data.
Code quality is an ongoing issue for the company. Recently, the code quality has deteriorated because of an increase in time pressure on the development t...
Static code analysis is a technique used to examine the codebase for potential bugs, vulnerabilities, code quality issues, or adherence to coding standards before the code is run. The main goal is to detect problems early, preventing issues from reaching production.
Let’s break down the options and determine the most appropriate phase for static code analysis:
A) Integration Testing
Integration testing is conducted after individual components or units of the application are tested and integrated to ensure that they work together. At this point, the code has already been executed in some form, and testing is focused on how different modules interact. Static code analysis typically happens before code execution, so integration testing is not the ideal time to perform static code analysis.
Rejected because static analysis should happen earlier to catch issues before they manifest during testing.
B) Staging
Staging is the environment where the application is deployed to simulate production before the final release. While staging is important for validating the application's behavior in a near-production setting, it is primarily focused on testing the runtime aspects of the system. Static code analysis, by contrast, does not require running the code and should be done earlier, at the point where the code is still in development or being built.
Rejected because...
Author: Emma · Last updated May 25, 2026
DRAG DROP -
You have a project in Azure DevOps that uses packages from multiple public feeds. Some of the feeds are unreliable.
You need to consolidate the packages into a single feed.
Which three actions should you perform in sequence? To answer, move the approp...