🔷 Microsoft Azure

Free Designing and Implementing Microsoft DevOps Solutions (AZ-400) Study Resources

Most AZ-400 material is out of date. Microsoft revised the exam on 27 July 2026 — build and release pipelines now carry 50–55% of the marks — while popular guides still teach Azure AD, secret-based service connections, and task groups that YAML pipelines do not support. This hive was written against Microsoft Learn and GitHub's own documentation, current to August 2026. Disclaimer: an independent study resource, not affiliated with or endorsed by Microsoft. Content is AI-authored and grounded in first-party documentation; it has not been reviewed by a certified human subject-matter expert. 📚 What We Cover: All 86 exam objectives across the five current domains — processes and communications, source control, build and release pipelines, security and compliance, and instrumentation. 🛠️ Key Features: Blueprint-Weighted Mocks: 6 full-length exams cut to Microsoft's published domain ranges — 7/6/27/6/4 across 50 questions, 120 minutes, 70% benchmark. Every Question Format: 419 questions across multiple choice, multiple answer, true/false, matching and ordering — because a third of the real exam is multi-select. Scenario Practice: 6 architecture case studies, each a full scenario with four linked questions. Sourced, Not Guessed: every question cites first-party Microsoft or GitHub documentation. Depth on Demand: 453 flashcards, 194 lessons, quick notes and cram sheets, plus 16 topic quizzes and 5 unit checkpoints. Current Where It Counts: Microsoft Entra ID, GitHub Advanced Security for Azure DevOps, workload identity federation, Azure Machine Configuration, and Azure Deployment Environments.

419
Practice Questions
27
Mock Exams
194
Study Notes
453
Flashcard Decks
3
Source Materials
Start Studying — Free1 learners studying this hive

Designing and Implementing Microsoft DevOps Solutions (AZ-400) Study Notes & Guides

194 AI-generated study notes covering the full Designing and Implementing Microsoft DevOps Solutions (AZ-400) curriculum. Showing 10 complete guides below.

Lesson533 words

Agent and runner infrastructure

Read full article

Design and implement agent and runner infrastructure

Every job needs a machine. Choosing which machine is a cost, security and maintainability decision, and the exam tests the trade-off rather than the click-path.

The options

OptionOwnership and billingUse when
Microsoft-hostedMicrosoft-managed; current paid capacity uses parallel-job concurrency. The free hosted job has job and monthly minute limits; legacy per-minute plans still existStandard images and a fresh Microsoft-provided VM for each job
Self-hostedYou own the machine and tools. Azure DevOps Services uses self-hosted parallel-job capacity; Azure DevOps Server does not charge for self-hosted concurrencyDirect private connectivity, machine-bound tooling, or machine-local state
VM Scale Set agentsScale set in your Azure subscription; Azure-resource cost plus Services self-hosted parallel-job capacityTeam-managed autoscaling with a custom image
Managed DevOps PoolsFully managed; Azure-resource cost plus Services self-hosted parallel-job capacityMicrosoft's current recommendation when considering an autoscalable self-hosted pool
GitHub-hosted for Azure PipelinesMicrosoft-managed on GitHub-hosted infrastructure; per-minute PAYG with no free tierLarger machines when the preview is available in the organization's region

Microsoft-hosted agents exist only in Azure DevOps Services — they are not available in Azure DevOps Server. Azure DevOps Server therefore uses self-hosted agents. A hosted Azure DevOps Services pipeline can still deploy to an on-premises target when its agent has the required connectivity.

Why teams move to self-hosted

Three reasons recur, and they map directly to exam scenarios:

  1. Software that must be preinstalled or machine-bound, for example because of its licence. Hosted jobs can install other tools during a run.
  2. Direct private connectivity to a non-public endpoint or on-premises system.
  3. Machine-local persistence. Caches and configuration can survive between runs on a self-hosted agent.

A Microsoft-hosted agent gets a fresh VM for every job, whose filesystem is discarded afterward. That does not prohibit caching: Cache@2 can restore a server-backed dependency cache across pipeline runs. Choose self-hosted when the state must persist locally on the machine, not merely because a dependency restore is slow.

Billing models differ in kind, not just amount

Under Azure DevOps Services' current paid parallel-jobs model, Microsoft-hosted capacity is bought as concurrency. The free hosted job is limited to 1,800 minutes per month and 60 minutes per job; paid capacity removes the monthly limit and allows up to 360 minutes per job. Earlier customers can still be on a legacy per-minute plan.

GitHub-hosted agents for Azure Pipelines are a separate per-minute PAYG preview with no free tier, and availability is still rolling out by region.

Maintainability

Self-hosted is not free after setup. You own OS and tool maintenance, workspace hygiene, private connectivity, and least-privilege machine security. Keep the agent and operating system compatible; required agent-software updates can be automatic on supported systems, while an unsupported OS still requires a machine upgrade. Microsoft recommends considering Managed DevOps Pools instead of designing a new autoscalable VM Scale Set agent pool.

Primary sources

Quick Notes222 words

Agent and runner infrastructure — quick notes

Read full article

Agents and runners — quick notes

FactDetail
Microsoft-hosted availabilityAzure DevOps Services only — not Azure DevOps Server
Microsoft-hosted billingCurrent paid plan: parallel-job concurrency. Free hosted job: minute limits. Legacy per-minute plans exist
GitHub-hosted for PipelinesPreview, region-dependent, per-minute PAYG, no free tier
Microsoft-hosted stateFresh VM for every job; filesystem discarded afterward
Cross-run pipeline cacheCache@2 restores server-backed files such as dependencies
Self-hosted advantageCaches + configuration persist run to run
Self-hosted reasonsMachine-bound tooling · direct private connectivity · machine-local state
Elastic self-hostedVM Scale Set agents; Managed DevOps Pools now recommended
Managed/VMSS cost in ServicesAzure resources + self-hosted parallel-job capacity
Self-hosted maintenanceOwn OS/tools, workspace hygiene, least-privilege security; required agent updates can be automatic

Traps

  1. "Use Microsoft-hosted with Azure DevOps Server" — impossible; hosted is Services-only.
  2. "A fresh hosted job cannot reuse dependencies" — false; Cache@2 restores a pipeline cache.
  3. "Microsoft-hosted is never minute-limited" — false; distinguish paid current-plan concurrency from free and legacy minute limits.

Primary sources

Lesson255 words

Alerting on pipeline events

Read full article

Configure alerts for events in GitHub Actions and Azure Pipelines

Routes

PlatformMechanism
Azure PipelinesNotification subscriptions · service hooks · the Teams app
GitHub ActionsWorkflow notifications · webhooks · the Teams/Slack app

Either can also call out from within the run — a step that posts on failure — which is the flexible option when the condition is more specific than "the run failed".

What deserves an alert

The same discipline as everywhere else in this unit: alert on things a human must act on.

AlertDo not alert
main build brokenEvery successful run
Deployment awaiting approvalEvery stage transition
Release failed in productionEvery PR build result
Scheduled security scan failedEvery dependency update PR

The condition that gets forgotten

A step that reports failure must itself run on failure. Every step carries an implicit succeeded(), so a notification step placed after a failing step is skipped — the same defect as publishing test results without condition: succeededOrFailed().

yaml
- script: ./notify.sh condition: failed()

A failure notification that only fires on success is worse than none, because the silence is read as good news.

Route to an owner

An alert to a shared inbox nobody owns is not an alert. Route to a team with the ability to act, and make ownership explicit.

Primary sources

Quick Notes94 words

Alerting on pipeline events — quick notes

Read full article

Pipeline alerting — quick notes

PlatformMechanism
Azure PipelinesNotifications · service hooks · Teams app
GitHub ActionsNotifications · webhooks · Teams/Slack app
Alert onNot on
Broken mainEvery successful run
Awaiting approvalEvery stage transition
Production release failureEvery PR build

The classic bug: a notification step without condition: failed() (or succeededOrFailed()) is skipped when the thing it reports on fails. Silence then reads as good news.

Lesson241 words

Analyzing usage and application performance

Read full article

Analyze metrics by using collected telemetry

Usage tells you what to work on

QuestionTelemetry
Which features are used?Custom events, page views
Where do users abandon?Funnels, session flow
Who is affected by this error?Exception telemetry with user context

Usage data is what makes a hypothesis testable — it is the loop that closes feature flags and A/B testing back into a decision. Without it, "we shipped it" is the end of the story rather than the middle.

Performance analysis

Work from the user inward:

  1. Which operations are slow? Request duration by name, at p95 and p99.
  2. What are they waiting on? Dependency telemetry — database, HTTP, queue.
  3. Where inside the code? Traces and profiling.

Skipping to step 3 is the common mistake: it produces a detailed answer about something that was never the problem.

Aggregates hide people

An average conceals the tail, and a healthy overall error rate conceals a single customer failing every request. Segment — by operation, region, client version, tenant — because one broken tenant inside a 0.1% global error rate is invisible in the aggregate and total for that customer.

Correlate with deployments

Release annotations put deployments on the chart. Most performance regressions have a deployment immediately before them, and seeing the two together is the fastest available diagnosis.

Primary sources

Quick Notes73 words

Analyzing usage and application performance — quick notes

Read full article

Analyzing telemetry — quick notes

Performance, in order: which operations are slow (p95/p99) → what are they waiting on (dependencies) → where in the code (traces).

  • Skipping to code profiling answers the wrong question in detail.
  • Aggregates hide people — segment by operation, region, version, tenant.
  • A healthy global error rate can hide one customer failing every request.
  • Correlate with release annotations — regressions usually follow a deployment.
