1、领域名词解释
稳定性(Reliability)、可用性(Availability)、可维护性(Maintainability),是三个有关联的概念、合称RAM,较为容易混淆,因此本需要特别说明一下。依据《ISO IEC 25010-2011 SQuaRE》标准,可将稳定性理解为”应对故障(faults)的能力、对用户而言是可用的,被性能、可用性、可维护性等因素影响。“ 稳定性并不纯粹、搞混淆RAM是很正常的,但治理故障这一点很清淅。
本文对高可用的定义是:能应对大流量的稳定性。因此实施方案当中也涉及SLA等指标的运营。
2、稳定性治理的三种思想
什么是交易长期坚持的高可用方向?故障涉及方方面面,高可用的方法也是种类繁多,我们需要几条基本方法去指导高可用长期的治理方向,我们有三种视角去看待高可用这件事:可用性计算公式、复杂系统理论、交易技术事故定级规范。从不同的视角看待事情,会导致不同的分析路径。
1.可用性计算公式—亚马逊
第一种理解可以从可用性计算公式(Availability Estimate)入手,涉及两个变量:故障概率、故障时长,增大MTBF、减小MTTR。主要包含减少故障发生概率、减少故障恢复时间、制造故障发生概率(可控的)三个方法。为什么会需要人为制造故障发生概率?因为故障发生相应频次较低,没有办法很好地提前发现故障,而制造故障本质则能帮助解决。减少故障发生概率是know unnkown的做事, 制造故障发生概率是unkown unkown的做事。
AvailabilityEstimate=MTBF/(MTBF+MTTR)。MTBF:theMeanTimeBetweenFailure,MTTR:MeanTimetoRecover
从这三个策略推导的一些主要方法如下图示,参考了亚马逊《AWS Reliability Pillar 2019》。
可用性公式拆解的稳定性原则(灰色部分源自《AWS Reliability Pillar 2019》)
2.复杂系统理论—Netflix
分布式系统具备复杂系统的一般特征,