了解权衡取舍和风险 - AWS 规范性指导

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

了解权衡取舍和风险

弹性架构应使用少量经过充分测试、简单且可靠的机制来应对故障。为了实现最高水平的弹性,工作负载应自动检测尽可能多的故障模式并从中恢复。要做到这一点,就需要在进行弹性分析方面进行大量投资。这意味着,实现更高的弹性水平需要权衡取舍。但是,当你继续权衡取舍时,你已经到了相对于弹性目标的回报递减的地步。以下是最典型的权衡取舍:

  • 成本 — 冗余组件、增强的可观察性、额外的工具或更高的资源利用率将导致成本增加。

  • 系统复杂性 — 检测和响应故障模式(包括缓解解决方案)以及可能不使用托管服务会增加系统的复杂性。

  • 工程工作 — 需要额外的开发人员时间来构建用于检测和响应故障模式的解决方案。

  • 运营开销 — 监控和操作能够处理更多故障模式的系统可能会增加运营开销,尤其是在您无法使用托管服务来缓解特定的故障模式时。

  • 延迟和一致性 — 如 PACEL C定理所述,构建有利于可用性的分布式系统需要在一致性和延迟之间进行权衡。

根据正在进行的权衡取舍,实现弹性目标的概率,即你达到回报递减的地步

在考虑用户情景中已识别的故障模式的缓解措施时,请考虑需要做出的权衡取舍。与安全性一样,弹性也是一个优化问题。您必须决定是避免、缓解、转移还是接受已识别故障带来的风险。可能有一些故障模式你可以避免,一组你可以接受,还有一些你可以转移。您可以选择缓解所识别的许多故障模式。要确定要采取哪种方法,请通过问两个问题进行评估:失败发生的可能性有多大? 如果确实发生,会对工作负载产生什么影响?

事件@@ 发生的可能性是多么合理。例如,如果用户情景中有一个在单个 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行的组件,则该组件可能会在系统运行期间的某个时刻中断,这可能是由于修补程序或操作系统错误所致。或者,由 Amazon Relational Database Service(Amazon RDS)管理的在主实例和辅助实例之间同步数据的数据库完全不可用的可能性很低。

影响是对事件可能造成的伤害的估计。应从财务和声誉的角度对其进行评估,并与其影响的用户故事的价值相关。例如,数据库不堪重负可能会对电子商务系统接受新订单的能力产生重大影响。但是,在负载均衡器后面的 20 个实例队列中丢失一个实例可能影响不大。

您可以将这些问题的答案与为降低风险而必须进行权衡的成本进行比较。当你根据风险阈值和弹性目标考虑这些信息时,它会为你决定计划积极缓解哪些故障模式提供依据。