BrainyBeeBrainyBee
ExploreBlogStart Studying
Home›Explore›Designing and Implementing Microsoft DevOps Solutions (AZ-400)

🔷 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 — Free

On This Page

  • Study Notes (194)
  • Practice Questions (15)
  • Flashcards (30)
  • Related Study Resources

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.

Lesson421 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

OptionManaged byBillingUse when
Microsoft-hostedMicrosoftConcurrency-based (parallel jobs)Standard toolchains, no persistent state needed
Self-hostedYouYour infrastructure + parallel job licenceCustom software, private network access, large caches
VM Scale Set agentsYou, autoscaledAzure VM costBursty demand needing elastic self-hosted capacity
Managed DevOps PoolsMicrosoft, on your configAzure costThe current recommendation over raw VMSS agents
GitHub-hosted (for Pipelines)GitHubPer minute, pay-as-you-goMore powerful machines, usage-based billing

Microsoft-hosted agents exist only in Azure DevOps Services — they are not available in Azure DevOps Server. Any on-premises scenario is self-hosted by definition.

Why teams move to self-hosted

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

  1. Software you must install that is not on the hosted image.
  2. Network reachability — the build must reach a private endpoint, an on-premises database, or a licence server.
  3. Speed through persistence. Machine-level caches and configuration survive between runs on a self-hosted agent. A Microsoft-hosted agent is a clean machine every time, which is excellent for reproducibility and terrible for incremental build caches.

That third point is the trade-off in one line: hosted buys you cleanliness, self-hosted buys you warm caches. You cannot have both on the same agent.

Billing models differ in kind, not just amount

Microsoft-hosted capacity is bought as parallel jobs — a concurrency slot, not minutes. Two jobs at once needs two parallels regardless of how long they run. GitHub-hosted agents for Azure Pipelines bill per minute of usage instead, which inverts the optimisation: with concurrency billing you care about how many jobs overlap; with per-minute billing you care about how long they take.

Maintainability

Self-hosted is not free after setup. You own agent version upgrades, OS patching, tool installs, disk hygiene between runs, and the security posture of a machine that holds pipeline credentials. VM Scale Set agents and Managed DevOps Pools exist to keep the elasticity while handing back most of that burden — which is why Microsoft now recommends Managed DevOps Pools over building your own autoscaling scale-set pool.

Primary sources

  • https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents
  • https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted
Quick Notes150 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 billingConcurrency — parallel jobs, not minutes
GitHub-hosted for PipelinesPer-minute pay-as-you-go, more powerful VMs
Microsoft-hosted stateClean VM every run — no cache persistence
Self-hosted advantageCaches + configuration persist run to run
Self-hosted reasonsCustom software · private network · warm caches
Elastic self-hostedVM Scale Set agents; Managed DevOps Pools now recommended
Self-hosted costYou own patching, upgrades, disk hygiene, credential security

Traps

  1. "Use Microsoft-hosted for the on-prem server" — impossible; hosted is Services-only.
  2. "Hosted agents cache between runs" — false, every run is a clean machine.
  3. Concurrency billing ≠ per-minute billing; the optimisation differs.
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

  • https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-overview
  • https://learn.microsoft.com/en-us/azure/azure-monitor/overview
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

  • https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview
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.
Lesson217 words

Appropriate access levels

Read full article

Recommend appropriate access levels

Access level and permissions are different axes. Access level decides which features a user may use at all — it is a licensing question. Permissions decide what they may do with the things they can see.

Azure DevOps access levels

LevelGets
StakeholderFree. Work items, backlogs, dashboards, and approvals — but not code (Repos) or full Pipelines
BasicFull access to Repos, Pipelines, Boards and Artifacts
Basic + Test PlansBasic plus test management
Visual Studio subscriberEntitlement via subscription

Stakeholder is the answer whenever a scenario describes someone who needs visibility and sign-off but not code: a product owner tracking a backlog, a manager approving a release. It costs nothing, so assigning Basic to those people is pure waste — and grants code access they never needed.

GitHub

Outside collaborator is the parallel concept: repository-scoped access without organisation membership, correct for contractors and partners.

Reviewing regularly

