云服务故障建模:构建高可用系统的关键步骤

本文详细介绍了微软在云服务设计中采用的故障建模方法,包括组件清单创建、用户场景映射、依赖关系识别以及容错机制定义,帮助工程师构建能够优雅处理故障的高可靠性云服务系统。

云服务故障建模

本文章是 Cyber Trust 博客《Fault Modeling for Cloud Services》(2012年10月11日发布)的翻译版本。

过去几周,我们讨论了服务中断的原因和相关缓解策略(英文),以及为云服务故障做好准备的重要性。这次,我们将介绍微软在设计和构建能够流畅、可靠应对故障的云服务时采用的方法之一。这个概念并不新颖,但我们认为无论对提供商还是客户都值得深思。

在评估安全相关问题时,威胁建模是设计过程中的关键步骤。同样,在可信云服务的设计过程中,故障建模至关重要。故障建模是指识别服务的交互点和依赖关系,使工程团队能够确定在哪些方面投资以有效监控服务并快速检测问题。此外,这种建模还能引导工程团队采取高效的应对机制,增强服务容忍或减轻故障的能力。

构建故障模型的主要步骤如下:

  1. 创建组件清单:清单包括服务使用的所有组件,例如托管在Web服务器上的用户界面组件、托管在远程数据中心的数据集,以及该服务所依赖的外部服务。
  2. 创建用户场景:场景描述用户可能使用服务的所有方式。例如,对于在线视频服务,可以描述登录、浏览视频库、选择和观看视频,以及观看后对视频进行评分等。
  3. 构建包含组件和场景的矩阵,并将组件使用映射到每个场景:将用户场景映射到组件清单,可以识别每个场景中访问哪些组件,从而确定依赖关系和可能的故障点。
  4. 定义处理故障的机制:为每个依赖关系定义处理故障的机制(应对策略),确保在发生故障时软件会采取某种合理的措施。“合理”的含义取决于服务的功能或应对策略所处理的故障类型。例如,假设汽车购买服务的架构师设计了一个应用程序,显示每种车型的型号和评分。此类购买服务可能依赖于另一个提供车型比较评分的服务。在这种情况下,如果评分服务出现故障或不可用,购买服务的应对策略可能不是完全不显示车型列表,而是在没有参考评分的情况下显示车型列表。也就是说,即使发生特定故障,服务也应从客户的角度产生合理的结果。

我们建议下载最近关于服务可靠性的白皮书,以深入了解这些可靠性主题。

David Bills,可信计算,可靠性首席策略师

相关标签:指导、云

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计