Lesson294 words

Appropriate access levels

Read full article

Recommend appropriate access levels

Access levels and permissions are separate controls evaluated together. Access levels determine which web-portal features a user can access. Permissions determine which actions they may perform on the objects they can reach. Increasing an access level does not itself grant repository permission.

Azure DevOps access levels

LevelGets
StakeholderUnlimited free access. Work items, backlogs, dashboards, and Azure Pipelines feature access, including release viewing and approval; no Repos in private projects
BasicRepos, Pipelines, Boards, and Artifacts, subject to permissions. The first five users are free; the sixth and later users are paid unless another qualifying entitlement applies
Basic + Test PlansBasic plus test management
Visual Studio subscriberAccess through the subscription entitlement

Stakeholder fits a product owner who tracks a backlog or approves a release but does not need private-project Repos access. Existing public projects are a temporary exception: Stakeholders currently have full Repos access there. New public projects cannot be created, and existing public projects are scheduled to convert to private projects in 2027. Basic enables Repos features; repository permissions still determine actual code access.

GitHub

Use an outside collaborator when a contractor or partner needs selected organization repositories without becoming an organization member. Outside collaborators cannot join teams. With Enterprise Managed Users, this role is called repository collaborator.

Reviewing regularly

Use Microsoft Entra group rules to assign access levels where practical. Azure DevOps adjusts a user's access level when they leave the group. Regularly review the Group rules tab so assignments continue to match current needs.

Primary sources

Quick Notes180 words

Appropriate access levels — quick notes

Read full article

Access levels — quick notes

LevelGetsCost
StakeholderWork items, backlogs, dashboards, Azure Pipelines feature access, and release viewing/approval; no Repos in private projectsUnlimited free access
BasicRepos, Pipelines, Boards, and Artifacts, subject to permissionsFirst five users free; paid from the sixth unless another qualifying entitlement applies
Basic + Test PlansBasic plus test managementPaid or covered by a qualifying entitlement
  • Access level = available web-portal features. Permissions = allowed actions and objects.
  • Product owner or approver who does not need private-project Repos access → Stakeholder.
  • Existing public projects temporarily give Stakeholders full Repos access; conversion to private projects is scheduled for 2027.
  • GitHub contractor needing selected repositories without organization membership → outside collaborator; with Enterprise Managed Users, repository collaborator.
  • Prefer Microsoft Entra group rules where practical, and review the Group rules tab regularly.

Primary sources: https://learn.microsoft.com/en-us/credentials/certifications/resources/study-guides/az-400 · https://learn.microsoft.com/en-us/azure/devops/organizations/security/stakeholder-access?view=azure-devops · https://learn.microsoft.com/en-us/azure/devops/organizations/security/access-levels?view=azure-devops · https://learn.microsoft.com/en-us/azure/devops/organizations/billing/buy-basic-access-add-users?view=azure-devops · https://learn.microsoft.com/en-us/azure/devops/organizations/security/about-permissions?view=azure-devops · https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/assign-access-levels-by-group-membership?view=azure-devops · https://learn.microsoft.com/en-us/azure/devops/organizations/projects/public-projects-retirement?view=azure-devops · https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization · https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization

Lesson277 words

Automating container scanning

Read full article

Automate container scanning

A container image bundles your application and an operating system userland. Both carry vulnerabilities, and they age differently: your code changes when you change it, the base image accumulates CVEs on someone else's schedule.

Two things to scan

TargetFinds
Base image and OS packagesCVEs in the distribution layers you inherited
Application code insideVulnerable patterns — CodeQL

Where scanning goes in the pipeline

Loading Diagram...
Figure 1 — Mermaid diagram

Scan before push so a vulnerable image never enters the registry, and scan in the registry continuously so an image that was clean at build time raises an alert when a new CVE lands. Both are needed for the same reason a quiet repository still needs Dependabot alerts: the code stopped changing, the threat landscape did not.

CodeQL in a container

Running CodeQL analysis inside a container is a documented objective, and it needs advanced setup — the generated workflow file is where you specify the container and the build. Default setup cannot express it.

The typical reason is a compiled language whose build environment lives in the container: CodeQL must observe the real build to analyse it, so the analysis has to run where that build runs.

Rebuilding is the fix

Most base-image findings are resolved by rebuilding on a patched base rather than by changing your code — which makes an automated periodic rebuild a security control, not merely hygiene.

Primary sources

Quick Notes96 words

Automating container scanning — quick notes

Read full article

Container scanning — quick notes

TargetFinds
Base image / OS packagesInherited CVEs
Application code insideVulnerable patterns (CodeQL)
  • Scan before push → keep vulnerable images out of the registry.
  • Scan in the registry continuously → catch CVEs disclosed after build.
  • CodeQL in a container requires advanced setup — default setup cannot express it.
  • Most base-image findings are fixed by rebuilding on a patched base.