Access levels drift upward. People are granted Basic during a project and keep it for years. Periodic review is part of the design, not an afterthought — and it is cheapest when access came from group membership rather than individual grants.

Primary sources

  • https://learn.microsoft.com/en-us/azure/devops/organizations/security/access-levels
Quick Notes85 words

Appropriate access levels — quick notes

Read full article

Access levels — quick notes

LevelGetsCost
StakeholderWork items, backlogs, dashboards, approvals — no Repos, limited PipelinesFree
BasicRepos, Pipelines, Boards, ArtifactsPaid
Basic + Test PlansBasic + test managementPaid
  • Access level = which features (licensing). Permissions = what you may do.
  • Product owner / approver who never touches code → Stakeholder.
  • GitHub parallel for contractors → outside collaborator.
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

  • https://docs.github.com/en/code-security/code-scanning
  • https://learn.microsoft.com/en-us/azure/container-registry/scan-images-defender
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

202 words

Azure Deployment Environments — quick notes

118 words

Azure DevOps service connections and PATs

213 words

Azure DevOps service connections and PATs — quick notes

104 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

368 words

Checks and approvals with YAML environments — quick notes

175 words

Choosing a configuration management technology

193 words

Choosing a configuration management technology — quick notes

98 words

Choosing package management tools

209 words

Choosing package management tools — quick notes

68 words

Code coverage analysis

218 words

Code coverage analysis — quick notes

91 words

Complex pipeline scenarios

281 words

Complex pipeline scenarios — quick notes

124 words

Comprehensive testing strategy

283 words

Comprehensive testing strategy — quick notes

117 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

226 words

Defining an IaC strategy — quick notes

94 words

Dependabot for licensing, vulnerabilities and versioning

276 words

Dependabot for licensing, vulnerabilities and versioning — quick notes

107 words

Dependency versioning strategy

215 words

Dependency versioning strategy — quick notes

113 words

Deploying containers, binaries and scripts

225 words

Deploying containers, binaries and scripts — quick notes

95 words

Deployment resiliency

204 words

Deployment resiliency — quick notes

87 words

Deployments including database tasks

255 words

Deployments including database tasks — quick notes

117 words

Deployment strategies

259 words

Deployment strategies — quick notes

104 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

249 words

Desired state configuration for environments — quick notes

93 words

Develop pipelines by using YAML

786 words

Distributed tracing

262 words

Distributed tracing — quick notes

96 words

Feature flags with Azure App Configuration

263 words

Feature flags with Azure App Configuration — quick notes

136 words

Feedback cycles

230 words

Feedback cycles — quick notes

82 words

Feeds, views and upstream packages

254 words

Feeds, views and upstream packages — quick notes

132 words

GitHub Advanced Security for GitHub and Azure DevOps

277 words

GitHub Advanced Security for GitHub and Azure DevOps — quick notes

111 words

GitHub authentication

240 words

GitHub authentication — quick notes

94 words

Hotfix path planning

188 words

Hotfix path planning — quick notes

98 words

Implementing a configuration management strategy

213 words

Implementing a configuration management strategy — quick notes

97 words

Implementing tests in a pipeline

201 words

Implementing tests in a pipeline — quick notes

85 words

Infrastructure performance indicators

227 words

Infrastructure performance indicators — quick notes

90 words

Integrating GHAS with Defender for Cloud

225 words

Integrating GHAS with Defender for Cloud — quick notes

71 words

Integrating GitHub repositories with Azure Pipelines

250 words

Integrating GitHub repositories with Azure Pipelines — quick notes

129 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

254 words

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

103 words

Key Vault for secrets, keys and certificates

251 words

Key Vault for secrets, keys and certificates — quick notes

103 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

245 words

Microsoft Defender for Cloud DevOps Security — quick notes

92 words

Migrating classic pipelines to YAML

263 words

Migrating classic pipelines to YAML — quick notes

112 words

Minimising downtime

229 words

Minimising downtime — quick notes

123 words

Monitoring in GitHub

236 words

Monitoring in GitHub — quick notes

85 words

Monitoring pipeline health

224 words

Monitoring pipeline health — quick notes

81 words

Optimising a pipeline

250 words

