“考试 AZ-400:设计和实现 Microsoft DevOps 解决方案”学习指南

本文档的目的

本学习指南应帮助你了解考试的预期内容,并包含考试可能涵盖的主题摘要以及指向其他资源的链接。 本文档中的信息和材料可以帮助你在准备考试时集中精力学习。

有用链接 说明
查看自 2024 年 7 月 26 日起测试的技能 此列表表示在提供的日期之后测试的技能。 如果你计划在该日期之后参加考试,请学习此列表。
查看 2024 年 7 月 26 日之前测试的技能 如果在提供的日期之前参加考试,请学习此技能列表。
更改日志 如果想要查看将在提供的日期所做的更改,可以直接转到更改日志。
如何获得认证 有些认证只需要通过一项考试,而另一些认证则需要通过多项考试。
认证续订 Microsoft 助理、专业和专家认证每年都会过期。 你可以通过 Microsoft Learn 上的免费在线评估进行续订
Microsoft Learn 个人资料 通过将认证个人资料连接到 Microsoft Learn,可以安排和续订考试以及共享和打印证书。
考分和成绩报告 需要 700 分或更高的分数才能通过。
考试沙盒 可以通过访问我们的考试沙盒来探索考试环境。
请求便利设施 如果你使用辅助设备、需要额外时间或需要修改考试体验的任何部分,你可以申请住宿。
进行免费的练习评估 通过练习题测试技能,帮助你为考试做准备。

考试更新

我们的考试会定期更新,以反映执行某一角色所需的技能。 我们提供了两个版本的技能测评目标,具体取决于你参加考试的时间。

我们始终首先更新考试的英语版本。 一些考试已本地化为其他语言,在英语版本更新后大约八周进行更新。 虽然 Microsoft 会尽一切努力更新本地化版本,但有时考试的本地化版本可能未按此计划进行更新。 其他可用语言列在“考试详细信息”网页的“安排考试”部分。 如果考试不以你的首选语言提供,你可以请求额外 30 分钟时间来完成考试。

注意

每项技能下面的项目符号旨在说明我们如何评估该技能。 考试中可能会涉及到相关的主题。

注意

大多数问题都涉及正式发布 (GA) 的功能。 如果经常使用预览功能,该考试可能会包含有关这些功能的问题。

自 2024 年 7 月 26 日起测试的技能

受众概况

作为一名 DevOps 工程师,你是开发人员或基础结构管理员,同时也是与人员协作、流程和产品方面的行业专家,负责实现组织的价值持续交付。

此角色的职责包括提供 Microsoft DevOps 解决方案,这些解决方案提供持续的安全性、集成、测试、交付、部署、监视和反馈。 你负责设计和实现工作流、协作、通信、源代码管理和自动化。

作为 DevOps 工程师,你在跨职能团队中工作,其中包括:

  • 开发人员

  • 站点可靠性工程师

  • Azure 管理员

  • 安全工程师

你必须具备在 Azure 中管理和开发的经验,并且至少在其中一个领域具有很强的技能。 你还应具备实现 GitHub 和 Azure DevOps 解决方案的经验。

技能概览

  • 设计和实现流程和通信 (10-15%)

  • 设计和实现源代码管理策略 (10-15%)

  • 设计和实现生成和发布管道 (50-55%)

  • 制定安全性和合规性规划 (10-15%)

  • 实现检测策略 (5-10%)

设计和实现流程和通信 (10-15%)

设计和实现可跟踪性和工作流

  • 设计和实现工作流的结构,包括 GitHub Flow

  • 设计和实现反馈周期的策略,包括通知和 GitHub 议题

  • 设计和实现跟踪工作的集成,包括 GitHub 项目、Azure Boards 和存储库

  • 设计和实现源、bug 和质量可追溯性

为 DevOps 设计和实现适当的指标和查询

  • 设计和实现仪表板,包括工作流,例如周期时间、恢复时间和提前期

  • 设计和实现项目规划的适当指标和查询

  • 设计和实现用于开发的适当指标和查询

  • 设计和实现用于测试的适当指标和查询

  • 设计和实现用于安全性的适当指标和查询

  • 设计和实现用于交付的适当指标和查询

  • 设计和实现用于运营的适当指标和查询

