现代生产系统DORA的应用与集成
What's DORA.
DORA是一项用于帮助团队推动软件交付和运营性能的一项报告,该项目由谷歌推动运营,是同类中规模最大、运行时间最长的研究项目。目前全球该项报告吸引了全球接近39000多名专业人士的参与。详细对于DORA的介绍可以参与:DORA | Get Better at Getting Better
在该项报告中主要体现了软件性能的两个指标,也就是KPI,一个是Throughput KPI,另一个则是Stability KPI,在新的DORA定义中新加一个指标Service Level Objective 简称(SLO),下面我将会一一对这几个指标进行一个介绍:
Throughput KPI
Throughput KPI 包含了Deployment Frequency 和 Median Lead Time for Changes两个KPI指标
Lead Time for Changes(LT)
该指标衡量承诺投入生产所需的时间。它是向客户交付更改速度的指标,与开发和交付速度密切相关。从开发人员在本地创建提交开始,直到该提交到达生产环境。从所有提交中,将取一个中位数来计算变更的交付周期。
Deployment Frequency
此KPI衡量在给定时间段内将代码更改部署到生产环境的次数。这是团队向客户交付新功能和改进的频率的指标。DORA官方是通过柱状图的方式进行体现。
Stability KPI
Stability KPI包含Time to Restore和Change Failure Rate两个指标
Time to Restore
此KPI衡量发生影响用户的故障时恢复服务所需的时间。它是团队响应和解决问题的速度的指标,因此是云产品和服务可靠性和弹性的基准。
Change Failure Rate
Change Failure Rate是导致生产失败的已部署变更的百分比。例如服务损坏、中断等,随后需要补救,例如修补程序、回滚、关闭等,具体怎样定义为失败,由企业自行定义。
有什么用?
首先明确一点,这也是DORA官方所提及的,所有的指标不会参与到个人绩效KPI的评定中去,这些指标仅仅是对软件本身进行监控,软件交付过程中,这些指标可以用于评价怎么CICD流程是否规范,是否又可以优化的地方。
比如,当你Deployment Frequency指标偏大的时候,你是否会有意识的去排查你的CICD pipeline中对于build和delivery的步骤是否有存在优化的可能性,或者整个团队中对于开发和发布流程是否存在优化的地方。
当你的Stability KPI指标偏大的时候,你是否会意识到整个团队对于错误的响应流程是否正确,是否可以进行优化,以及是否会加强在CICD中的automation test的时间等等。这些都是举一些比较常见的例子,其他用处可以团队内部深挖,但是始终要记住DORA的初衷所有的指标不会参与到个人绩效KPI的评定中去