Trap: scanning only at build time. The image ages even when your code does not.

More Study Notes (184)

Automating documentation from Git history

191 words

Automating documentation from Git history — quick notes

55 words

AZ-400 — exam map — roadmap

403 words

Azure Boards and GitHub integration

222 words

Azure Boards and GitHub integration — quick notes

84 words

Azure Deployment Environments

344 words

Azure Deployment Environments — quick notes

197 words

Azure DevOps service connections and PATs

277 words

Azure DevOps service connections and PATs — quick notes

159 words

Azure Monitor and Logs with DevOps tools

213 words

Azure Monitor and Logs with DevOps tools — quick notes

80 words

Branch merging restrictions

255 words

Branch merging restrictions — quick notes

99 words

Checks and approvals with YAML environments

409 words

Checks and approvals with YAML environments — quick notes

206 words

Choosing a configuration management technology

247 words

Choosing a configuration management technology — quick notes

164 words

Choosing package management tools

301 words

Choosing package management tools — quick notes

109 words

Code coverage analysis

257 words

Code coverage analysis — quick notes

118 words

Complex pipeline scenarios

403 words

Complex pipeline scenarios — quick notes

168 words

Comprehensive testing strategy

340 words

Comprehensive testing strategy — quick notes

171 words

Configuring telemetry collection

224 words

Configuring telemetry collection — quick notes

91 words

Dashboards and flow metrics

246 words

Dashboards and flow metrics — quick notes

98 words

Defining an IaC strategy

314 words

Defining an IaC strategy — quick notes

137 words

Dependabot for licensing, vulnerabilities and versioning

276 words

Dependabot for licensing, vulnerabilities and versioning — quick notes

107 words

Dependency versioning strategy

281 words

Dependency versioning strategy — quick notes

143 words

Deploying containers, binaries and scripts

450 words

Deploying containers, binaries and scripts — quick notes

153 words

Deployment resiliency

287 words

Deployment resiliency — quick notes

144 words

Deployments including database tasks

472 words

Deployments including database tasks — quick notes

172 words

Deployment strategies

305 words

Deployment strategies — quick notes

138 words

Design and implement pipelines — cram sheet

397 words

Designing a branch strategy

220 words

Designing a branch strategy — quick notes

78 words

Desired state configuration for environments

416 words

Desired state configuration for environments — quick notes

172 words

Develop pipelines by using YAML

894 words

Distributed tracing

262 words

Distributed tracing — quick notes

96 words

Feature flags with Azure App Configuration

379 words

Feature flags with Azure App Configuration — quick notes

230 words

Feedback cycles

230 words

Feedback cycles — quick notes

82 words

Feeds, views and upstream packages

276 words

Feeds, views and upstream packages — quick notes

152 words

GitHub Advanced Security for GitHub and Azure DevOps

394 words

GitHub Advanced Security for GitHub and Azure DevOps — quick notes

179 words

GitHub authentication

316 words

GitHub authentication — quick notes

137 words

Hotfix path planning

272 words

Hotfix path planning — quick notes

136 words

Implementing a configuration management strategy

302 words

Implementing a configuration management strategy — quick notes

150 words

Implementing tests in a pipeline

328 words

Implementing tests in a pipeline — quick notes

139 words

Infrastructure performance indicators

227 words

Infrastructure performance indicators — quick notes

90 words

Integrating GHAS with Defender for Cloud

349 words

Integrating GHAS with Defender for Cloud — quick notes

144 words

Integrating GitHub repositories with Azure Pipelines

314 words

Integrating GitHub repositories with Azure Pipelines — quick notes

166 words

Integrating work tracking

237 words

Integrating work tracking — quick notes

90 words

Integration using webhooks

240 words

Integration using webhooks — quick notes

91 words

Job execution order, parallelism and multi-stage pipelines

285 words

Job execution order, parallelism and multi-stage pipelines — quick notes

103 words

Key Vault for secrets, keys and certificates

386 words

Key Vault for secrets, keys and certificates — quick notes

178 words

Kusto Query Language

238 words

Kusto Query Language — quick notes

90 words

Managing large files

275 words

Managing large files — quick notes

83 words

Metrics and queries for delivery

242 words

Metrics and queries for delivery — quick notes

98 words

Metrics and queries for development

239 words

Metrics and queries for development — quick notes

95 words

Metrics and queries for operations

246 words

Metrics and queries for operations — quick notes

85 words

Metrics and queries for project planning

243 words

Metrics and queries for project planning — quick notes

111 words

Metrics and queries for security

243 words

Metrics and queries for security — quick notes

104 words

Metrics and queries for testing

248 words

Metrics and queries for testing — quick notes

106 words

Microsoft Defender for Cloud DevOps Security

298 words

