意义

可用性是评价互联网平台表现最重要的因素之一。硬件故障、网络问题或者应用停止服务就等于平台损失收入。了解和掌握平台可用性的计算方法,会有利于业务和技术主管在衡量研发、测试和运维团队的工作业绩标准上达成一致。而对客户而言,当他们需要平台的服务时,没有比可用性更重要的度量指标了。

企业中的每个人都应该把可用性作为个人目标的一部分。技术团队的每个成员都应该知道每个服务中断对可用性的影响。对于服务中断,人们应该互相质问并且共同努力确保这些问题尽可能少发生。作为公司的部分目标,可用性影响着员工的工资、奖金和晋升等等,因此他们有巨大的动力去关心这个指标。

定义

在讨论计算可用性的不同方法之前,我们需要确保对可用性的基本定义有共同的认识。用互联网的术语说,可用性是指在一个特定的时间范围内,网站可用的时间长度,即用户可以使用该网站的时间除以总的时间

举个例子,如果测量某个平台一周的可用性,最多可用时间是 7 天 * 24 小时/天 * 60 分钟/小时 = 10080 分钟。如果网站在这一周内有 10010 分钟是可用的,那么可用性就是 10010 / 10080 = 0.9935 。可用性通常是以百分比表示,所以该平台本周的可用性是 99.35% 。

计算方法

计算可用性通常有以下几种方法:

方法一:硬件的正常运行时间

对可用性最简单最直接的度量是硬件设备的正常运行时间。依靠SNMP陷阱,我们可以利用捕捉设备故障时间的监控工具,监控硬件基础设施的可用性,并跟踪记录网站硬件出问题的时间。不管要计算哪个时间范围的可用性,团队都可以通过查看监控日志,确定问题服务器的数量以及这些问题的持续时间。

有一个简单的方法可以计算总的停机时间,即

停机时间=硬件中断的总时间 *(问题服务器的数量 / 服务器总数)

例如某个网络接入交换机失败,主机没有安排冗余双连,导致连接它的 12 个网络服务器有 1.5 小时无法连接,该网站有 120 个网络服务器,因此总的停机时间计算过程如下:

停机持续时间 = 1.5小时

受影响务服务器的数量 = 12个

服务器的总数= 120个

90分钟 * 12 / 120 = 9 分钟

即总的停机时间为 9 分钟

确定了停机时间就可以计算可用性。继续上述的例子,假设我们要度量这周的可用性,而这是本周唯一的中断事故,因此我们有 10080 – 9 = 10071分钟的正常运行时间。可用性是正常运行时间与总时间的百分比,也就是 10071/10080 = 99.91% 。

如上所述,这是一个非常简单的计算可用性的方法。当然,网络服务器的表现不一定完全代表客户的体验。如果仅仅是因为服务器不可用,这并不意味着该网站对客户不可使用。事实上,如果网站的架构合理,单一硬件的故障可能不会对客户带来任何影响。

但是,这并不意味着我们可以忽略度量服务器和其他硬件的可用性。相反,设备可用性会影响到服务的可用性,服务本身的可用性是最重要的指标。可用性的最佳度量将直接关系到股东价值的最大化;反过来又可能对用户体验产生影响,进而影响公司的收入或成本。因此,使用设备或硬件可用性作为衡量系统健康状况的重要指标,还需要更复杂的以客户为中心的度量指标。

方法二:客户投诉

确定可用性的第二个方法是以客户做为“晴雨表”来评价网站的表现。这种度量的表现形式可以是客服中心接到的用户电话呼入数、电子邮件的数量或者在线论坛的帖子数。

通常,拥有完善客服中心的公司,对客户寻求支持的电话和电子邮件会进行实时跟踪。呼叫中心每天都会统计这些数据,密切留意接到了多少电话和电子邮件请求以及多大程度可以满足用户的呼叫服务请求。如果服务请求量突然出现了明显的尖峰,那通常应该是发生了故障。

那么如何把呼叫数量变成可用性度量呢?这里有很多方法可以选择,但都是不准确的。一个简单的方法是分别统计正常时间段的呼叫数量和服务中断期间的呼叫数量;这两个数值分别代表着 100% 的可用性和 0% 的可用性。呼叫的总数量减去正常的呼叫数量,从而得到网站服务中断而引发的呼叫数量,再将其转化为网站完全不可用的时间。