配置协作和通信

  • 通过配置 Wiki 和流程图来记录项目,包括 Markdown 和 Mermaid 语法

  • 配置发布文档,包括发行说明和 API 文档

  • 从 Git 历史记录自动创建文档

  • 使用 Webhook 配置集成

  • 配置 Azure Boards 和 GitHub 存储库之间的集成

  • 配置 GitHub 或 Azure DevOps 与 Microsoft Teams 之间的集成

设计和实现源代码管理策略 (10-15%)

设计和实现源代码的分支策略

  • 设计分支策略,包括基于主干的功能分支和发布分支

  • 使用分支策略和分支保护设计和实现拉取请求工作流

  • 使用分支策略和分支保护实现分支合并限制

配置和管理存储库

  • 设计和实现用于管理大型文件的策略,包括 Git 大型文件存储 (LFS) 和 git-fat

  • 设计用于缩放和优化 Git 存储库的策略,包括 Scalar 和跨存储库共享

  • 在源代码管理存储库中配置权限

  • 配置标记以组织源代码管理存储库

  • 使用 Git 命令恢复特定数据

  • 从源代码管理中移除特定数据

设计和实现生成和发布管道 (50-55%)

设计和实现包管理策略

  • 推荐包管理工具,包括 GitHub 包注册表和 Azure Artifacts

  • 设计和实现本地包和上游包的包源和视图

  • 设计和实现代码资产和包的依赖项版本控制策略,包括语义化版本控制 (SemVer) 和基于日期的版本控制 (CalVer)

  • 设计和实现管道工件的版本控制策略

设计和实现管道的测试策略

  • 设计和实现质量门和发布门,包括安全性和治理

  • 设计全面的测试策略,包括本地测试、单元测试、集成测试和负载测试

  • 在管道中实现测试,包括配置测试任务、配置测试代理以及集成测试结果

  • 实现代码覆盖率分析

设计和实现管道

  • 选择部署自动化解决方案,包括 GitHub Actions 和 Azure Pipelines

  • 设计和实现 GitHub 运行器或 Azure DevOps 代理基础结构,包括成本、工具选择、许可证、连接性和可维护性

  • 设计和实现 GitHub 存储库与 Azure Pipelines 之间的集成

  • 制定和实现管道触发器规则

  • 使用 YAML 开发管道

  • 设计和实现作业执行命令的策略,包括并行性和多阶段管道

  • 开发和实现复杂的管道方案,例如混合管道、VM 模板和自承载运行器或代理

  • 创建可重复使用的管道元素,包括 YAML 模板、任务组、变量和变量组

  • 使用基于 YAML 的环境设计和实现检查与审批

设计和实现部署

  • 设计部署策略,包括蓝-绿、Canary、更新通道、渐进式曝光、功能标志和 A/B 测试

  • 设计管道以确保对依赖项部署进行可靠排序

  • 规划使用虚拟 IP 地址 (VIP) 交换、负载均衡、滚动部署、部署槽位的使用和交换在部署过程中最大程度地减少停机时间

  • 制定用于响应高优先级代码修复的热修复路径计划

  • 设计和实现部署的复原策略

  • 使用 Azure 应用程序配置功能管理器实现功能标志

  • 使用容器、二进制文件和脚本实现应用程序部署

  • 实现包含数据库任务的部署

设计和实现基础结构即代码 (IaC)

  • 推荐应用程序基础结构的配置管理技术

  • 实现应用程序基础结构的配置管理策略

  • 定义 IaC 策略,包括源代码管理以及测试和部署的自动化

  • 设计和实现所需的环境状态配置,包括 Azure 自动化 State Configuration、Azure 资源管理器、Bicep 和 Azure Automanage 机器配置

  • 设计和实现用于按需自行部署的 Azure 部署环境

维护管道

  • 监视管道运行状况,包括故障率、持续时间和故障测试

  • 优化管道的成本、时间、性能和可靠性

  • 针对性能和成本优化管道并发

  • 设计和实现管道工件和依赖项的保留策略

  • 在 Azure Pipelines 中将管道从经典迁移到 YAML

制定安全性和合规性规划 (10-15%)