Microsoft Defender for Cloud DevOps Security — quick notes

118 words

Migrating classic pipelines to YAML

300 words

Migrating classic pipelines to YAML — quick notes

175 words

Minimising downtime

249 words

Minimising downtime — quick notes

129 words

Monitoring in GitHub

236 words

Monitoring in GitHub — quick notes

85 words

Monitoring pipeline health

225 words

Monitoring pipeline health — quick notes

97 words

Optimising a pipeline

389 words

Optimising a pipeline — quick notes

166 words

Optimising pipeline concurrency

295 words

Optimising pipeline concurrency — quick notes

144 words

Permissions and roles in GitHub

231 words

Permissions and roles in GitHub — quick notes

116 words

Permissions and security groups in Azure DevOps

265 words

Permissions and security groups in Azure DevOps — quick notes

165 words

Pipeline trigger rules

393 words

Pipeline trigger rules — quick notes

205 words

Preventing leakage of sensitive information

346 words

Preventing leakage of sensitive information — quick notes

165 words

Projects and teams in Azure DevOps

290 words

Projects and teams in Azure DevOps — quick notes

145 words

Pull request workflow

233 words

Pull request workflow — quick notes

76 words

Quality and release gates

323 words

Quality and release gates — quick notes

130 words

Recovering data with Git

239 words

Recovering data with Git — quick notes

84 words

Release documentation

208 words

Release documentation — quick notes

76 words

Reliably ordered dependency deployments

224 words

Reliably ordered dependency deployments — quick notes

95 words

Removing data from source control

283 words

Removing data from source control — quick notes

99 words

Repository permissions

215 words

Repository permissions — quick notes

62 words

Retention strategy

364 words

Retention strategy — quick notes

141 words

Reusable pipeline elements

313 words

Reusable pipeline elements — quick notes

170 words

Scaling and optimizing a Git repository

266 words

Scaling and optimizing a Git repository — quick notes

106 words

Secretless authentication

368 words

Secretless authentication — quick notes

185 words

Security and compliance scanning strategy

348 words

Security and compliance scanning strategy — quick notes

143 words

Selecting a deployment automation solution

499 words

Selecting a deployment automation solution — quick notes

168 words

Sensitive files during deployment

321 words

Sensitive files during deployment — quick notes

129 words

Service principals and managed identities

308 words

Service principals and managed identities — quick notes

142 words

Source, bug and quality traceability

242 words

Source, bug and quality traceability — quick notes

104 words

Structuring the flow of work

231 words

Structuring the flow of work — quick notes

85 words

Teams integration

221 words

Teams integration — quick notes

73 words

Topic 1.1 — Traceability and flow of work — cram sheet

241 words

Topic 1.2 — Metrics and queries — cram sheet

312 words

Topic 1.3 — Collaboration and communication — cram sheet

243 words

Topic 2.1 — Branching strategies — cram sheet

250 words

Topic 2.2 — Managing repositories — cram sheet

333 words

Topic 3.1 — Package management — cram sheet

258 words

Topic 3.2 — Testing strategy — cram sheet

208 words

Topic 3.4 — Deployments — cram sheet

382 words

Topic 3.5 — Infrastructure as code — cram sheet

259 words

Topic 3.6 — Maintaining pipelines — cram sheet

325 words

Topic 4.1 — Authentication and authorization — cram sheet

281 words

Topic 4.2 — Managing sensitive information — cram sheet

288 words

Topic 4.3 — Security and compliance scanning — cram sheet

323 words

Topic 5.1 — Configuring monitoring — cram sheet

260 words

Topic 5.2 — Analyzing metrics — cram sheet

280 words

Unit 1 — Processes and communications — roadmap

221 words

Unit 2 — Source control strategy — roadmap

205 words

Unit 3 — Build and release pipelines — roadmap

270 words

Unit 4 — Security and compliance — roadmap

222 words

Unit 5 — Instrumentation strategy — roadmap

215 words

Using tags

235 words

Using tags — quick notes

62 words

Versioning pipeline artifacts

290 words

Versioning pipeline artifacts — quick notes

131 words

Wikis and process diagrams

207 words

Wikis and process diagrams — quick notes

86 words

YAML pipelines — quick notes

255 words

Ready to practice? Jump straight in — no sign-up needed.

Take practice tests, review flashcards, and read study notes right now.

Take a Practice Test

Designing and Implementing Microsoft DevOps Solutions (AZ-400) Practice Questions

Try 15 sample questions from a bank of 419. Answers and detailed explanations included.

Q1hard

An organisation connects Azure Boards to GitHub, but six months later most commits have no work item link. What most reliably fixes this?

A.

Recreate the connection with organisation-level scope

B.

Migrate the repositories into Azure Repos

C.

A pull request template plus a branch policy requiring a linked work item

D.

Ask developers to be more careful in commit messages