Optimising a pipeline — quick notes

102 words

Optimising pipeline concurrency

244 words

Optimising pipeline concurrency — quick notes

86 words

Permissions and roles in GitHub

235 words

Permissions and roles in GitHub — quick notes

85 words

Permissions and security groups in Azure DevOps

242 words

Permissions and security groups in Azure DevOps — quick notes

107 words

Pipeline trigger rules

287 words

Pipeline trigger rules — quick notes

141 words

Preventing leakage of sensitive information

293 words

Preventing leakage of sensitive information — quick notes

100 words

Projects and teams in Azure DevOps

212 words

Projects and teams in Azure DevOps — quick notes

83 words

Pull request workflow

233 words

Pull request workflow — quick notes

76 words

Quality and release gates

272 words

Quality and release gates — quick notes

95 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

187 words

Reliably ordered dependency deployments — quick notes

89 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

231 words

Retention strategy — quick notes

91 words

Reusable pipeline elements

261 words

Reusable pipeline elements — quick notes

150 words

Scaling and optimizing a Git repository

266 words

Scaling and optimizing a Git repository — quick notes

106 words

Secretless authentication

266 words

Secretless authentication — quick notes

116 words

Security and compliance scanning strategy

256 words

Security and compliance scanning strategy — quick notes

85 words

Selecting a deployment automation solution

306 words

Selecting a deployment automation solution — quick notes

100 words

Sensitive files during deployment

212 words

Sensitive files during deployment — quick notes

81 words

Service principals and managed identities

256 words

Service principals and managed identities — quick notes

98 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

208 words

Versioning pipeline artifacts — quick notes

105 words

Wikis and process diagrams

207 words

Wikis and process diagrams — quick notes

86 words

YAML pipelines — quick notes

186 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.

Q1medium

Why does a slot swap avoid the cold-start delay that a direct deployment to production causes?

A.

The swap restarts the production instance with more memory

B.

Swaps are performed during a maintenance window

C.

The staging instance is already running and warmed before it becomes production

D.

Traffic is queued at the load balancer until the app responds

Show answer & explanation

Correct Answer: C

A swap exchanges running instances. The staging slot has already started the application and warmed it, so when it becomes production it serves the first real request at full speed.

A misdescribes the mechanism. B is a scheduling choice that does not remove cold start. D describes buffering, which would add latency rather than remove it.

Answer: C

Q2medium

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

Q3hard

Management begins using team velocity as a performance target. What is the predictable consequence?

A.

Velocity becomes a more accurate predictor over time

B.

Estimates inflate and velocity stops predicting delivery

C.

Cycle time falls proportionally

D.

The cumulative flow diagram flattens

Show answer & explanation

Correct Answer: B

Velocity is a planning input derived from the team's own estimates. Once it becomes a target, the cheapest way to raise it is to estimate more generously — so the number rises while delivery does not, and it stops predicting anything.

A is the opposite of what happens. C and D are unrelated effects.

The practical guidance: use velocity across several iterations for forecasting, and never as a cross-team comparison or an objective.

Answer: B

Q4hard

A team ships a hotfix from a branch cut off the production tag. Two weeks later the same defect reappears in production. What most likely went wrong?

A.

The hotfix was never merged back into main, so the next release overwrote it

B.

The hotfix branch was deleted too early

C.

The deployment slot was not swapped back

D.

The feature flag guarding the fix was disabled

Show answer & explanation

Correct Answer: A

This is the classic hotfix failure. The fix exists only on the hotfix branch; main still contains the defective code, so the next release from main reintroduces it — and it looks like a regression of something already fixed.

B is housekeeping with no effect on the code. C would have reverted the whole release immediately, not two weeks later. D presumes a flag the scenario never mentions.

The rule: a hotfix is not finished when it is deployed. It is finished when it is merged back.

Answer: A

Q5medium

A service reports an average response time of 200 ms, yet users complain about slowness. What should you examine?

A.

CPU utilisation on the hosts

B.

The p95 and p99 latency percentiles

C.

The total request count

D.

Deployment frequency

Show answer & explanation

Correct Answer: B

