DevOps在你的组织中运行的如何?如果你需要帮忙衡量它运行的如何,我们准备了一些DevOps的关键指标来进行追踪。这些指标可以帮助理解你的团队过去做的如何。

定义DevOps对你的组织意味着什么

DevOps这个词,不同的人不同理解。有些人说他是一种文化并且行业中的每个供应商声称,他们的工具有助于DevOps。取决于你如何定义DevOps,这些指标会对你和你的团队多多少少有些帮助。

我把DevOps定义为与部署和监视应用相关的所有内容。从许多方面来说,这都是现场可靠性工程的问题。在Stackify,我们都没有一个操作团队来合作。我们的开发人员直接部署到云上,我们的操作方式更多的是“NoOps”风格。可以看我的博客,了解我对DevOps的更多看法。

确定你的DevOps挑战

在弄清楚DevOps衡量标准是什么之前,需要确定组织所面临的挑战以及你要解决的问题。在Stackify,我们最大的问题不是频繁部署,和降低的bug逃逸率。我们的执行团队正把重点放在2018年的具体指标上。

DevOps衡量标准的类型

DevOps是关于持续交付和尽可能快的发布代码。你想要的是行动迅速而不是打破常规。通过跟踪这些DevOps指标,可以评估在事情开始变坏之前,你可以移动多快。

  1. 部署频率

  2. 体积变化

  3. 部署时间

  4. 交付时间

  5. 客户反馈

  6. 自动化测试通过百分比

  7. bug逃逸率

  8. 可用性

  9. 服务水平协议

  10. 失败部署

  11. 错误率

  12. 应用的使用和流量

  13. 应用性能

  14. 平均检测时间(MTTD)

  15. 平均恢复时间(MTTR)

DevOps的目标:速度、质量、性能

DevOps的主要目标是速度、质量和应用性能。

你希望尽快地发布代码。根据你的产品类型、团队和风险承受能力,可以有多快地实现这一目标。

即使没有在速度上跟踪任何DevOps指标,至少应该在质量上评估下工作方式。也许在可能的情况下试着发布,而且并不在意有多快,但是质量你总是关心的。你最不想要的就是总是在追着生产的灾难。

方程式的第三个部分是性能。你可以说,这也与你的高速度和高质量的目标不一致。性能也与质量有关,但可能略有不同。

部署大小

跟踪多少stories、特性请求和错误修复正在被部署,这是DevOps一个很好的衡量标准。根据你的项目有多大,它们的数量可能会有很大差异。还可以跟踪部署了多少个story points或这几天开发工作的价值。

部署频率

跟踪部署频率是DevOps一个良好的衡量标准。最终,目标是尽可能多地做更多小型部署。减少部署的大小让测试和发布变得更加容易。

我建议单独计算生产和非生产部署。部署到QA或预生产环境的频率也很重要。需要在QA中尽早部署,以确保测试的时间。在QA中发现bug很重要,可以降低bug的转化率。

部署时间

这看起来可能很奇怪,但是跟踪实际部署需要多长时间是很好的指标。我们在Stackify的一个应用中部署了Azure工作者角色,部署大约需要一个小时。这是一个噩梦。跟踪这些事情可以帮助识别潜在的问题。当实际执行比较快时,更容易频繁部署。

交付时间

如果目标是快速发布代码,这是一个非常关键的指标。我把交付时间定义为从工作项开始到它被部署之间的时间。这可以帮助你知道,如果你今天开始一项新的工作,它平均需要多长时间,直到它开始生产。这也是有助于BizDevOps的一个好方法。

客户反馈

应用问题的最好与最差的指标是客户的支持和反馈。你最不想要的就是让的用户发现bug或者发现你软件有问题。因此,它们也能很好地反映应用的质量和性能问题。

自动化测试通过百分比

为了提高速度,建议团队广泛使用单元测试和功能测试。由于DevOps严重依赖于自动化,所以跟踪自动化测试工作的好坏是一个DevOps指标。了解代码更改导致测试中断的频率是很好的。

bug逃逸率

你知道在生产和QA中发现了多少软件bug吗?如果想要快速地发布代码,需要有信心,可以在他们开始生产之前发现软件bug。bug逃逸率是DevOps一个很大的指标,用来跟踪这些bug在生产过程中经常发生的情况。

