可用性

可用性与可靠性

可靠性一般指一个系统的质量。通常来说,它意味着一个系统能够按照技术标准持续运行的能力。如果一个软件通过了所有的测试套件,并且基本完成了它应该做到的事情,那么我们可以说它是可靠的

可用性一般指系统在其能力范围内执行任务的能力。系统是否运转正常?是否可以操作?是否可以响应?如果答案是“是”,那么系统就是可用的。

可用性和可靠性非常相似。如果系统不可靠,它也很难是可用的,如果它不可用,也很难是可靠的。

一个计算 2 + 3 却得到结果 6 的系统,其可靠性很低。一个计算 2 + 3 却永远不返回结果的系统,其可用性很低。可靠性问题通常可以通过测试来修复,而可用性问题通常较难解决。

你会因为在系统中引入了一个 bug,导致计算 2 + 3 得到了 6。这通过测试套件可以很容易发现并修复。但是,假设你的应用程序可以很可靠地计算 2 + 3 = 5。现在假设它运行在一个网络连接不好的计算机上,结果如何?有时它可能返回 5,有时它可能什么都不返回。这时候,应用程序是可靠的,但它不是可用的。

测量可用性

测量 Web 应用程序的可用性时,最常用的办法是计算用户可访问的时间百分比。

网站可用性=总秒数系统宕机的秒数总秒数×100%网站可用性 = \frac{总秒数 - 系统宕机的秒数}{总秒数} \times 100\%

通常我们会用“N 个 9”来形容可用性。具有“2 个 9”可用性的应用程序必须在 99% 的时间内可用,这意味着在一个月里,应用程序宕机 432 分钟仍然可以达到 99% 的可用性目标。相比之下,一个“4 个 9”的应用程序需要在 99.99% 的情况下都是可用的,这意味着它在一个月里只能宕机 4 分钟

可用性
每个月的宕机时长

2 个 9(99%)

432 分钟

3 个 9(99.9%)

43 分钟

4 个 9(99.99%)

4 分钟

5 个 9(99.999%)

26 秒

6 个 9(99.9999%)

2.6 秒

注意