用公式表达为:

停机时间=中断时间 *[(异常呼叫量-正常呼叫量)/(总呼叫量–正常呼叫量)]

举个例子,假设我们通常每小时接到200个客户的电话。当网站彻底瘫痪时,通话量会达到每小时1000个。从上午9点开始,我们观察到每小时有400个通话发生,这种趋势一直持续到中午,然后下降到每小时150个。我们假设该网站在这段时间内出现了一些问题,这个怀疑最后得到了运维人员的证实。我们把从上午9点到中午的时间标记为一次宕机。宕机率计算过程如下:

中断时间=3小时=180分钟

正常呼叫量=200呼叫/小时

总呼叫量=1000呼叫/小时

异常呼叫量=400呼叫/小时

差别(总呼叫量–正常呼叫量)=800呼叫/小时

超过正常水平的呼叫量=400-200=200呼叫/小时

超过正常水平的百分比=200 / 800 =1 / 4 =25%

因此宕机率为 25%,而总的停机时间为

180分钟 * 25% = 45 分钟。

虽然这个度量确实更加接近用户的真实体验,但也存在问题和不准确性。首先,问题出现时,客户不太可能马上打电话。大多数客服中心要求客户在电话线上等几分钟甚至更长的时间。许多消费者因为不愿意等而懒得打电话,所以可能只有反应最强烈的客户才会打。例如,在 eBay ,实际上受影响客户中只有大约 1% 至 5% 左右的人会打电话联系。该统计指标扭曲了实际情况,反应最强烈的客户,往往是那些最高级的用户。

这个测量指标的另外一个问题是,很多 Web2.0 和 SaaS 公司没有客户支持中心,他们很少有机会与客户直接接触,很难及时了解是否真正发生了问题,以及问题持续的时间和影响。

再有一个问题是,用户每天在不同时段呼入的情况变化很大。为了弥补这一因素,必须要有每小时的测量指标来做比较。

类似前面讨论过的硬件度量,客户接触率的度量是跟踪可用性的一个很好的指标,但是我们不能完全依赖它来进行可用性的评估。客户温度或者客户脉搏(无论你想怎么称呼),是观察客户群对新的网页布局、功能集成或付款模式如何反应的非常好的方式。这种反馈对确保产品经理专注于客户需求和听取客户意见是非常宝贵的。但是对真实可用性的测量,还需要一些更加复杂的方法。

方法三:网站局部瘫痪

测量可用性的第三种方法是监视网站上服务的可用性。如果网站有故障隔离泳道来保持服务的分离,这种测量会更加容易进行。你可以通过脚本来监控模拟用户执行某些任务的能力,如登录和运行报表等。该模拟用户就成为可用性的度量目标。

举个例子,我们想要监控登录、报表、支付、发布和注销五个服务,于是分别创建五个脚本,每五分钟运行一次。如果任何脚本失败,它就会通知预先定义好的联系人。服务恢复后,测试脚本会停止发送故障通知。通过这种方式,我们可以通过电子邮件准确地跟踪停机时间,以及哪些服务受到了影响。

上午 9 点 45 分,我们开始收到登录服务出现问题的电子邮件,11 点 15 分停止发送。这样就测量出登录服务出现 1.5 小时的停机时间。因为五个服务中有一个出现问题,所以计算总的停机时间的简单方法是把停机时间除以5,计算过程如下:

停电持续时间=1.5小时

受影响的服务数=1

总服务数=5

90分钟X1/5=18分钟

其结果是 18 分钟的停机时间。

这个方法有一定的局限性和缺点,却是一个相当精确地测量对客户影响时间的方法。主要局限是该方法只限于有脚本监控的服务。如果不创建脚本或者不能准确地模拟真实的用户,监控就不那么有效了。因此我们不可能监控每个服务,但是应该要覆盖主要的服务。

另外一个局限性是,并不是所有的用户都均等使用所有的服务。例如,只有新用户使用注册流程,所有存量用户都使用登录流程。每个业务的权重都不一样。我们可以按每个业务的重要性或者使用量添加权重,以便更准确地计算出每个业务可用性对客户的影响。

