你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

验证服务更新以避免生产 API 管理实例发生中断

适用于:所有 API 管理层级

“云的价值主张之一是它会持续改进,提供新的功能和特性,以及安全性和可靠性的增强。 但由于平台的不断演进,不可避免地需要做出改变。” - Azure 首席技术官 Mark Russinovich

Microsoft 使用安全部署实践框架来全面测试、监视和验证服务更新,然后使用分阶段的方法将它们部署到 Azure 区域。 即便如此,部署到 API 管理实例的服务更新也可能会给生产工作负载带来意料之外的风险,并为 API 使用者造成干扰。 了解如何应用我们的安全部署方法,在将更新部署到生产 API 管理环境之前对其进行验证来降低风险。

什么是 Azure 安全部署实践框架?

Azure 使用安全部署实践 (SDP) 框架在一系列预生产和生产步骤中为给定的服务部署更新。 下图显示了该框架的简化形式:

安全部署实践框架

部署阶段包括:

  • 开发和测试 - Azure 工程团队在开发和测试环境中按照严格的质量门限迭代并验证其服务的更新。

    在这些阶段对回归进行仔细监视、验证和广泛测试可以降低软件更改对生产环境中的客户 Azure 工作负载造成负面影响的风险。

  • 生产 - 然后在分阶段生产推出管道中将生产就绪的更新引入客户的 Azure 服务:

    • Canary 区域首先接收更新。 这些区域的正式名称为“前期更新访问计划 (EUAP)”区域,它们是完整的生产级环境,Azure 工程团队和受邀客户可在其中大规模验证方案。 目前,Azure Canary 区域为“美国东部 2 EUAP”和“美国中部 EUAP”。

      注意

      虽然 EUAP 区域已做好生产准备,但容量可能受到限制,并且 Azure 工程团队执行的灾难恢复演练和其他测试可能会不时地中断服务。

    • 接下来,支持生产用途并附带 SLA 的试点区域接收更新。 目前,试点区域为“美国中西部”。

    • 在试点区域中经过一段时间的观察后,服务更新将逐步引入到其余区域,从而扩大客户应用范围。

如何安全地将更新部署到我的 API 管理实例?

Azure 客户无法控制何时将服务更新应用于 API 管理实例 - 更新是自动应用的。 但是,为了最大程度地降低风险,可以使用某种策略先将非关键实例部署到接收更新的区域,然后再部署到运行生产实例的区域。

  • 首先接收更新的实例实际上是 Canary 部署。

    使用此实例来监视针对基线生产实例的更新所造成的任何问题。 通过监视,在生产服务受到影响之前识别并缓解潜在回归。

    重要

    如果 Canary 实例遇到与更新过程相关的问题,请尽快提交 Azure 支持请求。

  • 验证 Canary 部署后,将对以后要部署到生产实例的更新更有信心。

请参阅本文稍后提供的示例策略来创建和使用 API 管理的 Canary 部署。

了解实例何时接收更新

第一步,请确保了解预期进行或正在进行的服务更新。

  • API 管理更新在 API 管理 GitHub 存储库中公布。 建议订阅接收来自此存储库的通知,以了解更新何时开始推出。

  • 使用 Azure 活动日志监视 API 管理实例中正在进行的服务更新。 当更新开始时,会发出“计划性维护”事件。

    活动日志中的计划性维护事件

    若要自动接收通知,请对活动日志设置警报

  • 更新分以下阶段向各个区域推出:Azure EUAP 区域,其次是美国中西部,再接下来分多个阶段向其余区域推出。 在后续部署阶段中更新的区域顺序因服务而异。 每两个生产推出阶段预期至少相隔 24 小时。

  • 在一个区域,高级层级中的 API 管理实例比其他服务层级中的实例晚几个小时接收更新。

提示

如果 API 管理实例部署到多个位置(区域),则更新时间由实例的主要位置确定。

Canary 部署策略

下面是将 API 管理实例用作 Canary 部署(比生产实例更早接收更新)的示例策略。

  • 在 EUAP 区域中部署 - 如果你有权访问 Azure EUAP 区域,可以在将更新发布到生产管道之后,使用该区域中的某个实例立即验证这些更新。 了解 Azure 区域访问请求过程

    注意

    由于 EUAP 区域中的容量限制,你可能无法根据需要缩放 API 管理实例。

  • 在试点区域中部署 - 使用美国中西部区域中的某个实例来模拟生产环境,或在生产环境中使用该实例来处理非关键 API 流量。 虽然此区域在 EUAP 区域之后接收更新,但其中的部署更有可能识别到特定于服务配置的回归。

  • 在区域中部署重复实例 - 如果你的生产工作负载是特定区域中的高级层级实例,请考虑在较早接收更新的较低层级中部署采用类似配置的实例。 例如,在开发人员层级中配置一个预生产实例来验证更新。

  • 了解如何监视 API 管理实例。
  • 了解用于观察 API 管理实例的其他选项。