设计和实现身份验证和授权方法

  • 在服务主体和托管标识之间进行选择(包括系统分配和用户分配)

  • 实现和管理 GitHub 身份验证,包括 GitHub 应用、GITHUB_TOKEN 和个人访问令牌

  • 实现和管理 Azure DevOps 服务连接和个人访问令牌

  • 在 GitHub 中设计和实现权限和角色

  • 在 Azure DevOps 中设计和实现权限和安全组

  • 建议适当的访问级别,包括 Azure DevOps 中的利益干系人访问和 GitHub 中的外部协作者访问

  • 在 Azure DevOps 中配置项目和团队

设计和实现用于管理自动化敏感信息的策略

  • 使用 Azure Key Vault 实现和管理机密、密钥和证书

  • 在 GitHub Actions 和 Azure Pipelines 中实现和管理机密

  • 设计和实现部署期间管理敏感文件的策略,包括 Azure Pipelines 安全文件

  • 设计管道以防止敏感信息泄露

自动执行安全性和合规性扫描

  • 设计安全性与合规性扫描策略,包括依赖项、代码、机密和许可扫描

  • 配置 Microsoft Defender for Cloud DevOps 安全性

  • 为 GitHub 和 Azure DevOps 配置 GitHub Advanced Security

  • 将 GitHub Advanced Security 与 Microsoft Defender for Cloud 集成

  • 自动执行容器扫描,包括扫描容器映像和配置操作以在容器中运行 CodeQL 分析

  • 使用 Dependabot 警报自动分析开源组件的许可、漏洞和版本控制

实现检测策略 (5-10%)

配置 DevOps 环境的监视

  • 配置 Azure Monitor 和 Log Analytics 以与 DevOps 工具集成

  • 使用 Application Insights、VM Insights、Container Insights、Storage Insights 和 Network Insights 配置遥测集合

  • 在 GitHub 中配置监视,包括启用见解以及创建和配置图表

  • 在 GitHub Actions 和 Azure Pipelines 中为事件配置警报

分析检测中的指标

  • 检查基础结构性能指标,包括 CPU、内存、磁盘和网络

  • 使用收集的遥测数据分析指标,包括使用情况和应用程序性能

  • 使用 Application Insights 检查分布式跟踪

  • 使用基本的 Kusto 查询语言 (KQL) 查询查询日志

学习资源

我们建议你在参加考试之前进行培训并获得实践经验。 我们提供自学选项和课堂培训,以及指向文档、社区网站和视频的链接。

学习资源 学习和文档链接
参加培训 从自定进度学习路径和模块中进行选择,或参加讲师引导式课程
查找文档 DevOps 资源中心
Azure DevOps 文档
Azure Boards
Azure Key Vault 密钥、机密和证书概述
Azure Monitor
Azure Pipelines
Azure Repos
使用 Azure DevOps 和 GitHub
提问 Microsoft 问答 | Microsoft Docs
获取社区支持 Azure DevOps - Microsoft Tech Community
关注 Microsoft Learn Microsoft Learn - Microsoft Tech Community
查找视频 备考区
Microsoft Learn 节目

更改日志

理解表的关键:主题组(也称为功能组)以粗体字样显示,后跟每个组中的目标。 下表比较了两个版本的考试测评技能,第三列描述了更改程度。

2024 年 7 月 26 日之前的技能领域 自 2024 年 7 月 26 日起的技能领域 更改
受众概况 没有变化
设计和实现流程和通信 设计和实现流程和通信 没有变化
设计和实现可跟踪性和工作流 设计和实现可跟踪性和工作流 次要
为 DevOps 设计和实现适当的指标和查询 为 DevOps 设计和实现适当的指标和查询 没有变化
配置协作和通信 配置协作和通信 次要
设计和实现源代码管理策略 设计和实现源代码管理策略 没有变化
设计和实现源代码的分支策略 设计和实现源代码的分支策略 没有变化
配置和管理存储库 配置和管理存储库 没有变化
设计和实现生成和发布管道 设计和实现生成和发布管道 没有变化
设计和实现包管理策略 设计和实现包管理策略 次要
设计和实现管道的测试策略 设计和实现管道的测试策略 没有变化
设计和实现管道 设计和实现管道 次要
设计和实现部署 设计和实现部署 次要
设计和实现基础结构即代码 (IaC) 设计和实现基础结构即代码 (IaC) 没有变化
维护管道 维护管道 没有变化
制定安全性和合规性计划 制定安全性和合规性计划 没有变化
设计和实现身份验证和授权方法 设计和实现身份验证和授权方法 次要
设计和实现用于管理自动化敏感信息的策略 设计和实现用于管理自动化敏感信息的策略 没有变化
自动执行安全性和合规性扫描 自动执行安全性和合规性扫描 没有变化
实现检测策略 实现检测策略 没有变化
配置 DevOps 环境的监视 配置 DevOps 环境的监视 没有变化
分析检测中的指标 分析检测中的指标 没有变化

