这 4 个系统可靠性评估指标,可能比 MTTR 更靠谱!

news2024/9/21 2:47:07

如果要评选研发效能管理中最重要的 10 个度量指标,相信 MTTR(Mean Time to Recover,平均恢复时间)一定榜上有名。

MTTR 代表一定周期内可修复系统不可用状态的平均持续时长,可以帮助企业更好地理解技术团队与研发工作,是评估系统可用性和可靠性的重要指标之一。LigaAI 详细分享过 MTTR 和 MTBF 等 9 个研发质量管理指标,欢迎点击文章回顾:

1. 介绍 9 个研发质量度量指标

2. 研发质量指标大 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」的研究极大地丰富了社会技术数据的类型和来源。这些数据类型包括事件涉及的团队数、人数、工具、沟通渠道和并发事件等等。

来源:The 2022 VOID Report

在开始收集以上分析数据之前,技术团队无法真正地了解组织响应事件的实际方式。收集有关参与人员及其认知负荷的数据,以及所需的工具和技术资源,将有助于更全面地了解系统和团队的弹性。

3. 未遂事故

从未遂事件和实际影响客户/用户的事件中学习也是一种新兴方法。专注于「未遂事故」可以更深入地了解知识差距、思维错位和其他形式的组织和技术盲点。未遂事件相关的信息有助于推进组织变革,从而避免未来发生类似的、更严重的事件。

然而,发现未遂事故的原因绝非易事。下面是一些场景示例:

  • 系统 X 已关闭,但用户没有注意到,因为系统 Y 在持续时间或中断期间提供缓存或通用内容。这是一个事件吗?
  • 备份系统一个月前发生了故障,至今没有被技术团队或客户发现。这算事件吗?

4. 事后审查数据

评估组织内部事件分析有效性的另一种方法是跟踪事后审查信息的参与、共享和传播程度,例如阅读报告人数自愿参加事件后审查会议的人数与事后审查报告相关的代码注释和提交消息/架构图/其他相关事件的报告的数量等等。

03 LigaAI 总结

Verica 团队通过研究发现,MTTR 无法描述复杂软件系统的可靠性。他们解释道,这与系统无故障时间和故障出现时间的不确定性有关。

研发团队不应该试图使用单一指标来衡量或描述复杂的社会技术系统的可靠性,而是应该全面、深入地了解组织响应事件的真实处理手段和过程,并通过定性分析寻找合适的 MTTR 替代指标。

基于事件分析数据,VOID 报告提出四个可以替代 MTTR 的系统可靠性指标:SLOs 和客户反馈、社会技术事件数据、未遂事故和事后审查数据。

LigaAI@CSDN 还将分享更多研发效能度量、研发管理实践等干货内容,欢迎关注我们。

LigaAI 助力开发者扬帆远航,点击体验新一代智能研发协作,一起变大变强!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/815692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPU显卡驱动安装

查看GPU版本 lspci | grep -i nvidia从下面的网址ThePCI ID Repository中输入ID查看对应的GPU版本 官网NVIDIA下载对应的驱动 安装下载的文件 sudo sh ./NVIDIA-Linux-x86_64-535.86.05.run 检验是否安装成功 nvidia-smi

机器学习-Regression

机器学习(Regression:Case Study) 前言: 学习资料 videopptblog Example Application 建立一个model,将宝可梦的一些数据作为输入,然后输出宝可梦进化以后的战斗力CP值,这个model的建立尤为重要,但是这个模型的建立…

目标检测中 anchor base和anchor free

目标检测中两种不同anchor的生成 趋势:anchor free越来越受到实时性检测的青睐,,,

redis 高级篇 redis 源码的读取分析

一 redis源码分析 1.1 源码分析 1每一个kv键值对应有一个dictEntry。 2.底层数据结构

《QDebug 2023年7月》

一、Qt Widgets 问题交流 1.QPainter旋转角度绘制线条的一点问题 QPainter 旋转角度,等距绘制若干线条,会出现绘制不均匀的情况: 但是在测试 QML Canvas 绘制时,发现效果是正常的,原来是因为 Canvas 默认的 capStyle…

正则表达式的应用及示例解析