最后,这种方法还有一个局限性就是如果你从网络内部进行应用监控,监控不一定会受到与客户相同的影响,尤其是当故障是由网络服务提供商造成的。话说回来,尽管这种方法在监控网站可用性时有一定的局限性,但是它确实提供了很好的以客户为中心的可用性测量。

方法四:第三方监控服务

第四种确定可用性的测量方法是使用第三方监控服务。这种方法和第三种方法非常相似,但却克服了在内部网络监控的限制,并且还有可能包括更复杂的脚本,以模拟更真实的用户体验。它们主要的概念基本相同:配置要监控的服务,当出现问题时,向第三方服务报警联系人发出警报。

目前,市场上有很多厂商提供这种监控服务,包括 Keynote、Gomez 和 Montastic 等。有些服务是免费的,有些则是相当昂贵的,取决于需要监控的应用的复杂性和多样性。例如,一些优质的监控服务,其监控从许多不同的网络上发起,同时有能力从计算机上模拟用户,这几乎是真实的用户体验。

使用第三方监控服务的关键是首先要确定监控要求,包括应用或服务的动态性,需要在多少个不同的地理位置上监控,这种监控的难度多大等。有些厂商能够从几乎任何地区的互联网提供全球性的监控服务;一些供应商能提供对动态网页的特殊监控;其他的可以学习什么是正常的行为,在不需要预先设置阈值的情况下,根据统计学的规律提供动态的警报。

方法五:业务流量图

最后一种监控方法是根据业务流量图计算可用性,也是我们的首选方法。因为它采用对业务更有意义的收入来表达平台可用性。它需要用关键表现指标,如实时收入,来确定可用性对业务的影响。要做到这一点,我们必须为每个与企业经营业绩密切相关的关键指标(KPI)安排好监控。然后,当发生服务中断时,可以把正常的一天与服务中断那天做对比,以确定影响的程度。具体方式是计算业务流量图之间的面积之差,这部分代表着服务中断时间。

实线是正常一天的收入变化曲线(这里的收入是 KPI 监控的),虚线是交通中断那天的收入变化曲线。业务中断从大约下午 4 点开始,并持续到 6 点 40 分网站完全恢复。这段时间两条曲线之间的面积占比可以用来作为对可用性的影响。

结论

正如你所看到的,可用性的计算并不那么直接了当,可能会比较复杂。本文的目的不是要讨论哪种方法是正确的,而是要给出几种选择,让大家从中选择一种或综合几种为自己的组织找出最佳的整体可用性度量。绝不应该低估在测量可用性方法上取得共识的重要性,因为它对技术团队和个人目标度量密切相关。非常有必要花些时间,制订出最准确的度量,使之成为权威的可用性指标。

https://www.jianshu.com/p/d393bad1da45

