架构师备战(六)-系统可靠性(一) 怎样分析一个Web系统是否可靠?
生活中,如果说一个男人可靠,那么可能会觉得从多个方面看都很优秀。
那么,如果一个系统是否可靠,是不是也同样需要从多个维度去看呢?答案是YES,我们接下来就来看看到底什么样的系统能够称之为可靠,该如何去分析一个系统是否可靠。后面学习可靠性设计时我们就会从各个维度去提升系统可靠性,从而达到多个维度都很可靠。
1.什么是可靠性?
系统可靠性是系统在规定的时间,以及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。
系统可用性指的是在某个给定时间上系统能够按照需求执行的概率。
可靠性偏向于如何去确保系统能够正常运行,出了问题能够如何迅速去解决问题。更偏向于解决问题的手段。
可用性更偏向于结果,只关注过去一段时间,有多长时间正常运行(可用),有多少时间是出了故障的(不可用),然后计算出一个比例来。更偏向于结果。
通常不会严格区别两个概念,论文中通常提到的是可靠性。案例中通常提的是可用性。了解这个规则即可。
2.软件可靠性是否等于硬件可靠性?
答案当然是否定的,软件可靠性和硬件可靠性是完全不一样的,但是它们的思想却有共通之处。下面从多个维度来看一下软硬件的可靠性的不同。
- 复杂性维度:软件的复杂度比硬件高,大部分出现不可靠的原因都来自于软件。您可能经常听到某某系统又出现啥Bug,漏洞之类的,但很少听到某某硬件出了啥问题,就是这个原因,因为硬件通常是物理退化,也就是坏了。
- 物理退化维度:硬件失效主要物理退化导致,软件不存在物理退化
- 唯一性:软件是唯一的,每一复制的版本都一样。而两个硬件不可能完全一样。
- 版本更新周期:硬件更换较慢,而软件则更新比较频繁
知道了可靠性的概念和软甲可靠性与硬件可靠性不一样之后,我们就需要知道如何去衡量一个系统是否可靠,就像上面可靠的男人一样,就会有一些条条框框的指标来支撑他的可靠。
而系统同样是有一些指标,通过这些指标就能够描述系统的可靠性和可用性。我们一起来了解一下可靠性的指标们!
3.判断系统是否可靠的指标有哪些?
平均无故障时间(MTTF)
平均故障修复时间(MTTR)
平均故障隔离时间(MTFB)
系统可用性
我们可以看到,其实MTTR(平均故障修复时间)通常会很小,所以在实际应用中,通常会认为MTBF(平均故障间隔时间)= MTTF(平均无故障时间)
这些指标通常是衡量单个系统的一些指标,假设我们有多个系统,系统之间可能会串联运行,也可能会并行运行,我们如何计算这些串联和并联系统的可靠性呢?
4.串并联系统的可靠性分析
串联系统的可靠性就是每一个系统的可靠性的乘积。比如有3个系统,每个系统的可靠性都是0.9。 那么整体的系统可靠性就是0.90.90.9。单个系统的可靠性为0.9,那么失效率就是0.1。那么失效了就是0.3。 假设有10个系统就是100%了。所以失效率只适用于可靠性极高的系统。
并联系统只要任何一个系统可靠都可以走完流程。所以整个系统的可靠性比单个要高得多。计算方式是反着计算,通过失效率来计算。 每一个得失效率都是为 (1-0.9—) = 0.1 。计算结果就是 1-(1-0.9)(1-0.9)(1-0.9) = 0.999。
如果串并联一起,那么先计算并联,然后再计串联即可。
4.小结
相信有了这些生动形象的美丽大方的图表,您已经能够驾驭这些知识了,并且在知识海洋已经畅游了起来。学无止尽,加油!