🔷 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
194
Study Notes
453
Flashcards
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

How should the column rename be delivered so that neither application version breaks?

A.

A single ALTER TABLE ... RENAME COLUMN in the release

B.

Expand: add the new column; migrate: dual-write and backfill; contract: drop the old column once nothing reads it

C.

Rename the column and deploy the application in the same transaction

D.

Take a maintenance window and rename during downtime

Show answer & explanation

Correct Answer: B

Expand → migrate → contract keeps the schema compatible with both the old and new application versions throughout the rollout, which is what makes a five-minute application reversal survivable while the old schema remains. The final contract step drops the old column only after no running version needs it.

A and C are backward-incompatible during coexistence: old code expects the old name and new code expects the new one. A rename does not itself discard the column's data. D violates the zero-downtime constraint.

Answer: B

Q2medium

Twelve virtual machines must all read from the same Key Vault with identical permissions, and the team wants to manage the role assignment once. Which identity should you use?

A.

A user-assigned managed identity attached to all twelve VMs

B.

A system-assigned managed identity on each VM

C.

A service principal with a shared client secret distributed to the VMs

D.

A personal access token stored in a variable group

Show answer & explanation

Correct Answer: A

A user-assigned managed identity is standalone and can be attached to many resources, so the Key Vault role assignment is made once against that single identity.

B would create twelve distinct identities and role assignments. C distributes a stored credential. D is a user-bound alternative password and is inappropriate when a managed workload identity is available; PAT lifecycle APIs do support programmatic rotation, but that does not make a PAT the requested Azure identity.

Answer: A

Q3medium

A team wants to package a repeated sequence of steps for reuse across several YAML pipelines. Which mechanism should they use?

A.

A YAML template referenced with template:

B.

A task group created from the classic editor

C.

A variable group in the Library

D.

A service connection shared across projects

Show answer & explanation

Correct Answer: A

Task groups are not supported in YAML pipelines — the documentation says so explicitly and directs you to templates. A YAML template referenced with template: is the correct reuse unit.

B is the trap, and it is in the objective precisely because task groups remain valid for classic pipelines. C shares values, not steps. D shares credentials to an external system.

Answer: A

Q4hard

A team needs CodeQL analysis to run inside a container, because the build toolchain only exists in that image. Which configuration supports this?

A.

Default setup, selecting the container option in repository settings

B.

Advanced setup, where the generated workflow file specifies the container and build steps

C.

A Dependabot configuration file

D.

Secret scanning push protection

Show answer & explanation

Correct Answer: B

Advanced setup generates a workflow file you control, which is where the container and the build are specified. CodeQL must observe the real build to analyse a compiled language, so the analysis has to run where that build runs.

A describes a setting default setup does not offer — its value is precisely that there is no workflow file to configure. C and D are unrelated capabilities.

Answer: B

Q5hard

An onboarded Azure DevOps repository appears in Defender for Cloud inventory, but after its intended in-pipeline Microsoft Security DevOps run, no SARIF findings appear. What should the team check?

A.

The connector must be recreated with organisation-level permissions

B.

Defender for Cloud scans code only on a weekly schedule

C.

Findings appear only for public repositories

D.

The pipeline is not running Microsoft Security DevOps and publishing results to the required CodeAnalysisLogs artifact

Show answer & explanation

Correct Answer: D

D checks the intended in-pipeline path. Azure DevOps inventory discovery and production of scan findings are separate: Microsoft Security DevOps must run, and the CodeAnalysisLogs artifact name is required for Defender ingestion.

GHAS is another supported findings path rather than a universal prerequisite, and preview agentless scanning is separately configured. A does not fit discovered inventory, while B and C invent restrictions.

Answer: D

Q6medium

A pipeline rebuilds the application separately for dev, test and production so each gets its environment's settings compiled in. What is the principal risk?

A.

Build agents will run out of parallel jobs

B.

Azure Pipeline Artifact storage billing automatically triples

C.

The binary tested in test is not the binary deployed to production

D.

Deployment slots cannot be used with multiple builds

Show answer & explanation

Correct Answer: C

Rebuilding per environment breaks build once, deploy many: the production artifact was produced by a separate compilation that no test ever exercised. Any non-determinism — a dependency resolving differently or a toolchain update — can therefore reach production untested.

A is not implied by the scenario. B is false because Pipeline Artifact storage is exempt from storage billing. D is not a deployment-slot constraint. Build once and inject environment differences as configuration.

Answer: C

Q7medium

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

Q8medium

A pipeline needs secrets held in Key Vault, and the security team requires that the vault remain the system of record with no copies stored in Azure DevOps. What should you configure?

A.

Copy the secrets into a variable group and mark them secret

B.

Store the secrets as pipeline variables at queue time

C.

A variable group linked to the Azure Key Vault

D.

A secure file containing the secrets