可用性

最不想发生的就是应用停机。根据应用类型以及如何部署它,可能会有一些停机时间作为计划维护的一部分。建议跟踪这一点,以及所有计划外的停机。

服务水平协议

大多数公司都有一些服务水平协议(SLA)。同样重要的是你要追踪是否遵守SLA。即使没有正式的SLA,也可能需要实现应用需求或预期。

失败部署

我们都希望这种情况永远不会发生,但是部署经常会给用户造成中断或重大问题吗?反转失败的部署是我们永远都不想做的事情,但这是应该一直计划的事情。如果遇到了部署失败的问题,请务必跟踪这个指标。这也可以看作是对失败的跟踪平均时间(MTTF)。

错误率

在应用中跟踪错误率非常重要。它们不仅是质量问题的指示器,而且是与持续性能和正常运行时间相关的问题。好的异常处理最佳实践对于良好的软件是至关重要的。

  • bug——在部署后识别在代码中抛出的新异常。

  • 生产问题——通过数据库连接捕获问题,查询超时和其他相关问题。

对于大多数应用程序来说,错误是无法更改事实。在Stackify,我们在几百个服务器和上千个SQL数据库中处理数百万条消息。这里有一些错误,只是一个繁忙系统的部分噪音。重要的是,你要对你的错误率保持一个脉冲,并寻找峰值。

应用使用和流量

在部署之后,想查看访问系统的事务或用户数量是否正常。如果突然之间没有流量或者流量有大幅上升,那么有些东西可能是错误的。

最不想看到的就是根本没有流量。如果使用的是微服务可以看到流量激增,而你某个应用突然导致了大量的流量。

应用性能

在进行部署之前,应该使用像Retrace这样的工具来查找性能问题、隐藏的bug和其他问题。在部署期间和部署之后,还应该寻找总体应用程序性能的任何变化。

在部署之后,可以看到特定SQL查询、web服务调用和其他应用依赖项的使用的主要变化。Retrace这样的工具可以提供有价值的可视化效果,比如下面这个,可以帮助轻松地发现问题。

平均监测时间(MTTD)

当问题发生时,重要的是你要快速地识别它们。最不希望的是出现重大的部分或广泛的系统中断,而却不知道为什么。拥有强大的应用监控和良好的覆盖将有助于快速发现问题。一旦发现它们,也必须快速修复问题。

平均恢复时间(MTTR)

这个指标可以帮助跟踪从失败中恢复需要多长时间。对企业来说,一个关键的衡量标准就是将失败降到最低,并且能够迅速地从失败中恢复过来。它通常是按小时计算的,可能是指工作时间,而不是时钟时间。

拥有良好的应用程序监视工具可以快速识别问题并快速部署修复程序,这对减少MTTR非常重要。

应用指标

除了上面列出的DevOps指标之外,还可以跟踪许多其他的指标,这些指标都是特定于你的应用程序的。它们中的大多数与DevOps在部署应用方面不一定相关。但是,它们对于监视应用程序在生产中的使用和性能非常关键。

例如,在Stackify中,我们使用自定义指标来跟踪每分钟通过API接收的日志消息数量。这是一个重要的衡量指标,帮助我们理解流经系统的数据量。根据你应用程序的不同,可能有类似的自定义指标,对你的应用程序至关重要。

在部署之后,你将希望监视所有关键的应用程序指标,以确保一切仍然正常。

总结

如果你想要让DevOps进行到下一个级别,我相信我们的DevOps指标列表将帮助你了解如何跟踪和改进。DevOps的目标是协作,让开发人员更多地参与部署过程和应用程序监控