2024 年 7 月 26 日之前测试的技能

受众概况

作为一名 DevOps 工程师,你是开发人员或基础结构管理员,同时也是与人员协作、流程和产品方面的行业专家,负责实现组织的价值持续交付。

此角色的职责包括提供 Microsoft DevOps 解决方案,这些解决方案提供持续的安全性、集成、测试、交付、部署、监视和反馈。 你负责设计和实现工作流、协作、通信、源代码管理和自动化。

作为 DevOps 工程师,你在跨职能团队中工作,其中包括:

  • 开发人员

  • 站点可靠性工程师

  • Azure 管理员

  • 安全工程师

你必须具备在 Azure 中管理和开发的经验,并且至少在其中一个领域具有很强的技能。 你还应具备实现 GitHub 和 Azure DevOps 解决方案的经验。

技能概览

  • 设计和实现流程和通信 (10-15%)

  • 设计和实现源代码管理策略 (10-15%)

  • 设计和实现生成和发布管道 (50-55%)

  • 制定安全性和合规性规划 (10-15%)

  • 实现检测策略 (5-10%)

设计和实现流程和通信 (10-15%)

设计和实现可跟踪性和工作流

  • 设计和实现工作流的结构,包括 GitHub Flow

  • 设计和实现反馈周期的策略,包括通知和问题

  • 设计和实现跟踪工作的集成,包括 GitHub 项目、Azure Boards 和存储库

  • 设计和实现源、bug 和质量可追溯性

为 DevOps 设计和实现适当的指标和查询

  • 设计和实现仪表板,包括工作流,例如周期时间、恢复时间和提前期

  • 设计和实现项目规划的适当指标和查询

  • 设计和实现用于开发的适当指标和查询

  • 设计和实现用于测试的适当指标和查询

  • 设计和实现用于安全性的适当指标和查询

  • 设计和实现用于交付的适当指标和查询

  • 设计和实现用于运营的适当指标和查询

配置协作和通信

  • 通过配置 Wiki 和流程图来记录项目,包括 Markdown 和 Mermaid 语法

  • 配置发布文档,包括发行说明和 API 文档

  • 从 Git 历史记录自动创建文档

  • 使用 Webhook 配置集成

  • 配置 GitHub 或 Azure DevOps 与 Microsoft Teams 之间的集成

设计和实现源代码管理策略 (10-15%)

设计和实现源代码的分支策略

  • 设计分支策略,包括基于主干的功能分支和发布分支

  • 使用分支策略和分支保护设计和实现拉取请求工作流

  • 使用分支策略和分支保护实现分支合并限制

配置和管理存储库

  • 设计和实现用于管理大型文件的策略,包括 Git 大型文件存储 (LFS) 和 git-fat

  • 设计用于缩放和优化 Git 存储库的策略,包括 Scalar 和跨存储库共享

  • 在源代码管理存储库中配置权限

  • 配置标记以组织源代码管理存储库

  • 使用 Git 命令恢复特定数据

  • 从源代码管理中移除特定数据

设计和实现生成和发布管道 (50-55%)

设计和实现包管理策略

  • 推荐包管理工具,包括 GitHub 包注册表和 Azure Artifacts

  • 设计和实现本地包和上游包的包源和视图

  • 设计和实现代码资产和包的依赖项版本控制策略,包括语义版本控制和基于日期的版本控制

  • 设计和实现管道工件的版本控制策略

设计和实现管道的测试策略

  • 设计和实现质量门和发布门,包括安全性和治理

  • 设计全面的测试策略,包括本地测试、单元测试、集成测试和负载测试

  • 在管道中实现测试,包括配置测试任务、配置测试代理以及集成测试结果

  • 实现代码覆盖率分析

