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

什么是 Azure Chaos Studio?

Azure Chaos Studio 是一项托管服务,它使用混沌工程来帮助度量、了解和改进云应用程序和服务的复原能力。 混沌工程 是一种将实际故障注入应用程序以运行受控故障注入试验的方法。

复原能力是指发生中断后系统采取应对措施并从中恢复的能力。 应用程序中断可能会导致对业务或任务产生不利影响的错误和故障。 无论是开发、迁移还是操作 Azure 应用程序,验证和改进应用程序的复原能力都很重要。

Chaos Studio 通过验证应用程序对中断和故障的有效响应来避免产生负面后果。 可以使用 Chaos Studio 针对实际事件测试复原能力,例如虚拟机 (VM) 上的故障或 CPU 使用率高。

以下视频提供了有关 Chaos Studio 的更多背景信息:

Chaos Studio 方案

可将混沌工程用于跨服务开发和操作生命周期的多种复原能力验证方案。 有两种类型的方案:

  • 右移:这些方案使用生产环境或预生产环境。 通常会使用真实客户流量或模拟负载来执行右移方案。
  • 左移:这些方案可以使用开发或共享测试环境。 无需任何真实客户流量即可执行左移方案。

可以在以下常见混沌工程方案中使用 Chaos Studio:

  • 重现影响应用程序的事件,以更好地了解失败情况。 确保事后修复可防止该事件再次发生。
  • 通过“比赛日”负载、规模、性能和复原能力验证为重大事件或赛季做好准备。
  • 执行业务连续性和灾难恢复演练,以确保应用程序能够快速恢复,并在灾难中保留关键数据。
  • 运行高可用性演练以测试应用程序对区域服务中断、网络配置错误、高压力事件或近邻干扰问题的复原能力。
  • 制定应用程序性能基准。
  • 规划生产环境的容量需求。
  • 运行压力测试或负载测试。
  • 确保从本地或其他云环境迁移的服务保持对已知故障的复原能力。
  • 建立对基于云原生体系结构构建的服务的信心。
  • 验证实时站点工具、可观测性数据和值守流程在意外情况下能否继续工作。

对于其中的许多方案,可首先使用临时混沌试验生成复原能力。 然后,持续验证新部署是否不会导致复原能力出现退化。 如果要进行检查,请在持续集成/持续部署管道中将混沌试验作为部署入口运行。

Chaos Studio 的工作原理

使用 Chaos Studio,可以在 Azure 资源上协调安全且受控的故障注入。 Chaos Studio 的核心是混沌试验。 混沌试验描述了要运行的故障以及针对哪些资源来运行这些故障。 可以根据需求组织故障并行运行或按顺序运行。

Chaos Studio 支持两种类型的故障:

  • 直接服务:这些故障直接针对 Azure 资源运行,而无需任何安装或检测。 示例包括重新启动 Azure Cache for Redis 群集,或向 Azure Kubernetes 服务 Pod 添加网络延迟。
  • 基于代理的故障:这些故障在 VM 或虚拟机规模集中运行,以执行来宾故障。 示例包括应用虚拟内存压力或终止进程。

每个故障都有可配置的特定参数,例如要终止的进程或要生成的内存压力。

构建混沌试验时,可以定义按顺序执行的一个或多个步骤。 每个步骤都包含在步骤中并行运行的一个或多个分支。 每个分支都包含一个或多个操作,例如注入故障或等待特定持续时间。

将运行故障针对的资源目标整理到名为“选择器”的组中,以便可以在每个操作中轻松引用一组资源。

下图展示了 Chaos Studio 中混沌试验的布局:

Diagram that shows the layout of a chaos experiment.

混沌试验是订阅和资源组中的 Azure 资源。 可以使用 Azure 门户或 Chaos Studio REST API 来创建、更新、启动、取消和查看试验的状态。

后续步骤

现在,你已了解如何使用混沌工程,可以: