部署频率是什么
部署频率(Deployment Frequency)统计单位时间内成功发布到生产的次数,反映交付吞吐,是 DORA 四项交付指标之一,与变更前置时间共同描述流动速度。统计前必须先固定口径三件事:一次部署按什么事件计(一次发布事件还是每个制品);回滚事件是否单列(建议单列,避免用回滚抬高频率);多环境是否只统计生产(预发不计入)。最可靠的数据来源是发布/部署系统的事件流或流水线成功记录,其次是打部署标记(tag、部署记录表);人工填报最容易遗漏和美化,只能作为过渡手段。
基本信息
| 口径 | 成功进入生产的发布次数,按天或周统计 |
|---|---|
| 采集 | 部署系统事件、流水线成功记录、部署标记 |
| 影响因素 | 批量大小、分支策略、自动化程度 |
| 改善方向 | 减小批次、提升自动化、提前质量反馈 |
| 联动指标 | 与前置时间、变更失败率一起看,防单指标失真 |
典型使用场景
- 建立基线:先测量现状再定改进目标,避免拍脑袋承诺频率。
- 从月到周:减小发布批次是提升频率的主抓手,需求拆小后自然变快。
- 瓶颈诊断:频率低且前置时间长,通常卡在评审等待与固定发布窗口。
- 对外汇报:用趋势而非单点数字说明交付能力变化,配合质量指标一起讲。
- 质量联防:频率上升时盯住失败率与恢复时长,防止靠超额发布掩盖质量问题。
- 自动化采集:用部署事件表替代手工统计,保证口径一致、可追溯。
从部署事件表统计
从部署事件表统计
SELECT date_trunc('week', deployed_at) AS wk,
COUNT(*) AS deploys
FROM deploy_events
WHERE environment = 'prod' AND status = 'success'
GROUP BY 1 ORDER BY 1; -- 回滚单列: 加 event_type 过滤口径决策点
| 议题 | 选项 | 建议 |
|---|---|---|
| 计数对象 | 发布事件 / 每个制品 | 按团队发布单元固定一种 |
| 回滚 | 计入 / 单列 | 单列,防止频率虚高 |
| 环境 | 只算生产 / 含预发 | 只算生产 |
| 时间粒度 | 按天 / 按周 | 按周看趋势更稳定 |
频率高低本身不是目标:拆分无意义部署刷数字没有价值,指标要与质量指标成对解读。
Accelerate 研究显示高频小批量与稳定性可以同时出现:小批次本身降低单次变更的风险暴露。
在发布脚本里回调部署事件接口或写记录表,让数据自动产生,比事后补账可靠得多。