在这篇文章中,我们将介绍 DevOps 四个关键指标——DORA 指标,DORA 指标的度量难点,以及如何基于开源工具快速实现 DORA 指标的度量和持续追踪。如果你熟悉 DORA 指标,可以直接跳到本文第二部分。
什么是 DORA 指标?
DORA 的全称是 DevOps Research and Assessment,是一个致力于 DevOps 调研与研究的组织,2018 年加入 Google Cloud。自 2014 年起,DORA 每年会发布一份行业报告,基于对数千名从业者的调研,分析高效能团队与低效能团队在 DevOps 实践上的差异。 高效能团队如何定义?可能每个人、每个组织都有不同见解。DORA 的做法是将研发团队表现分为三个方面:软件交付表现、运行稳定性表现和组织业绩表现。在软件交付表现方面,提炼出四个关键的结果性指标进行概括,这就是著名的 DORA 指标。DORA 指标包括- 部署频率(Deployment Frequency):一段时间内应用程序部署到生产中的次数,代表研发团队交付价值的频率
- 变更交付周期(Lead Time for Changes):从代码提交到将代码部署到生产中的时长,代表团队进行代码评审、测试和部署的速度,也部分反映了团队响应用户需求的速度
- 变更失败率(Change Failure Rate):变更部署到生产后发生故障、导致服务降级的比例,代表团队交付稳定服务的能力
- 服务恢复时间(Time to Restore Service):生产环境中发生故障到服务恢复的时间,代表团队快速监测、定位、诊断故障,并从故障中快速恢复的能力
度量 DORA 指标,难在哪?
DORA 指标并不是什么新鲜事物,指标只有四个,公式也非常简单明了。但对于许多研发团队来说,要在日常工作中持续自动化地度量 DORA 指标,依然难度不小。 困难在于,DORA 指标度量依赖于变更、部署、故障等研发数据,而许多研发团队并没有获取研发数据的可靠基础设施: 首先,研发过程本身是复杂的,通常涉及多个流程、活动和工具,研发过程数据也常常散落在复杂的工具链中(包括代码托管、事务管理、CI/CD 工具等),导致数据难以提取,耗时费力。如果研发团队同时使用同类型的多个研发工具,可能还需要处理不一致的数据概念,比如同一公司内部分团队使用 GitHub 部分团队使用 GitLab,就需要统一 Pull Request 和 Merge Request 两个概念。 其次,不同的组织和项目的研发和交付过程不同,可能会采用不同的数据定义和计算方法。比如,有的团队使用Git Tag 或某特定分支的合并来识别一次部署,有的团队使用 CI/CD 工具中的事件来识别一次部署。这样非标准化的定义与计算方法,也使得研发数据难以治理,进而给数据的可靠性打了一个问号。 市面上 DORA 指标工具之多,也从侧面印证了这仅仅四个指标的度量并非易事。如果某个团队考虑度量 DORA 指标,他们可能需要对比市面上的数十个工具,眼花缭乱中找到恰好能接入当前研发工具链,恰好变更、部署、故障的定义均符合团队实践的那一个。 不同工具所支持的数据源和指标计算方式各有差异 而这也正是我们建设并开源了研发数据平台 Apache DevLake 的原因。我们认为,无论是研发工具链的接入以及研发数据的定义,都应当保留一定程度的开放和灵活性。团队根据实际需求收集并治理研发数据,保障数据可靠,在此基础上度量 DORA 指标,并获得有价值的改进洞见。 开源的模式降低了研发数据的治理成本,同时也吸引更多团队参与建设,不断丰富可接入的数据源和数据计算方法,让平台越用越好用。基于 Apache DevLake 快速度量 DORA 指标
正如上文所说,度量 DORA 指标前,你需要先拿到三个研发数据:- 变更:大多数团队是通过 Pull Requet 来识别一次变更,因此变更的数据将来自代码托管工具,DevLake目前已支持 GitHub、GitLab 和 BitBucket
- 部署:部署的数据来自 CI/CD工具。DevLake 目前已支持 Jenkins、GitHub Actions 和 GitLab CI,CircleCI 正在开发中
- 故障:故障的数据可以来自事务管理工具中的某类型事务,例如
Crash
或Incident
;也可以直接来自监控工具,DevLake 将很快支持 PagerDuty 和 Sentry。
- 配置 DevLake:使用 Docker Compose、Kubernetes、Helm 或 Temporal
- 收集数据:借助 DevLake 插件接入研发工具链,不需要复杂的集成与适配,就可以把需求、开发、测试、交付各个环节研发数据归于一处
- 数据看板开箱即用:DevLake 预置了许多指标和数据看板并通过 Grafana 来呈现,其中包括 DORA 指标和相应看板
- 自定义:如果你还需要进一步分析,例如探查某个 DORA 指标异常的原因,只需要几行 SQL 查询就可以创建新的指标或数据看板
标签:DevLake,15,研发,指标,DORA,团队,度量 From: https://www.cnblogs.com/devlake/p/17028593.html