如何计算平台的可用性?相关推荐

  1. 在 Azure 中管理 Windows 虚拟机的可用性

    了解如何设置和管理多个虚拟机,以确保 Azure 中 Windows 应用程序的高可用性. 也可以管理 Linux 虚拟机的可用性. Note Azure 具有用于创建和处理资源的两个不同的部署模型: ...

  2. 企业大数据平台仓库架构建设思路

    https://yq.aliyun.com/articles/57901 总体思路 随着互联网规模不断的扩大,数据也在爆炸式地增长,各种结构化.半结构化.非结构化数据不断地产生.新环境下的数据应用呈现 ...

  3. 「客户成功故事」OneAPM 助力网上办事大厅构建阳光、高效、安全的政务服务平台...

    (一) 项目背景: 网上办事大厅是由省信息中心承建的电子政务核心业务系统,致力于为全省民众提供一站式网上办事服务,实现了政务信息网上公开.法人及个人事项网上办理.公共决策网上互动.政府效能网上监督五大 ...

  4. Java生鲜电商平台-订单配送模块的架构与设计

    Java生鲜电商平台-订单配送模块的架构与设计 生鲜电商系统最终的目的还是用户下单支付购买, 所以订单管理系统是电商系统中最为复杂的系统,其作为中枢决定着整个商城的运转, 本文将对于生鲜类电商平台的订 ...

  5. 阿里云混合云管理平台发布帮您管好云

    6月9日, 在2020阿里云线上峰会上阿里云混合云战略正式发布:全栈建云.智能管云.极致用云.同步发布专有云敏捷版(Apsara Stack Agility). 混合云管理平台(Apsara Uni- ...

  6. 顶级公司在做数据挖掘,却忽略了数据管理平台,这个知识不得不看

    一.文章概述 随着大数据业务的不断开展,各大互联网公司都非常重视数据价值的挖掘. 在公司的日常运行中,各种数据分析挖掘技术,为公司发展决策和业务开展提供数据支持.作者所在的公司内部也形成了一套完善的数 ...

  7. 技术解析+代码实战,带你入门华为云政务区块链平台

    摘要:政务区块链平台是行业区块链平台的初步实践,未来在区块链技术的发展下,还会打造面向其他领域的链管平台,构建多方协同的分布式账本,让区块链应用更便捷高效的为产业服务. 本文分享自华为云社区<技 ...

  8. 面向无人驾驶 “云端大脑” 可用性的云原生实践

    作者:张海立,驭势科技云平台研发总监 行业背景 驭势科技(UISEE)是国内领先的自动驾驶公司,致力于为全行业.全场景提供 AI 驾驶服务,交付赋能出行和物流新生态的 AI 驾驶员.由于需要保障各个场 ...

  9. 阿里云物联网平台测评:以温度报警器开发为例

    点此查看 所有教程.项目.源码导航 文章目录 1. 物联网平台概述 2. 阿里云物联网平台的优势 2.1 快速接入 2.2 超高负载能力 2.3 可用性 2.4 安全性 2.5 性价比 3. 温度报警 ...

  10. 如何设计一个监控平台(上篇)

    引言 在大型分布式微服务场景下,各个服务版本快速迭代,各类业务规模不断膨胀,同时监控的场景也在不断的发生变化,线上故障随时可能发生,各个平台错综复杂,如何保证线上服务稳定运行,同时提升运维效率,降低运 ...

最新文章

  1. Google虚拟现实游戏 Ingress 邀请码一枚(已领)
  2. 我如何向团队解释依赖注入
  3. tcp套接字编程模型
  4. iPhone降价都救不回销量?苹果仍需努力!
  5. python数据结构剑指offer-链表中环的入口结点
  6. 9款极具创意的HTML5/CSS3进度条动画
  7. HDU 1269 裸奔的强联通分量
  8. python 包的使用 (二)——pyecharts
  9. Atitit 功能扩展法细则条例 目录 1. 界面ui扩展 2 1.1. 使用h5做界面 2 1.2. 自制h5 ide。。简化ui自定义配置 2 2. 业务逻辑扩展 2 2.1. Bpm流程引擎还
  10. java PDF转jpg
  11. 2019年最新淘宝联盟淘宝客升高佣规则
  12. QT编译Python问题:During startup program exited with code 0xc0000135
  13. 通讯测试模拟软件,通讯测试工具之二——Modbus测试工具(Modbus Slave调试工具)-专业自动化论坛-中国工控网论坛...
  14. java行转列,列转行,二维数据x轴y轴互换
  15. 用matplotlib可视化加州房价价格(散点图各个参数的含义)
  16. HDU 6194 string string string
  17. Apache shiro 官方API (中文版)(承蒙大佬们看重 小弟整理了下 无需积分 编辑的不好 希望帮到你们)
  18. R语言ggplot2可视化:使用patchwork包(直接使用加号+)将一个ggplot2可视化结果和数据表格横向组合起来形成最终结果图
  19. 架构解密:从分布式到微服务pdf
  20. Nexus 7 二代 刷机

热门文章

  1. Leetcode刷题 2021.02.15
  2. linux c 操作word文档,C and Word and linux 总结.doc
  3. Z变换零极点与收敛域的关系
  4. 计算机桌面文件为何不能剪贴,复制粘贴,详细教您电脑复制粘贴不能用了怎么解决...
  5. 北大编程网格【练习题】,北医计算概论课程编程题答案整理,C语言/python/C++
  6. 2021 年职业院校技能大赛“网络安全”项目 江西省比赛任务书
  7. 看着现在的勒布朗·詹姆斯,让人再次回想起篮球之神——伟大的迈克尔·乔丹和他的最佳搭档——斯科蒂·皮蓬
  8. 利用C#进行CAD二次开发
  9. 英语中学生测试软件,初中生免费学英语的软件哪个好
  10. Mysql数据库开启远程连接