Microsoft AZ-400: 发布管理与部署策略 — 学习指南

属于 Microsoft DevOps Engineer Expert AZ-400 — 学习指南. 使用经过验证的答案练习: Microsoft 考试中心, 或参加限时模拟考试: ExamRoll.io.

概述

Azure 上的发布管理依赖于可重复、策略驱动的交付,旨在加速反馈的同时保护可用性。掌握部署策略、门控验证、环形发布(ring-based exposure)和功能标记驱动的灰度发布(dark launches),能让团队在不牺牲安全性的前提下持续交付。Azure Pipelines、Azure Deployment Environments、Azure Front Door/Traffic Manager 和 Azure App Configuration 提供了一套统一的工具链,用于渐进式交付、多环境编排和可审计的变更控制。本节将解释何时以及如何使用这些功能,如何将它们组合在一起,以及生产级管道中应具备的回滚和文档实践。

部署策略与渐进式交付

蓝绿部署(Blue-green,也称红黑部署)将新版本部署到一个并行环境(绿色),而当前版本(蓝色)继续提供流量服务。在 Azure App Service 上,部署槽位(deployment slots)可实现蓝绿部署:部署到预演(staging)槽位,进行预热,然后执行槽位交换(slot swap)。回滚只需再次交换槽位即可瞬间完成,因此蓝绿部署是回滚速度最快的选项。将槽位交换与“预交换验证”(Swap with preview)功能结合使用,可以在流量切换前验证绑定和应用设置。

金丝雀部署(Canary)首先向一小部分用户发布,然后在健康状况保持稳定的情况下逐步增加流量。在 Azure 上,可以通过以下方式实现金丝雀部署:

滚动更新(Rolling updates)逐步替换实例,避免了双倍实例成本。在 AKS 中,可配置 rollingUpdatemaxSurgemaxUnavailable 参数;确保就绪/存活探针(readiness/liveness probes)和 PDB(Pod Disruption Budgets)能够保护可用性。对于 VM Scale Sets,应使用带有应用程序健康探针的滚动升级策略。滚动更新虽然经济,但从系统性回归中恢复的速度比蓝绿部署慢。

功能标记(Feature flags)将发布与部署解耦。灰度发布(Dark launching)交付默认禁用的代码路径,从而在不暴露功能的情况下验证基础设施。使用功能标记来控制高成本的迁移、逐步揭示 UI,并快速禁用有问题的行为。这种方式补充了金丝雀部署和环形部署:先广泛部署,然后逐步启用。

环形部署(Ring-based deployment)将跨用户群体的渐进式暴露过程正式化。定义不同的环,例如 R0(内部)、R1(金丝雀客户)、R2(单个区域)和 R3+(全球)。晋级标准必须是客观的:符合 SLO、没有 Sev2+ 级别的事件,以及可接受的业务 KPI。将环形部署与流量切换(Front Door/Traffic Manager)、环境检查和审批门控相结合,以便及早停止或回滚。

Azure Front Door 与 Traffic Manager 在渐进式流量切换方面的对比:Front Door 在第 7 层运行,支持即时变更、健康探针、会话亲和性、基于路径的路由和加权拆分——是应用层金丝雀部署和 A/B 测试的理想选择。Traffic Manager 在 DNS 层运行;它更适用于地理路由、跨云故障转移或区域级别的金丝雀部署,但需要考虑 DNS TTL,并且不具备应用层功能。

环境、审批与门控

Azure Deployment Environments 通过护栏(guardrails)标准化开发/测试环境的预配。环境定义是基础架构即代码(Bicep/ARM/Terraform)模板,用于描述可重复的堆栈。这些定义存放在目录(catalogs)中——即在该服务中注册的 Git 仓库——从而实现版本化、可发现的环境蓝图。开发人员可以自助服务式地创建受企业策略(如配额、RBAC、网络)约束的开发/测试实例,从而消除“雪花”环境,并使低级环境与生产拓扑保持一致。

审批(Approvals)在需要时建立人工干预控制。在 Azure Pipelines 中:

发布门控(Release gates)在晋级前强制执行客观证据。Azure Pipelines 支持以下检查:

在环形边界和金丝雀部署期间实施门控,可以将主观的晋级决策转变为可衡量的决策。

多环境管道、变量和依赖项

设计具有显式依赖项和环境范围的多阶段 YAML 管道。使用带有策略块(runOnce、rolling、canary)的部署作业来模拟渐进式发布,并包含用于 preDeploy、routeTraffic、postRouteTraffic 和 on: failure 的钩子以实现自动回滚。阶段应声明 dependsOn 和 conditions,以便后续环境仅在先前环境通过门禁和审批后才运行。

通过以下方式管理特定于环境的配置:

对于到多个环境的部署,首选通过提升(一次构建,多次部署)实现的不可变构件。将工作项与提交和构建关联起来,以在同一构件从开发流向生产的过程中保持可追溯性,从而实现准确的发布说明和审计。

回滚策略和数据库注意事项

在发布前规划好回滚方案:

undefined

或依赖部署策略失败钩子来触发上一个 ReplicaSet。在 Azure App Service 中,槽交换回滚是即时的;与健康检查和部署门禁结合使用以自动决策。

使用 Azure App Configuration 实现功能标志与发行说明自动化

Azure App Configuration 通过为 .NET、Java、Node.js 等提供 SDK,集中化了功能管理。可使用标签(label)按环境或发布环(ring)来限定功能标志的范围,并启用动态刷新,使应用程序无需重新部署即可获取变更。

自动化发行说明以提供可追溯性和沟通:

实际问题场景

Adobe 需要为其托管在 Azure 上的营销网站引入一个新的个性化引擎,同时不能在营销活动高峰期冒着转化率下降的风险。团队必须能够频繁部署、渐进式暴露该功能、验证 SLO,并在 KPI 下降时立即回滚。

  1. 使用 Azure Deployment Environments 定义环境
  1. 使用多阶段 YAML 实现一次构建、多次部署
  1. 对旧版 Web 层使用 App Service 槽位实现蓝绿部署
  1. 通过 Azure Front Door 加权路由引入金丝雀发布
  1. 使用客观检查作为阶段晋升的门禁(Gate)
  1. 在关键转换点要求审批
  1. 使用 Azure App Configuration 功能标志控制暴露范围
  1. 使用扩展-收缩(expand-contract)模式迁移来保护数据
  1. 自动化回滚路径

undefined

。对于复杂场景,操作员仍然可以使用手动一键回滚。

  1. 自动化发布文档

这种方法充分利用了每种工具的优势:ADE 用于创建安全、可复现的环境;YAML 策略和审批用于实现受管控的流程;Front Door 和 App Configuration 用于分层的渐进式交付;Azure Monitor 和门禁用于客观的质量控制;自动化的回滚和发行说明则用于增强弹性和可追溯性。


容器化与 Kubernetes · 所有领域 · 安全、合规性与 DevSecOps

练习这些题目 → · 在 ExamRoll.io 上限时练习 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通过考试 →

浏览 Microsoft →

Related guides

一体化访问

一次订阅。所有考试。

所有计划均可无限制搜索答案、进行模拟测试、获取AI解释以及访问完整的资源库 — 支持20多种语言。

每月
24.87
Just €0.83/day
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

最具价值
12个月
179.87
Just €0.49/daySave 40%
包含所有内容:
  • 无限答案搜索
  • 无限模拟测试
  • AI驱动的解释
  • 完整资源库
  • 20多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品