韧性生命周期框架:持续提升韧性的方法 - AWS Prescriptive Guidance

韧性生命周期框架:持续提升韧性的方法

Amazon Web Services贡献者

2023 年 10 月文档历史记录

如今的现代组织正面临着越来越多与韧性相关的挑战,尤其是在客户期望转向始终在线、始终可用的思维模式之际。远程团队与复杂的分布式应用程序相结合,再加上对频繁发布的需求不断增加。因此,组织及其应用程序需要比以往任何时候都更具韧性。

AWS 将韧性定义为应用程序抵御中断或从中恢复的能力,包括与基础设施、依赖服务、配置错误和临时网络问题相关的中断。(请参阅 AWS Well-Architected Framework 可靠性支柱文档中的韧性与可靠性的组件。) 但是,为了达到所需的韧性水平,通常需要权衡取舍。需要评估运营复杂性、工程复杂性和成本并进行相应的调整。

基于与客户和内部团队多年的合作,AWS 制定了一个可以总结韧性经验和最佳实践的韧性生命周期框架。此框架概述了五个关键阶段,如下图所示。在每个阶段,您都可以使用策略、服务和机制来提升韧性状况。

韧性生命周期框架

本指南后文部分将介绍以下阶段:

术语和定义

每个阶段的韧性概念应用于不同的层面,从单个组件到整个系统。实施这些概念需要明确定义几个术语:

  • 组件是执行功能的元素,由软件和技术资源构成。组件的示例包括代码配置、网络等基础设施,甚至服务器、数据存储以及多重身份验证(MFA)设备等外部依赖关系。

  • 应用程序是可提供商业价值的组件集合,如面向客户的网络店面或改进机器学习模型的后端流程。应用程序可能由单个 AWS 账户中的一部分组件组成,也可能是跨多个 AWS 账户和区域的多个组件的集合。 

  • 系统是管理给定业务功能所需的应用程序、人员和流程的集合。它包括运行功能所需的应用程序;持续集成和持续交付(CI/CD)、可观测性、配置管理、事件响应和灾难恢复等运营流程;以及管理此类任务的运营人员。 

  • 中断是指阻止应用程序正常提供其业务功能的事件。

  • 损害是指中断未得到缓解时对应用程序产生的影响。如果应用程序遭受一系列中断,则可能会造成损害。

持续韧性

韧性生命周期是一个持续的过程。即使在同一个组织中,应用程序团队在每个阶段的执行完整程度也可能会有所不同,具体视应用程序的要求而定。但是,每个阶段越完整,应用程序的韧性水平就越高。

您应将韧性生命周期视为组织可以落实的标准流程。AWS 故意将韧性生命周期模拟为类似于软件开发生命周期(SDLC),目的是在开发和运行应用程序时将规划、测试和学习纳入整个运营流程。与许多敏捷开发流程一样,韧性生命周期可以在开发过程的每次迭代中重复执行。  我们建议您随着时间的推移,逐步深化生命周期每个阶段的实践。