An average hides the tail. A 200 ms mean is compatible with a p99 of several seconds, meaning a meaningful fraction of requests — and therefore of users — are slow. Averages also improve as traffic grows even while the tail worsens.

A is a diagnostic signal, not a measure of user experience. C gives volume without latency. D is a delivery metric.

Answer: B

Q6hard

After adopting OIDC, a team finds that any workflow in the organisation can assume the production cloud role. What was configured incorrectly?

A.

The cloud trust relationship was not scoped to specific token claims such as repository and environment

B.

The OIDC token lifetime was set too long

C.

The workflow is missing a permissions: block

D.

The runner is self-hosted rather than GitHub-hosted

Show answer & explanation

Correct Answer: A

The OIDC token carries claims identifying the workflow, repository and environment — the sub claim, for instance, referencing a prod environment in a named repository. The cloud-side trust must be scoped to those claims. A trust that accepts any token from the organisation's OIDC provider will accept every workflow.

B is not configurable in the way implied and would not cause cross-workflow access. C narrows GITHUB_TOKEN, a different credential. D does not affect claim validation.

Answer: A

Q7medium

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

Q8hard

Which measure improves clone time for developers who work in one directory, without rewriting history?

A.

Squashing all history into a single commit

B.

Scalar, applying partial clone and sparse checkout

C.

Increasing clone depth

D.

Splitting the repository into submodules

Show answer & explanation

Correct Answer: B

Partial clone defers downloading file contents until needed and sparse checkout materialises only the directories a developer works in — which is exactly the stated pattern. Neither requires rewriting history, so the re-clone constraint is respected.

A is a history rewrite by another name. C increases what is downloaded. D is a restructure that also breaks clones and does not by itself shrink what is fetched.

Answer: B

Q9hard

What is the cheapest meaningful hardening step for a workflow that already uses GITHUB_TOKEN?

A.

Rotate the token weekly

B.

Declare an explicit permissions: block narrowing the token to what the job needs

C.

Move the workflow to a self-hosted runner

D.

Store the token in a variable group

Show answer & explanation

Correct Answer: B

Declaring permissions: at workflow or job level narrows GITHUB_TOKEN to the specific scopes required. Defaults are broader than most jobs need, so this reduces blast radius for a couple of lines of YAML and no operational cost.

A is impossible and unnecessary — the token expires with the job. C changes where the job runs, not what the token may do. D misunderstands the token entirely: it is injected per run, not stored.

Answer: B

Q10hard

A platform team publishes this extends-template:

yaml
# secure-pipeline.yml parameters: - name: buildSteps type: stepList default: [] stages: - stage: Build jobs: - job: Build steps: - ${{ each step in parameters.buildSteps }}: - ${{ step }} - script: ./mandatory-scan.sh

A product team wants to inject an entire extra job that runs before the scan. What happens?

A.

It works — stepList accepts any YAML node, including a job

B.

It works, but the injected job runs after ./mandatory-scan.sh

C.

The pipeline fails, because buildSteps is typed stepList and a job is not a step

D.

The pipeline runs and silently ignores the injected job

Show answer & explanation

Correct Answer: C

Template parameters are typed, and the type is checked when the pipeline is compiled. type: stepList permits a list of steps and nothing else; supplying a job is a type violation and the run fails to compile.

This is the whole point of extends-templates as a security control. Options A and D both describe a system that would let a consumer smuggle in arbitrary structure — if either were true, the mandatory scan could be bypassed and extends: would provide no guarantee at all. B misreads the failure as a mere ordering problem.

The available parameter types include string, object, stepList, jobList, and stageList. Choosing the narrowest type that satisfies the legitimate use case is what makes the constraint real.

Answer: C

Q11medium

A company hosts all source in GitHub. They need deployment approvals that a central platform team defines and that individual product teams cannot bypass, plus deployment to on-premises servers. What should you recommend?

A.

Azure Pipelines building the GitHub repositories, using environments with checks and self-hosted agents

B.

Migrate all repositories to Azure Repos first, then use Azure Pipelines

C.

GitHub Actions with branch protection rules on the deployment branch

D.

GitHub Actions with a required reviewers rule in each workflow file

Show answer & explanation

Correct Answer: A