Show answer & explanation

Correct Answer: C

The integration creates links from mention syntax a person writes, so traceability depends on human memory unless something enforces it. A branch policy requiring a linked work item makes the link a merge condition, and the PR template puts the syntax in front of the author.

A does not change how links are created. B is a disproportionate migration. D is the approach that already failed for six months — relying on diligence is not a control.

Answer: C

Q2hard

An existing Azure Resource Manager service connection using workload identity federation is flagged as deprecated. What does Microsoft advise?

A.

Delete it and create a replacement connection with a client secret

B.

Convert the existing connection to use the Microsoft Entra issuer

C.

Ignore it — the Azure DevOps issuer remains supported indefinitely

D.

Switch the connection to a personal access token

Show answer & explanation

Correct Answer: B

The Azure DevOps issuer is being deprecated for eligible workload identity federation service connections, and the guidance is explicit: convert the existing connection to the Microsoft Entra issuer rather than creating a replacement.

A and D both reintroduce a stored secret, which is the opposite direction of travel. C is wrong — the deprecation is active, though it excludes non-public clouds and multitenant applications.

Answer: B

Q3medium

One team's matrix build of twelve legs fills the organization's available parallel-job capacity and queues other pipelines. What is the most appropriate fix?

A.

Ask the team to run their build less often

B.

Move all other pipelines to a different project

C.

Set maxParallel on the matrix so the build uses a bounded number of slots at a time

D.

Convert the matrix to twelve separate pipelines

Show answer & explanation

Correct Answer: C

maxParallel bounds how many matrix legs execute simultaneously, so the build still covers all twelve combinations while using at most the chosen number of organization-level slots. Set it below the available capacity to leave room for other pipelines.

A does not bound a run. B cannot partition organization-level capacity. D removes the single matrix throttle point.

Answer: C

Q4medium

A critical production defect must be fixed immediately, but main contains unfinished features that must not ship. Where should the hotfix branch be created from?

A.

The active release branch for the version deployed to production

B.

The tip of main

C.

The most recent successful nightly build branch

D.

A new branch from the develop integration branch

Show answer & explanation

Correct Answer: A

In this release-first scenario, branching from the maintained production release line isolates the fix from unfinished main work. The short-lived fix branch is merged into the release branch through a pull request, and the exact fix is then ported to main.

B, C and D do not identify the maintained production line required by the scenario. A main-first workflow can also be valid in a different design when the fix is deliberately cherry-picked into the current release branch.

Answer: A

Q5medium

Reviewers frequently spend time on formatting and lint issues in pull requests. What is the most effective change to the workflow?

A.

Add build validation that runs linting and tests, so mechanical issues fail before a human reviews

B.

Increase the required reviewer count

C.

Require longer PR descriptions

D.

Move to squash merges

Show answer & explanation

Correct Answer: A

Human review attention is the scarcest resource in the workflow, and spending it on anything a linter can detect is the most expensive kind of waste. Build validation running lint and tests fails those issues before a reviewer is involved.

B adds more people to the same wasted activity. C and D change the shape of PRs and history but do nothing about what reviewers are looking at.

Answer: A

Q6medium

How should the pipelines stop holding long-lived cloud credentials?

A.

Move the client secret into a Key Vault-linked variable group

B.

Rotate the client secret every 30 days automatically

C.

Store the secret as a secret pipeline variable rather than in the service connection

D.

Convert the service connection to workload identity federation, so a short-lived token is issued per job

Show answer & explanation

Correct Answer: D

Workload identity federation removes the stored secret entirely: a federated credential establishes trust and the cloud issues a short-lived token valid only for that job.

A and C relocate the secret without eliminating it. B shortens its life but a 30-day credential is still long-lived, and rotation itself becomes a failure mode.

The strongest control is not having a secret to leak.

Answer: D

Q7hard

A SecurityScan stage should have no dependency on the preceding Build stage and be eligible to run from pipeline start. What do you add?

A.

condition: always()

B.

dependsOn: Build

C.

trigger: none

D.

dependsOn: []

Show answer & explanation

Correct Answer: D

An explicitly empty dependsOn: [] opts the stage out of the implicit sequential chain, so it is eligible to run concurrently rather than after the stage defined before it. Actual start still depends on conditions and resource checks, available agents, and parallel-job capacity.

condition: always() (A) affects whether the stage runs, not its dependency topology — it would still wait for Build. B is the opposite of the requirement. C concerns pipeline triggering, not stage ordering.

This is the stage-level counterpart to the job rule, and the empty-array syntax is what makes it explicit.

Answer: D

Q8hard

A pipeline has a final step that posts a failure notification, but the team never receives one even though builds fail. What is wrong?

A.

Service hooks must be used instead of a script step

B.

The notification step needs condition: failed() — without it the implicit succeeded() skips it after a failure

C.

The webhook secret is misconfigured

