Microsoft Exam AZ-400: Designing and Implementing Microsoft DevOps Solutions
Question -1
You use Azure Artifacts to host NuGet packages that you create.
You need to make one of the packages available to anonymous users outside your organization. The solution must minimize the number of publication points.
What should you do?
A. Change the feed URL of the package
B. Create a new feed for the package
C. Promote the package to a release view.
D. Publish the package to a public NuGet repository.
Correct Answer: B
Azure Artifacts introduces the concept of multiple feeds that you can use to organize and control access to your packages.
Packages you host in Azure Artifacts are stored in a feed. Setting permissions on the feed allows you to share your packages with as many or as few people as your scenario requires.
Feeds have four levels of access: Owners, Contributors, Collaborators, and Readers.
References:
https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=new-nav
Question -2
Your company plans to use an agile approach to software development.
You need to recommend an application to provide communication between members of the development team who work in locations around the world. The applications must meet the following requirements:
✑ Provide the ability to isolate the members of different project teams into separate communication channels and to keep a history of the chats within those channels.
✑ Be available on Windows 10, Mac OS, iOS, and Android operating systems.
✑ Provide the ability to add external contractors and suppliers to projects.
Integrate directly with Azure DevOps.
What should you recommend?
A. Microsoft Project
B. Bamboo
C. Microsoft Lync
D. Microsoft Teams
Correct Answer: D
✑ Within each team, users can create different channels to organize their communications by topic. Each channel can include a couple of users or scale to thousands of users.
✑ Microsoft Teams works on Android, iOS, Mac and Windows systems and devices. It also works in Chrome, Firefox, Internet Explorer 11 and Microsoft Edge web browsers.
✑ The guest-access feature in Microsoft Teams allows users to invite people outside their organizations to join internal channels for messaging, meetings and file sharing. This capability helps to facilitate business-to-business project management.
✑ Teams integrates with Azure DevOps.
Note: Slack would also be a correct answer, but it is not an option here.
References:
https://searchunifiedcommunications.techtarget.com/definition/Microsoft-Teams
Question -3
You manage build pipelines and deployment pipelines by using Azure DevOps.
Your company has a team of 500 developers. New members are added continually to the team.
You need to automate the management of users and licenses whenever possible.
Which task must you perform manually?
A. modifying group memberships
B. adding users
C. assigning entitlements
D. procuring licenses
Correct Answer: D
Incorrect Answers:
A: You can seamlessly replace existing solutions with group-based licensing to more easily manage licenses in Azure DevOps. You can use Group rules.
C: Member Entitlement Management APIs allow managing Entitlements that include –
✑ License
✑ Extensions
✑ Project/Team memberships
References:
https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/migrate-to-group-based-resource-management?view=vsts&tabs=new-nav https://docs.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/?view=azure-devops-rest-5.0
Question -7
You are developing a multi-tier application. The application will use Azure App Service web apps as the front end and an Azure SQL database as the back end.
The application will use Azure functions to write some data to Azure Storage.
You need to send the Azure DevOps team an email message when the front end fails to return a status code of 200.
Which feature should you use?
A. Service Map in Azure Log Analytics
B. Availability tests in Azure Application Insights
C. Profiler in Azure Application Insights
D. Application Map in Azure Application Insights
Correct Answer: B
Question -8
During a code review, you discover many quality issues. Many modules contain unused variables and empty catch blocks.
You need to recommend a solution to improve the quality of the code.
What should you recommend?
A. In a Grunt build task, select Enabled from Control Options.
B. In a Maven build task, select Run PMD.
C. In a Xcode build task, select Use xcpretty from Advanced.
D. In a Gradle build task, select Run Checkstyle.
Correct Answer: B
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth.
There is an Apache Maven PMD Plugin which allows you to automatically run the PMD code analysis tool on your project’s source code and generate a site report with its results.
Incorrect Answers:
C: xcpretty is a fast and flexible formatter for xcodebuild.
References:
https://pmd.github.io/
Question -9
Your company has an on-premises Bitbucket Server that is used for Git-based source control. The server is protected by a firewall that blocks inbound Internet traffic.
You plan to use Azure DevOps to manage the build and release processes.
Which two components are required to integrate Azure DevOps and Bitbucket? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
A. a deployment group
B. a Microsoft-hosted agent
C. service hooks
D. a self-hosted agent
E. an External Git service connection
Correct Answer: DE
E: GitLab CI/CD can be used with GitHub or any other Git server such as BitBucket. Instead of moving your entire project to GitLab, you can connect your external repository to get the benefits of GitLab CI/CD.
Note: When a pipeline uses a remote, 3rd-party repository host such as Bitbucket Cloud, the repository is configured with webhooks that notify Azure Pipelines
Server or TFS when code has changed and a build should be triggered. Since on-premises installations are normally protected behind a firewall, 3rd-party webhooks are unable to reach the on-premises server. As a workaround, you can use the External Git repository type which uses polling instead of webhooks to trigger a build when code has changed.
References:
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git
Question -10
Your company plans to use an agile approach to software development.
You need to recommend an application to provide communication between members of the development team who work in locations around the world. The applications must meet the following requirements:
✑ Provide the ability to isolate the members of different project teams into separate communication channels and to keep a history of the chats within those channels.
✑ Be available on Windows 10, Mac OS, iOS, and Android operating systems.
✑ Provide the ability to add external contractors and suppliers to projects.
✑ Integrate directly with Azure DevOps.
What should you recommend?
A. Microsoft Project
B. Bamboo
C. Octopus
D. Slack
Correct Answer: D
Slack is a popular team collaboration service that helps teams be more productive by keeping all communications in one place and easily searchable from virtually anywhere. All your messages, your files, and everything from Twitter, Dropbox, Google Docs, Azure DevOps, and more all together. Slack also has fully native apps for iOS and Android to give you the full functionality of Slack wherever you go.
Integrated with Azure DevOps –
This integration keeps your team informed of activity happening in its Azure DevOps projects. With this integration, code check-ins, pull requests, work item updates, and build events show up directly in your team’s Slack channel.
Note: Microsoft Teams would also be a correct answer, but it is not an option here.
References:
https://marketplace.visualstudio.com/items?itemName=ms-vsts.vss-services-slack
Question -11
Your development team is building a new web solution by using the Microsoft Visual Studio integrated development environment (IDE).
You need to make a custom package available to all the developers. The package must be managed centrally, and the latest version must be available for consumption in Visual Studio automatically.
Which three actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
- Publish the package to a feed.
- Create a new feed in Azure Artifacts.
- Upload a package to a Git repository.
- Add the package URL to the Environment settings in Visual Studio.
- Add the package URL to the NuGet Package Manager settings in Visual Studio.
- Create a Git repository in Azure Repos.
Correct Answer: ABE
B: By using your custom NuGet package feed within your Azure DevOps (previously VSTS) instance, you’ll be able to distribute your packages within your organization with ease.
Start by creating a new feed.
A: We can publish, pack and push the built project to our NuGet feed.
E: Consume your private NuGet Feed
Go back to the Packages area in Azure DevOps, select your feed and hit “Connect to feed”. You’ll see some instructions for your feed, but it’s fairly simple to set up.
Just copy your package source URL, go to Visual Studio, open the NuGet Package Manager, go to its settings and add a new source. Choose a fancy name, insert the source URL. Done.
Search for your package in the NuGet Package Manager and it should appear there, ready for installation. Make sure to select the appropriate feed (or just all feeds) from the top right select box.
References:
https://medium.com/medialesson/get-started-with-private-nuget-feeds-in-azure-devops-8c7b5f022a68
Question -12
You have a GitHub repository.
You create a new repository in Azure DevOps.
You need to recommend a procedure to clone the repository from GitHub to Azure DevOps.
What should you recommend?
A. Create a pull request.
B. Create a webhook.
C. Create a service connection for GitHub.
D. From Import a Git repository, click Import.
E. Create a personal access token in Azure DevOps.
Correct Answer: D
You can import an existing Git repo from GitHub, Bitbucket, GitLab, or other location into a new or empty existing repo in your project in Azure DevOps.
Import into a new repo –
1. Select Repos, Files.
2. From the repo drop-down, select Import repository.
3. If the source repo is publicly available, just enter the clone URL of the source repository and a name for your new Git repository.
References:
https://docs.microsoft.com/en-us/azure/devops/repos/git/import-git-repository?view=azure-devops
Question -13
Your company is concerned that when developers introduce open source libraries, it creates licensing compliance issues.
You need to add an automated process to the build pipeline to detect when common open source libraries are added to the code base.
What should you use?
A. SourceGear Vault
B. Jenkins
C. Microsoft Visual SourceSafe
D. WhiteSource Bolt
Correct Answer: D
WhiteSource provides WhiteSource Bolt, a lightweight open source security and management solution developed specifically for integration with Azure DevOps and Azure DevOps Server.
Note: WhiteSource is the leader in continuous open source software security and compliance management. WhiteSource integrates into your build process, irrespective of your programming languages, build tools, or development environments. It works automatically, continuously, and silently in the background, checking the security, licensing, and quality of your open source components against WhiteSource constantly-updated definitive database of open source repositories.
Reference:
https://www.azuredevopslabs.com/labs/vstsextend/whitesource/
Question -14
You have a branch policy in a project in Azure DevOps. The policy requires that code always builds successfully.
You need to ensure that a specific user can always merge changes to the master branch, even if the code fails to compile. The solution must use the principle of least privilege.
What should you do?
A. Add the user to the Build Administrators group.
B. Add the user to the Project Administrators group.
C. From the Security settings of the repository, modify the access control for the user.
D. From the Security settings of the branch, modify the access control for the user.
Correct Answer: D
In some cases, you need to bypass policy requirements so you can push changes to the branch directly or complete a pull request even if branch policies are not satisfied. For these situations, grant the desired permission from the previous list to a user or group. You can scope this permission to an entire project, a repo, or a single branch. Manage this permission along the with other Git permissions.
References:
https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies
Question -15
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 meet the following requirements:
✑ Consolidate commit histories.
✑ Merge the changes into a single commit.
Which merge strategy should you use in the branch policy?
A. squash merge
B. fast-forward merge
C. Git fetch
D. no-fast-forward merge
Correct Answer: A
Squash merging is a merge option that allows you to condense the Git history of topic branches when you complete a pull request. Instead of each commit on the topic branch being added to the history of the default branch, a squash merge takes all the file changes and adds them to a single new commit on the default branch.
A simple way to think about this is that squash merge gives you just the file changes, and a regular merge gives you the file changes and the commit history.
Note: Squash merging keeps your default branch histories clean and easy to follow without demanding any workflow changes on your team. Contributors to the topic branch work how they want in the topic branch, and the default branches keep a linear history through the use of squash merges. The commit history of a master branch updated with squash merges will have one commit for each merged branch. You can step through this history commit by commit to find out exactly when work was done.
References:
https://docs.microsoft.com/en-us/azure/devops/repos/git/merging-with-squash
Question -16
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 presents part of the solution.
NOTE: Each correct selection is worth one point.
A. Create a webhook in Jenkins.
B. Add the Team Foundation Server (TFS) plug-in to Jenkins.
C. Add a domain to your Jenkins account.
D. Create a personal access token in your Azure DevOps account.
E. Create a service hook in Azure DevOps.
Correct Answer: BDE
B: Jenkins’ built-in Git Plugin or Team Foundation Server Plugin can poll a Team Services repository every few minutes and queue a job when changes are detected.
D: Use Azure DevOps/ Visual Studio Team Services to create an access token, and use th
E: For those who need tighter integration, Team Services provides two additional ways to achieve it: 1) the Jenkins Service Hook, and 2) Jenkins build and release tasks.)
References:
https://blogs.msdn.microsoft.com/devops/2017/04/25/vsts-visual-studio-team-services-integration-with-jenkins/
More Exam Questions:
Microsoft AI-900 Certification Exam Practice Questions
Microsoft AZ-900 Certification Exam Practice Questions – Part 1
Microsoft AZ-220 Certification Exam Practice Questions – Part 1
Sample Exam Questions 6: AZ-300: Microsoft Azure Architect Technologies
Sample Exam Questions 5: AZ-300: Microsoft Azure Architect Technologies