Show answer & explanation

Correct Answer: C

A Key Vault-linked variable group resolves its values from the vault, so rotation happens in one place and no copy is held in Azure DevOps.

A creates exactly the duplicate the requirement excludes — and it will drift from the vault after the next rotation. B is manual and unauditable. D stores the secrets in a different Azure DevOps store, not the vault.

Answer: C

Q9medium

What most likely explains the gap between a two-day cycle time and a month-long wait?

A.

The team is slow to complete work once started

B.

Work waits in the backlog before anyone starts it, which lead time captures and cycle time does not

C.

Deployments are infrequent

D.

The dashboard is misconfigured

Show answer & explanation

Correct Answer: B

Lead time runs from work item creation; cycle time runs from the start of active work. The gap between them is queue time.

A contradicts the two-day cycle time. C and D are possible in principle but neither explains the specific arithmetic. The actionable conclusion is about intake and work-in-progress limits, not team speed — and reporting cycle time alone is what let an overloaded team look excellent.

Answer: B

Q10medium

Which pair consists of code coverage formats accepted by PublishCodeCoverageResults@2?

A.

Cobertura and JaCoCo

B.

JUnit and NUnit

C.

VSTest and xUnit

D.

CTest and TRX

Show answer & explanation

Correct Answer: A

Among these options, Cobertura and JaCoCo are coverage formats and examples accepted by v2. The task supports other coverage formats too. The remaining pairs are test-result formats accepted by PublishTestResults@2.

Answer: A

Q11hard

In name: $(Date:yyyyMMdd)$(Rev:.r), what does $(Rev:.r) contribute?

A.

The revision number of the source commit

B.

The count of pipelines in the project

C.

The Git tag applied to the build

D.

An auto-incrementing counter that resets whenever the rest of the name changes

Show answer & explanation

Correct Answer: D

$(Rev:.r) is a special token that increments automatically and resets when the remainder of the run name changes. With a date prefix that means the first run on a given day is .1, the second .2, and the counter restarts the next day.

A confuses it with the source revision — it has no relationship to the commit. B and C describe unrelated values.

Also worth keeping straight: Build.BuildId is an internal, immutable Run ID unique within the Azure DevOps organization, while Build.BuildNumber is this formatted run name.

Answer: D

Q12hard

CPU sits at 15% while p99 latency is several seconds. What does this indicate?

A.

The host is under-provisioned and needs more CPU

B.

The average of 210 ms proves the service is healthy

C.

The service is waiting — on a dependency, a lock, a disk or a connection pool — rather than computing

D.

Telemetry sampling is distorting the latency figures

Show answer & explanation

Correct Answer: C

Low CPU with high latency means waiting, not computing. The time is being spent on a slow downstream call, lock contention, disk latency, or an exhausted connection pool.

A prescribes more of a resource that is 85% idle. B relies on an average that hides the tail — and averages improve as traffic grows even while the tail worsens. D affects which events are retained, not the latency of those that are.

Answer: C

Q13medium

Which coverage measure is most actionable as a pull request gate?

A.

Repository-wide coverage percentage

B.

Coverage of the lines changed by the pull request

C.

Number of test cases in the repository

D.

Coverage trend over the last year

Show answer & explanation

Correct Answer: B

Changed-line coverage asks a question the author can act on, cannot be satisfied by adding tests elsewhere, and does not penalise a codebase for its history.

A is dominated by legacy code and usually results in the threshold being lowered. C counts tests without regard to what they verify. D is informative for reporting but not a per-PR gate.

Answer: B

Q14medium

A pipeline defines four stages with no dependsOn anywhere. How do they run?

A.

Sequentially, in the order they are defined

B.

All four in parallel

C.

In parallel, limited by the parallel job allocation

D.

The pipeline fails — stages require explicit dependencies

Show answer & explanation

Correct Answer: A

Stages run one after the other by default, in definition order. This is the opposite of jobs, which run in parallel unless dependsOn is set — and that asymmetry is the single most useful thing to remember here.

B and C apply the job rule to stages. D invents a requirement; stages without dependencies are perfectly valid and simply run in sequence.

To make a stage run in parallel with others you must write dependsOn: [] explicitly.

Answer: A

Q15medium

When the team can eventually coordinate a rewrite, what must they plan for?

A.

Every commit hash changes from the rewrite point, so all clones must be re-created

B.

Branch policies must be recreated

C.

The repository becomes read-only for 24 hours

D.

Only the default branch is affected

Show answer & explanation

Correct Answer: A

A rewrite produces new commit objects with new hashes, so existing clones no longer share ancestry and cannot be reconciled — everyone re-clones. Open pull requests and tags may also need recreating, and forks or mirrors retain the old objects unless handled.

B, C and D are not consequences of the rewrite.

Answer: A

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, study notes, and flashcards — no sign-up required.

Start Studying — Free