D.

Notifications are rate-limited after repeated failures

Show answer & explanation

Correct Answer: B

Every step carries an implicit succeeded() condition, so a step placed after a failing step is skipped. A failure notifier with no explicit condition therefore runs only when nothing failed.

This is the same defect as publishing test results without condition: succeededOrFailed(), and it is more dangerous than a missing alert: the silence is interpreted as success.

A, C and D would each produce different symptoms, and none explains notifications firing on success only.

Answer: B

Q9medium

A mobile release pipeline needs a code-signing certificate, and among YAML pipelines only that pipeline may use it. What is the correct mechanism?

A.

Commit the certificate to the repository in an encrypted archive

B.

Store it in the secure files library and restrict it with pipeline permissions and checks

C.

Base64-encode it into a non-secret pipeline variable

D.

Place it on the self-hosted agent's filesystem in advance

Show answer & explanation

Correct Answer: B

Use the secure files library and authorize the selected YAML pipeline with pipeline permissions and checks. Secure files are encrypted server-side protected resources intended for sensitive deployment files.

A leaves repository-managed ciphertext and history instead of using file-specific library controls; repository resources can nevertheless have their own checks and pipeline permissions. C is reversible encoding in an unprotected nonsecret variable, not a secure store. D bypasses Azure secure-file controls and relies on machine-level access. All classic pipelines can access secure files, so govern or disable them separately when exclusivity is required.

Answer: B

Q10medium

All public npm restores must run through one governed feed. Builds currently break when a required version is unpublished or the registry is unreachable, and the organisation needs a central inventory of versions installed through that feed. What should you recommend?

A.

Vendor all dependencies into each repository

B.

Add a retry step to the restore task

C.

Pin exact versions in the lock file and rebuild nightly

D.

Use an Azure Artifacts feed with upstream sources and let a Collaborator-or-higher save the versions it installs

Show answer & explanation

Correct Answer: D

When a Feed and Upstream Reader (Collaborator) or higher installs a package from an upstream source, Azure Artifacts automatically saves that version. The immutable saved version remains available from the governed feed during a later registry outage, and the feed centralises the versions and metadata installed through it.

A duplicates dependencies across repositories. B cannot recover a removed version. C pins which version is wanted but does not make that version available when the only registry is down.

Answer: D

Q11hard

A repository shows no Dependabot alerts despite using several outdated packages. What should you check first?

A.

Whether Actions usage insights are enabled

B.

Whether the repository has any releases published

C.

Whether traffic insights are being collected

D.

Whether the dependency graph is detecting the manifest, since it is what determines which advisories apply

Show answer & explanation

Correct Answer: D

The dependency graph is how GitHub knows what the project depends on, and therefore which advisories are relevant. If a manifest is not detected or parsed, no dependencies are known and no alerts can be raised.

The dangerous property is that this looks exactly like having no vulnerabilities — a silent absence rather than an error. A, B and C are unrelated to advisory matching.

Answer: D

Q12hard

Which combination guarantees the scanning step runs in every pipeline that deploys to production, including pipelines the platform team never reviews?

A.

Publish a shared template and ask each team to insert it with - template:

B.

Publish an extends template and enforce it with a Required template check on the production environment

C.

Add the scan to a branch policy on each repository's default branch

D.

Add the scan to a task group and share it across projects

Show answer & explanation

Correct Answer: B

Two controls are needed and only B supplies both. The extends template owns the structure, so a consuming pipeline can inject only what the typed parameters permit — the scan cannot be removed or moved. The Required template check, configured by the platform team as the resource owner of the production environment, makes using that template a condition of deploying at all.

A composes but does not constrain: a team that can add - template: can delete it. C governs merges into a branch, not what a deployment does. D relies on voluntary adoption and, more importantly, task groups do not exist in YAML pipelines.

Answer: B

Q13medium

What is the purpose of the secret configured on a webhook subscription?

A.

To encrypt the payload in transit

B.

To authenticate the receiving service to Azure DevOps

C.

To rate-limit deliveries

D.

To sign the payload so the receiver can verify the request genuinely came from the platform

Show answer & explanation

Correct Answer: D

The secret produces a signature over the payload, letting the receiver verify origin. Without that check, the endpoint is reachable by anyone who learns the URL — an open trigger for whatever it does.

A is handled by TLS. B inverts the direction: the platform is calling you. C is unrelated.

Answer: D

Q14hard

A team wants the release version to be derived automatically from what was committed, rather than decided in a meeting. What must be in place?

A.

A structured commit convention such as Conventional Commits, enforced by pull request validation

B.

A nightly build that increments the patch number

C.

Tags applied manually at release time

D.

A branch per release

Show answer & explanation

Correct Answer: A

