弹性生命周期框架:持续改进弹性的方法 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

弹性生命周期框架:持续改进弹性的方法

亚马逊 Web Services贡献者

2023 年 10 月文档历史记录

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

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

基于与客户和内部团队多年的合作,开发 AWS 了一个可捕捉弹性学习和最佳实践的弹性生命周期框架。该框架概述了五个关键阶段,如下图所示。在每个阶段,您都可以使用策略、服务和机制来改善您的应变能力。

弹性生命周期框架

本指南的以下各节将讨论这些阶段:

术语和定义

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

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

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

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

  • 是指使您的应用程序无法正常交付其业务功能的事件。

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

持续的弹性

弹性生命周期是一个持续的过程。即使在同一个组织中,您的应用程序团队也可能在每个阶段以不同的完整度执行任务,具体取决于您的应用程序的要求。但是,每个阶段越完整,您的应用程序的弹性级别就越高。

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