这 4 个系统可靠性评估指标,可能比 MTTR 更靠谱!
如果要评选研发效能管理中最重要的 10 个度量指标,相信 MTTR(Mean Time to Recover,平均恢复时间)一定榜上有名。
MTTR 代表一定周期内可修复系统不可用状态的平均持续时长,可以帮助企业更好地理解技术团队与研发工作,是评估系统可用性和可靠性的重要指标之一。LigaAI 详细分享过 MTTR 和 MTBF 等 9 个研发质量管理指标,欢迎点击文章回顾:
研发质量指标大 PK:MTTR vs MTBF,谁是靠谱王?
但是,Verica 公开事件数据库(VOID)通过对近 600 个组织共享的超过 10,000 个事件进行研究与分析,发现对复杂的软件系统而言,MTTR 可能不是一个合适的管理指标。他们在 The 2022 VOID Report 中是这么说的:
我们认为 MTTR 对于复杂的软件系统来说并不是一个合适的指标,部分原因是系统无故障时间数据的分布以及系统故障不会(像物理组件或设备一样)随着时间的推移而规律出现。
01 MTTR 不适用于评估复杂系统的可靠性
MTTR 起源于制造业,用于衡量修复物理组件或故障设备的平均耗时。制造业的硬件或设备的磨损/故障周期相对规律,更易于管理且可预测性高,有利于使用 MTTR 展开适当标准化和统一评估。随着时间推移,MTTR 逐渐被引入并应用在软件系统管理方面,软件公司也将其视为系统可靠性和团队敏捷性/有效性的指标。
但是,Verica 研究团队怀疑,使用 MTTR 衡量软件网络故障和中断是不合适的,因为软件系统的「故障」不同于物理制造设备的故障,其每个故障本质上都是不同的。这也是为什么尽管在系统可靠性建设上大力投入,现代软件系统的运营商也仍会被意外和异常故障打得措手不及。
Verica 团队基于 Štěpán Davidovič 发布的 SRE 事件指标研究(Incident Metrics in SRE: Critically Evaluating MTTR and Friends),开展了两次实验以验证 MTTR 的有效性和可靠性。
实验结果表明,无论样本容量的大小如何,将事件持续时间减少 10% 并不会导致 MTTR 显著减少;持续时间数据的极端差异会对 MTTR 的计算结果产生显著影响。
02 是否存在 MTTR 的替代指标?
「哪些指标可以取代 MTTR?」
报告回答道,「研发团队不应该试图使用单一指标衡量或描述复杂的社会技术系统的可靠性。 无论计算出怎样的(不可靠的)MTTR,都需要深入调查事件,并了解系统真正发生了什么。」
Verica 团队称,定性事件分析是寻找替代指标的理想方式。基于事件分析,他们列出了 4 个可以代替 MTTR 衡量软件系统可靠性的指标。
1. SLOs 和客户反馈
SLO(Service Level Objectives,服务等级目标)是服务提供商为确保能为用户提供充分服务(并在需要时投资于可靠性以满足承诺)而做出的服务质量预期承诺。SLO 有助于结合技术系统指标与业务目标,使其成为更有用的可靠性框架。
需要注意的是,SLO 并不是 MTTR 的理想替代品。它具有和 MTTR 一样的缺点:
- 无法捕捉不影响 SLO 的未遂事件。
- 只考虑已发生的事件,不包括有关已知风险的信息。
- 随时间推移,导致 SLO 异常的事件发生的随机性很高,因此存在潜在的信噪比问题。
2. 社会技术事件数据
现代社会复杂系统的问题往往是社会技术性的,涉及代码、机器以及开发和维护的人。但是,研发团队总是倾向于只收集技术数据来评估系统表现。
Laura Maguire 博士对「协调成本 Costs of Coordination」的研究极大地丰富了社会技术数据的类型和来源。这些数据类型包括事件涉及的团队数、人数、工具、沟通渠道和并发事件等等。
在开始收集以上分析数据之前,技术团队无法真正地了解组织响应事件的实际方式。收集有关参与人员及其认知负荷的数据,以及所需的工具和技术资源,将有助于更全面地了解系统和团队的弹性。
3. 未遂事故
从未遂事件和实际影响客户/用户的事件中学习也是一种新兴方法。专注于「未遂事故」可以更深入地了解知识差距、思维错位和其他形式的组织和技术盲点。未遂事件相关的信息有助于推进组织变革,从而避免未来发生类似的、更严重的事件。
然而,发现未遂事故的原因绝非易事。下面是一些场景示例:
- 系统 X 已关闭,但用户没有注意到,因为系统 Y 在持续时间或中断期间提供缓存或通用内容。这是一个事件吗?
- 备份系统一个月前发生了故障,至今没有被技术团队或客户发现。这算事件吗?
4. 事后审查数据
评估组织内部事件分析有效性的另一种方法是跟踪事后审查信息的参与、共享和传播程度,例如阅读报告人数、自愿参加事件后审查会议的人数、与事后审查报告相关的代码注释和提交消息/架构图/其他相关事件的报告的数量等等。
03 LigaAI 总结
Verica 团队通过研究发现,MTTR 无法描述复杂软件系统的可靠性。他们解释道,这与系统无故障时间和故障出现时间的不确定性有关。
研发团队不应该试图使用单一指标来衡量或描述复杂的社会技术系统的可靠性,而是应该全面、深入地了解组织响应事件的真实处理手段和过程,并通过定性分析寻找合适的 MTTR 替代指标。
基于事件分析数据,VOID 报告提出四个可以替代 MTTR 的系统可靠性指标:SLOs 和客户反馈、社会技术事件数据、未遂事故和事后审查数据。
LigaAI@OSCHINA 还将分享更多研发效能度量、研发管理实践等干货内容,欢迎关注我们。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Doris 巨大飞跃:存算分离新架构
作者:马如悦 Apache Doris 创始人 历史上,数据分析需求的不断提升(更大的数据规模、更快的处理速度、更低的使用成本)和计算基础设施的不断进化(从专用的高端硬件、到低成本的商用硬件、到云计算服务),这两大因素推动数据仓库的架构大体经历了三个时代:软硬一体的一体机时代、存算一体的分布式时代以及存算分离的云原生时代。 Apache Doris 诞生于存算一体的分布式时代,是典型的 Shared Nothing 架构:BE 节点上存储与计算紧密耦合、多 BE 节点采用 MPP 分布式计算架构,这种架构为 Apache Doris 带来了高可用、极简部署、横向可扩展以及强大的实时分析性能等一系列核心特色。随着云时代的到来,无论是公有云、私有云还是 K8S 容器平台,越来越多的企业都希望 Apache Doris 针对云计算这种新型基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力。 在过去的一年,飞轮科技(SelectDB)技术团队在基于 Apache Doris 内核研发全托管企业级云数仓产品的过程中,设计并实现了全新的云原生存算分离架构(即 SelectDB Cloud)...
- 下一篇
Android 架构模式如何选择
作者:vivo 互联网客户端团队-Xu Jie Android架构模式飞速演进,目前已经有MVC、MVP、MVVM、MVI。到底哪一个才是自己业务场景最需要的,不深入理解的话是无法进行选择的。这篇文章就针对这些架构模式逐一解读。重点会介绍Compose为什么要结合MVI进行使用。希望知其然,然后找到适合自己业务的架构模式 一、前言 不得不感叹,近些年android的架构演进速度真的是飞快,拿笔者工作这几年接触的架构来说,就已经有了MVC、MVP、MVVM。正当笔者准备把MVVM应用到自己项目当中时,发现谷歌悄悄的更新了开发者文档(应用架构指南 | Android 开发者 | Android Developers (google.cn))。这是一篇指导如何使用MVI的文章。那么这个文章到底为什么更新,想要表达什么?里面提到的Compose又是什么?难道现在已经有的MVC、MVP、MVVM不够用吗?MVI跟已有的这些架构又有什么不同之处呢? 有人会说,不管什么架构,都是围绕着“解耦”来实现的,这种说法是正确的,但是耦合度高只是现象,采用什么手段降低耦合度?降低耦合度之后的程序方便单元测试吗...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启