设计和实现管道

  • 选择部署自动化解决方案,包括 GitHub Actions 和 Azure Pipelines

  • 设计和实现 GitHub 运行器或 Azure DevOps 代理基础结构,包括成本、工具选择、许可证、连接性和可维护性

  • 设计和实现 GitHub 存储库与 Azure Pipelines 之间的集成

  • 制定和实现管道触发器规则

  • 使用 YAML 开发管道

  • 设计和实现作业执行命令的策略,包括并行性和多阶段管道

  • 开发和实现复杂的管道方案,例如混合管道、VM 模板和自承载运行器或代理

  • 创建可重复使用的管道元素,包括 YAML 模板、任务组、变量和变量组

  • 使用 YAML 环境设计和实现检查与审批

设计和实现部署

  • 设计部署策略,包括蓝-绿、Canary、更新通道、渐进式曝光、功能标志和 A/B 测试

  • 设计管道以确保对依赖项部署进行可靠排序

  • 计划使用虚拟 IP 地址 (VIP) 交换、负载均衡、滚动部署、部署槽位在部署过程中最大程度地减少停机时间

  • 制定用于响应高优先级代码修复的热修复路径计划

  • 设计和实现部署的复原策略

  • 使用 Azure 应用程序配置功能管理器实现功能标志

  • 使用容器、二进制文件和脚本实现应用程序部署

  • 实现包含数据库任务的部署

设计和实现基础结构即代码 (IaC)

  • 推荐应用程序基础结构的配置管理技术

  • 实现应用程序基础结构的配置管理策略

  • 定义 IaC 策略,包括源代码管理以及测试和部署的自动化

  • 设计和实现所需的环境状态配置,包括 Azure 自动化 State Configuration、Azure 资源管理器、Bicep 和 Azure Automanage 机器配置

  • 设计和实现用于按需自行部署的 Azure 部署环境

维护管道

  • 监视管道运行状况,包括故障率、持续时间和故障测试

  • 优化管道的成本、时间、性能和可靠性

  • 针对性能和成本优化管道并发

  • 设计和实现管道工件和依赖项的保留策略

  • 在 Azure Pipelines 中将管道从经典迁移到 YAML

制定安全性和合规性规划 (10-15%)

设计和实现身份验证和授权方法

  • 在服务主体和托管标识之间进行选择

  • 实现和管理 GitHub 身份验证,包括 GitHub 应用、GITHUB_TOKEN 和个人访问令牌

  • 实现和管理 Azure DevOps 服务连接和个人访问令牌

  • 在 GitHub 中设计和实现权限和角色

  • 在 Azure DevOps 中设计和实现权限和安全组

  • 建议适当的访问级别,包括 Azure DevOps 中的利益干系人访问和 GitHub 中的外部协作者访问

  • 在 Azure DevOps 中配置项目和团队

设计和实现用于管理自动化敏感信息的策略

  • 使用 Azure Key Vault 实现和管理机密、密钥和证书

  • 在 GitHub Actions 和 Azure Pipelines 中实现和管理机密

  • 设计和实现部署期间管理敏感文件的策略,包括 Azure Pipelines 安全文件

  • 设计管道以防止敏感信息泄露

自动执行安全性和合规性扫描

  • 设计安全性与合规性扫描策略,包括依赖项、代码、机密和许可扫描

  • 配置 Microsoft Defender for Cloud DevOps 安全性

  • 为 GitHub 和 Azure DevOps 配置 GitHub Advanced Security

  • 将 GitHub Advanced Security 与 Microsoft Defender for Cloud 集成

  • 自动执行容器扫描,包括扫描容器映像和配置操作以在容器中运行 CodeQL 分析

  • 使用 Dependabot 警报自动分析开源组件的许可、漏洞和版本控制

实现检测策略 (5-10%)

配置 DevOps 环境的监视

  • 配置 Azure Monitor 和 Log Analytics 以与 DevOps 工具集成

  • 使用 Application Insights、VM Insights、Container Insights、Storage Insights 和 Network Insights 配置遥测集合

  • 在 GitHub 中配置监视,包括启用见解以及创建和配置图表

  • 在 GitHub Actions 和 Azure Pipelines 中为事件配置警报

分析检测中的指标

  • 检查基础结构性能指标,包括 CPU、内存、磁盘和网络

  • 使用收集的遥测数据分析指标,包括使用情况和应用程序性能

  • 使用 Application Insights 检查分布式跟踪

  • 使用基本的 Kusto 查询语言 (KQL) 查询查询日志