正则表达式(Regular Expression,简称Regex)是由特殊字符组成的模式字符串,用于匹配和搜索文本中的特定模式。它在数据处理、文本搜索和替换等方面广泛应用。本文将介绍正则表达式的基本语法,并提供常见的正则表达式示例…

Linux系统增加新用户

使用adduser命令,不使用useradd命令。 登录root用户,或者有sudo权限的用户创建。 sudo adduser test修改文件目录的权限 sudo chmod -R 777 /opt/登录新创建的用户创建文件 mkdir test删除用户 userdel -r test增加网络映射,安装samba sudo…

RBAC三级树状菜单实现(从前端到后端)未完待续

1、表格设计 RBAC 2、前端路由 根据不同的用户id显示不同的菜单。 根据路由 3、多级菜单 展示所有权限,并且根据当前用户id展示它所属的角色的所有菜单。 前端树状展示 思路: 后端:传给前端map,map里1个是所有菜单&am…

汽车过户时,怎么选到理想的好车牌?

在汽车过户的过程中,选到一副理想的好车牌就像买彩票中大奖一样令人兴奋。但是,怎样找到这样一块车牌呢?这就是本文要探讨的问题。 首先,我们来聊聊选车牌的技巧。很多人喜欢选择有特别数字的车牌,如“8888”、“6666”…

太狠了,Spring 全家桶笔记, 一站式通关全攻略, 已入职某厂涨薪 18K

Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分 Java 后端程序员在日常工作中也会接触到 Spring ,因此,如何用好 Spring ,也就成为 Java 程序员的必修课之一。 为了…

解决方案之执行gradle报错--org.codehaus.groovy.runtime.InvokerHelper

这里写自定义目录标题 报错解决方案 报错 在执行./gradlew clean时报错如下: FAILURE: Build failed with an exception.* What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper > Exception java.lang.NoClassDefFoundErr…

自动callback

using UnityEngine;public class AsyncCallbackScript : MonoBehaviour {public delegate void fun(string msg);void Start(){fun test AAA;//test.BeginInvoke("天王盖地虎", asyncCallback > BBB(), null);test.BeginInvoke("天王盖地虎 宝塔镇河妖"…

Java实现简单小画板

Java制作简单画板,包括两个类,一个主要画板类Drawpad,一个画板监听器DrawListener类。 1、Drawpad类,包括画板,画板功能设计,保存图片等 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2…

Boost开发指南-3.6weak_ptr

weak_ptr weak_ptr是为配合shared_ptr而引入的一种智能指针,它更像是shared_ptr的一个助手而不是智能指针,因为它不具有普通指针的行为,没有重载 operator*和->。它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使…

伴伴加速“搭子社交”:确认过眼神,是一起玩游戏的人

最近在年轻人中风靡起了一种新型的社交方式——“搭子”社交。例如饭搭子、学习搭子、游戏搭子、减肥搭子......在搭子社交流行的当下,伴伴抓住了这一点,为年轻人提供了一个线上社交平台,让他们能够找到与自己兴趣相投的搭子。 什么是搭子社…

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-LS…

接口自动化测试-Jmeter+ant+jenkins实战持续集成(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、下载安装配置J…

vue sku商品规格多选

vue sku商品规格多选 1.创建一个数据对象,用于存储SKU的选中状态。例如,可以使用一个数组来表示选中的SKU,每个元素代表一个SKU选项的id。 data() {return {selectedOptions: []} }2.在SKU选项列表中,使用v-bind:class绑定一个计…

医疗陪诊小程序开发:为您打造贴心、专业的陪护服务

近年来,随着人们对健康关注度的提高和医疗服务需求的增加,陪诊小程序逐渐崭露头角。陪诊小程序是一种基于互联网技术的应用程序,旨在提供便捷、高效的陪诊服务。下面将介绍陪诊小程序开发的优势。   便捷性:陪诊小程序可以通过手…

类和对象——初始化列表

目录 初始化列表 注意 单/多参数传入 explicit关键字 匿名函数 先前,我们知道有构造函数——用于给各成员变量一个初始值。 但是仍然不能称为是初始化,因为初始化只能初始化一次,但是构造函数里可以多次赋值 初始化列表 以日期类Date…