衡量软件交付性能的4个指标

简介: 衡量软件交付性能的4个指标

目录

软件交付性能指标

部署频率

变更准备时间

变更失败率

平均恢复时间(MTTR)

总结


 


当你的团队需要通过持续集成和持续交付(CI/CD)流水线将代码部署到生产环境时,衡量这些应用程序交付的速度和稳定性对于确保软件的高质量具有至关重要的意义。

Nicole Forsgren博士的《Accelerate》一书中介绍了四个软件交付性能指标,来衡量和可视化我们应用程序交付的速度和稳定性。eBay公司据此做出了尝试。


软件交付性能指标

以下是四个软件交付性能指标:

  1. 部署频率–你的组织多久一次将代码部署到生产环境?
  2. 变更准备时间–从提交代码,到在生产环境中成功运行要花多长时间?
  3. 变更失败率–部署中有多少次回滚,修补等?
  4. 平均恢复时间–出现问题时,需要多长时间恢复正常?


eBay公司据此,构建了一个可以实时跟踪和可视化所有这些指标的系统,并能够深查看该组织内所有团队的这些指标的信息。

此外,该系统还允许访问历史趋势,以识别每个级别上四个指标的改进或降低。团队还可以使用过滤器来查看特定时间段内的指标。


部署频率

为了跟踪该指标,我们从构建和部署系统中查找部署事件。在新版本的应用程序被部署到生产环境后,部署计数器会递增。这包括好和坏的应用程序版本。


变更准备时间

准备时间,指的是从变更创建时间到部署第一个服务实例过程中耗费的时间。

部署到生产环境中的单个功能修改,可能有多个提交,从而导致要计算多个交付周期。为了计算单个变更准备时间的总体指标,我们将这些准备时间的中值用作该部署的“变更准备时间”。

该组织,团队或应用程序的所有部署的“变更准备时间”的平均值,就是我们想要的“变更准备时间”。


变更失败率

应用程序在部署生产环境后,由于某些原因影响用户使用,我们需要修正(例如修补程序,回滚,正向修复或修补程序等),这些系统修补次数在所有部署中所占的百分比,就是变更失败率。

当前,我们将变更失败率衡量为给定时间段内所有部署中的回滚百分比。如果实例正在为流量提供服务,即使来自单个实例的回滚也算作失败。


平均恢复时间(MTTR)

平均恢复时间(MTTR)表示系统发生故障时,恢复正常所需的时间。

例如,如果将构建N(不良构建)部署到生产中,然后团队发现了一个问题,要求他们通过部署N-1(最新已知的良好构建)来回滚N,直到将N-1部署到生产环境为止的时间花费就是恢复时间(TTR)。所有TTR的平均值为MTTR。


总结

作为eBay内“ Velocity Initiative ”的一部分,eBay的各种平台和产品团队正在共同努力以实现一个共同目标:提高所有团队更快地交付高质量软件的能力。

同时,测量和可视化这些指标,有助于团队了解交付速度和稳定性方面的优势,还有助于确定整个团队在软件交付过程中需要改进的地方。


译文链接:https://thenewstack.io/4-ways-to-measure-your-software-delivery-performance/



目录
相关文章
|
4月前
|
测试技术
软件交付质量问题之对于处理质量与成本的平衡该如何实现
软件交付质量问题之对于处理质量与成本的平衡该如何实现
|
7月前
|
消息中间件 Cloud Native Java
项目环境稳定性指标建设之路
这篇文章讨论了项目环境在集团研发中的重要性,它是一个灵活的平台工具,用于支持联调测试和不同阶段的环境隔离。早期的项目环境管理存在任务重复运行、单机处理瓶颈和任务猝死等问题。为了解决这些问题,文章介绍了通过引入领域驱动设计(DDD)来重构流程引擎,创建了统一的异常处理和任务执行接口,增强了异常处理能力,并通过分布式分片任务、工厂模式和责任链模式实现了任务的分布式运行。此外,还使用分布式锁解决了多机忙等和任务重复执行的问题,提高了任务执行效率。优化后,环境创建成功率提升至99%以上,创建时间降低至100秒以下,系统异常率低于1%,并且能够应对更高的并发量。
|
7月前
软件体系结构 - 可靠性指标
软件体系结构 - 可靠性指标
396 0
软件体系结构 - 可靠性指标
|
7月前
|
测试技术
研发效能度量指标的陷阱思考
研发效能度量指标的陷阱思考
111 0
|
7月前
|
敏捷开发 自然语言处理 数据可视化
敏捷测试度量指标
敏捷测试度量指标
134 0
|
机器学习/深度学习 算法
评估系统或算法质量的重要指标
准确性(Accuracy):衡量系统或算法输出结果与真实结果之间的接近程度。通常使用分类准确率、回归误差等指标来评估。 精确率(Precision)和召回率(Recall):主要用于评估分类模型的性能。精确率衡量预测为正例的样本中实际为正例的比例,召回率衡量实际为正例的样本中被正确预测为正例的比例。
319 4
|
运维 算法 安全
系统的三高指标
前面我们将功能性的需求几乎都已经都陈列出来,这些几乎是从外部因素考虑的。但对于运行系统的环境,以及系统的并发能力也是我们需要考虑的,这部分可称为非功能需求。 非功能性需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维/运营成本等
223 0
|
安全 测试技术 应用服务中间件
持续测试之下的正确质量度量
持续测试之下的正确质量度量
358 0
持续测试之下的正确质量度量
|
测试技术
如何衡量和提高测试效率
对于如何衡量测试效率,如何提高测试效率      如何衡量测试效率? 个人认为可以从软件测试的活动中的以下指标综合考评,去评估衡量测试效率,每项指标都高,自然能够说明一些问题: 1.发现缺陷的质量: 同一个项目组内,我们一般运用测试管理工具TD, 按优先级和严重等级,把每个人的缺陷做成柱状图和饼图,放到一个文档中,邮件发给大家,让组内成员了解自己的工作情况和其他人的工作情况。
3789 0
|
大数据
软件成本度量进阶系列之增强开发、中间系统评估(转载)
上篇我们讲到《基础软件&基础评估》,第一层的心法是熟知标准和度量模型、掌握并运用方法、熟悉评估流程、熟悉公司业务,最后说了系统架构不断优化,软件系统跟着业务变化多端,今天就为朋友们带来软件成本度量的第二层心法《增强开发、中间系统评估》。
1235 0