衡量DevOps成功的15个标准的更多相关文章

  1. 【DevOps】DevOps成功的八大炫酷工具

    为自动化和分析所设计的软件及服务正加速devops改革的步伐,本文为你盘点了Devops成功的八大炫酷工具 Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势.开发人员和运营人员历 ...

  2. PKCS 15 个标准

    PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准. 可以到官网上看看 What i ...

  3. PKCS 发布的15 个标准与X509

    PKCS 发布的15 个标准,转自:http://falchion.iteye.com/blog/1472453 PKCS 全称是 Public-Key Cryptography Standards ...

  4. Devops成功的八大炫酷工具

    原文链接:http://www.infoworld.com/article/3031009/devops/8-more-cool-tools-for-devops-success.html 为自动化和 ...

  5. 十五项指标衡量DevOps是否成功

    DevOps在你的组织内部运行的如何?如果你需要一些帮助来度量它的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解你的团队是如何随着时间的推移而运行的. 在团队内 ...

  6. python基础课程_学习笔记15:标准库:有些收藏夹——fileinput

    标准库:有些收藏夹 fileinput 重要功能 性能 叙述性说明 input([files[,inplace[,backup]]) 便于遍历多个输入流中的行 filename() 返回当前文件的名称 ...

  7. Windows 8实例教程系列 - 自定义应用风格

    原文:Windows 8实例教程系列 - 自定义应用风格 在Windows 8 XAML实例教程中,曾经提及过应用风格设计方法以及如何创建可复用样式代码.本篇将深入讨论如何创建自定义Windows8应 ...

  8. AI与RPA

    RPA(机器人流程自动化)是一类自动化软件工具,它可以通过用户界面使用和理解企业已有的应用,将基于规则的常规操作自动化,例如读取邮件和系统,计算,生成文件和报告,检查文件等.因此,RPA的应用范围非常 ...

  9. 架构设计哲学【三种方式:支持DevOps的原则】

    三种方式:支持DevOps的原则 2012年8月22日作者Gene Kim 45条评论 这篇文章是杨波老师分享的一篇文章:这几年对他架构影响最深的一篇文章.主要描述是关于DevOps的,但对系统架构同 ...

随机推荐

  1. 利用rowid删除数据库中无主键的相同记录

    数据库中表没有添加主键,误插入了两条数据,现在需要删除其中一条记录. 利用rowid号,因为表中的每一行数据都有一个rowid,这个rowid 号是不同的,用select可以查询出来. select ...

  2. linux ORACLE备份还原(EXP\IMP)

    一.Oracle导入导出 1.Oracle的备份是Oracle操作中常见的工作,常见的备份方案有:逻辑备份(IMP&EXP命令进行备份).物理文件备份(脱机及联机备份).利用RMAN(Reco ...

  3. 如何使用google等一系列搜索引擎?

    对于我们经常使用的搜索引擎大家都都不陌生,但是,如何高效的利用呢?大家都知道空格是搜索多个关键词,那么有没有其他的快捷键呢?答案是肯定的,以下内容转自知乎 1.双引号 把搜索词放在双引号中,代表完全匹 ...

  4. linux sdcv命令

    一.简介 sdcv全称为stardict console version,是终端下的词典.   二.安装 1)安装sdcv yum install -y sdcv 2)安装字典 http://www. ...

  5. tarjan进阶

    一.边双连通分量 定义 若一个无向图中的去掉任意一条边都不会改变此图的连通性,即不存在桥,则称作边双连通图.一个无向图中的每一个极大边双连通子图称作此无向图的边双连通分量. 实际求法和强连通分量差不多 ...

  6. Linux shell实现阳历转农历

    闲来无事,想在Linux下用shell写一个阳历转农历的脚本,断断续续大概一个星期终于搞定.现在拿出来与大家分享. 缘由 本脚本实现原理是查表法(因为公式有误差):基于农历新年为基准,对农历新年前后两 ...

  7. SDUT 3361 数据结构实验之图论四:迷宫探索

    数据结构实验之图论四:迷宫探索 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有一个地下迷 ...

  8. SSH (Struts2+Spring3.0+Hibernate3)框架(二) 框架的配置

    一.准备工作: 1. JDK -> jdk1.6.0_17 安装(环境变量配置): JAVA_HOME = C:\ jdk1.6.0_17; PATH = %JAVA_HOME%\bin; %J ...

  9. img中 src 中文路径解决办法

    最近有个项目场景如下:需要后台遍历图片.视频所在的文件夹,获取的到的路径传递到JSP页面,使用<img src="具体的路径">显示图片.遇到的问题:如果图片的路径.图 ...

  10. C++面试笔记--排序

    这里我们开始复习排序的一些面试题. 首先我们来看一下各个排序方法的时间复杂度和稳定性的比较,见下面表格: 排序法 平均时间 最差情形 稳定度 额外空间 备注 冒泡 O(n2)     O(n2) 稳定 ...