Deriving a version automatically requires history to be machine-readable: fix: implies a patch, feat: a minor, and BREAKING CHANGE: a major. Enforcing the convention in pull request validation is what makes the derivation trustworthy — an unenforced convention decays within weeks and the automation silently produces wrong versions.

B increments regardless of content, so a breaking change ships as a patch. C is the manual decision being replaced. D organises releases without saying anything about their version.

Answer: A

Q15medium

An organisation keeps all source in Azure Repos but wants CodeQL code scanning and secret scanning. What should you recommend?

A.

Migrate the repositories to GitHub to gain access to CodeQL

B.

Mirror each repository to GitHub and scan the mirror

C.

Build a custom pipeline task that invokes the CodeQL CLI

D.

Enable GitHub Advanced Security for Azure DevOps on the repositories

Show answer & explanation

Correct Answer: D

GitHub Advanced Security for Azure DevOps provides code scanning, secret scanning and dependency scanning directly on Azure Repos, with findings surfaced in the Azure DevOps Advanced Security tab. No migration is required.

A is exactly the unnecessary migration this product exists to avoid. B doubles the estate and leaves findings in the wrong place. C reimplements a supported product by hand.

Answer: D

These are 15 of 419 questions available. Take a practice test →

Designing and Implementing Microsoft DevOps Solutions (AZ-400) Flashcards

453 flashcards for spaced-repetition study. Showing 30 sample cards below.

Agent and runner infrastructure(8 cards shown)

Question

Microsoft-hosted agent availability

Answer

Azure DevOps Services only. Not available in Azure DevOps Server.

Question

Microsoft-hosted billing model

Answer

Paid current-plan capacity: parallel jobs (concurrency-based). The free hosted job has minute limits; legacy per-minute plans still exist.

Question

GitHub-hosted agents for Azure Pipelines (preview)

Answer

Per-minute PAYG, no free tier, larger configurations; availability is still rolling out by region.

Question

State on a Microsoft-hosted agent

Answer

Fresh VM for every job; its filesystem is discarded afterward. Use Cache@2 for server-backed cross-run caches.

Question

Main speed advantage of self-hosted

Answer

Machine-level caches and configuration persist run to run.

Question

Three reasons to go self-hosted

Answer

Custom/licensed software · private network access · warm caches.

Question

Elastic self-hosted capacity

Answer

VM Scale Set agents — but Managed DevOps Pools is the current recommendation.

Question

What you own with self-hosted

Answer

Own OS/tool maintenance, workspace hygiene, and least-privilege machine security; keep the agent compatible, though required agent updates can be automatic.

Alerting on pipeline events(4 cards shown)

Question

Why a failure notifier never fires

Answer

Missing condition: failed() — implicit succeeded() skips it.

Question

Why that bug is dangerous

Answer

Silence is read as good news.

Question

Alert on

Answer

Broken main · awaiting approval · production failure.

Question

Alert routing

Answer

To a team that can act — ownership must be explicit.

Analyzing usage and application performance(4 cards shown)

Question

Performance investigation order

Answer

Slow operations (p95/p99) → dependencies → code.

Question

Common analysis mistake

Answer

Profiling code before checking dependencies.

Question

Why segment telemetry

Answer

Aggregates hide people — one tenant can fail entirely.

Question

Fastest regression diagnosis

Answer

Correlate with release annotations.

Appropriate access levels(4 cards shown)

Question

Stakeholder access

Answer

Unlimited free access: work items/backlogs/dashboards plus release viewing/approval; no Azure Repos in private projects.

Question

Approver who never touches code

Answer

Stakeholder.

Question

Access level vs permissions

Answer

Level = which features (licensing). Permissions = what you may do.

Question

GitHub contractor needing selected repositories without organization membership

Answer

Outside collaborator; with Enterprise Managed Users, repository collaborator.

Automating container scanning(5 cards shown)

Question

Two container scan targets

Answer

Base image / OS packages, and the application code inside.

Question

Scan before push

Answer

Keeps vulnerable images out of the registry.

Question

Continuous registry scanning

Answer

Catches CVEs disclosed after the image was built.

Question

CodeQL inside a container

Answer

Requires advanced setup — default cannot express it.

Question

Usual fix for base-layer CVEs

Answer

Rebuild on a patched base image.

Automating documentation from Git history(5 cards shown)

Question

Conventional Commits value

Answer

Makes history machine-readable.

Question

BREAKING CHANGE: implies

Answer

A major version increment.

Question

feat: / fix: imply

Answer

Minor / patch.

Question

Why enforce in PR validation

Answer

An unenforced convention decays and the automation goes wrong silently.

Question

What automation cannot supply

Answer

The why.

Showing 30 of 453 flashcards. Study all flashcards →

Ready to ace Designing and Implementing Microsoft DevOps Solutions (AZ-400)?

Access all 419 practice questions, 27 timed mock exams, study notes, and flashcards — no sign-up required.

Start Studying — Free