Azure Pipelines builds GitHub repositories natively, so no migration is needed. Its checks are owned by the resource owner, which is what makes a central policy unbypassable by the consuming team, and self-hosted agents reach on-premises targets.

B adds a migration the requirements never asked for. C governs merges into a branch, not what a deployment does. D puts the control in a file the product team owns and can edit — precisely the bypass the requirement rules out.

Answer: A

Q12hard

The API stage completes successfully, but the web stage that depends on it fails because the API is not yet serving requests. dependsOn is already configured correctly. What best addresses this?

A.

Add a fixed sleep step at the start of the web stage

B.

Add a health check in postRouteTraffic, and gate the web stage with a Query Azure Monitor alerts or Invoke REST API check

C.

Change the web stage to dependsOn: []

D.

Increase the API stage's job timeout

Show answer & explanation

Correct Answer: B

A stage completing means its steps exited zero — not that the service is healthy and serving. Closing that gap needs an actual readiness signal: postRouteTraffic runs health checks while traffic flows, and a Query Azure Monitor alerts or Invoke REST API check on the downstream resource blocks the next stage until the dependency reports healthy.

A is the common hack and it is unreliable: too short and it still fails, too long and every deployment pays the cost. C removes ordering entirely, making things worse. D extends how long the API stage may run, which was never the problem.

Answer: B

Q13hard

Velocity has risen steadily since it became a target. What should you conclude?

A.

The team has genuinely become more productive

B.

Velocity is now a poor predictor, because estimates inflate once the measure becomes the target

C.

Cycle time must have fallen proportionally

D.

The team is taking on smaller items

Show answer & explanation

Correct Answer: B

Velocity is derived from the team's own estimates, so the cheapest way to raise it is to estimate more generously. Once it becomes a target the number rises while delivery does not, and it stops predicting anything.

A is exactly the conclusion the rising line invites and the one the incentive undermines. C and D would need independent evidence, and neither follows from a velocity increase.

Answer: B

Q14medium

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

Q15medium

A repository has had no commits for six months. Which scanning capability would still surface a newly disclosed vulnerability in one of its dependencies?

A.

Code scanning on pull request

B.

Secret scanning push protection

C.

Dependency review on pull request

D.

Dependabot alerts, which are raised when a new advisory affects an existing dependency

Show answer & explanation

Correct Answer: D

Dependabot alerts are driven by the advisory database, not by your commits — so a vulnerability disclosed today raises an alert on code that has not changed in months.

A, B and C all trigger on developer activity. In a quiet repository they never run, which is precisely the gap continuous alerting fills. It is the same reasoning behind setting always: true on a scheduled scanning pipeline.

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

Concurrency — parallel jobs, not minutes.

Question

GitHub-hosted agents for Pipelines billing

Answer

Per minute, pay-as-you-go. More powerful VMs.

Question

State on a Microsoft-hosted agent

Answer

None — a clean VM every run. No cache persistence.

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

Patching, agent upgrades, disk hygiene, credential security.

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

Free. Work items, backlogs, dashboards, approvals — no Repos.

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 equivalent

Answer

Outside 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 →

Related Study Resources

Explore other free certification prep and study materials on BrainyBee.

∫

Calculus 1 Mastery

AWS Certified Cloud Practitioner (CLF-C02)

854 questions · 163 notes

AWS Certified Solutions Architect - Associate (SAA-C03)

833 questions · 204 notes

AWS Certified Machine Learning Engineer - Associate (MLA-C01)

724 questions · 160 notes

AWS Certified CloudOps Engineer - Associate (SOA-C03)

840 questions · 148 notes

AWS Certified Advanced Networking - Specialty (ANS-C01)

1156 questions · 231 notes

Microsoft Azure Fundamentals (AZ-900)

680 questions · 96 notes

AWS Certified Security - Specialty (SCS-C03)

980 questions · 130 notes

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
Explore All HivesBlogHome

© 2026 BrainyBee. Free AI-powered exam prep.

Loading Diagram...
Flowchart, left to right. Build image connects to Scan image<br/>before push. S connects to Push to registry. P connects to Registry scanning<br/>continuous, on new CVEs. R connects to Deploy gate.