QAOPS8 补齐 SLO 与 DORA 指标

这个提交包含在:
2026-05-13 18:15:30 +08:00
父节点 ec276e8089
当前提交 0639e4a58c
共修改 3 个文件,包含 28 行新增和 3 行删除
+12 -1
查看文件
@@ -2,7 +2,18 @@
更新时间:2026-02-12
## 指标口径
## QAOPS8 四指标口径
| 指标 | 定义 | 当前轻量数据源 | 使用边界 |
| --- | --- | --- | --- |
| 部署频率 | 单位时间内完成受控部署的次数 | git commit、部署记录、Runbook 部署摘要 | 只统计经过门禁和记录的部署 |
| 变更前置时间 | 从需求或 Issue 进入执行到部署或验收完成的时间 | Issue CSV 状态时间、git commit、最终验收记录 | 当前先按人工记录统计,不引入重平台 |
| 变更失败率 | 部署或回归后引发失败、回滚、热修的变更比例 | 回归 JSON、热修记录、Issue Notes | 现有 CFR 脚本优先覆盖此项 |
| 服务恢复时间 | 从故障确认到恢复并通过验证的时间 | 事故记录、回滚记录、`/ready` 和门禁复检时间 | 当前作为演练和事故复盘指标,不作为个人绩效 |
DORA 指标只用于交付系统改进,不作为个人绩效指标;不能为追求指标而降低测试、审计或回滚要求。
## CFR 指标口径
- `run_cfr = failed_runs / total_runs`
- `commit_cfr = failed_commits / total_commits`
+14
查看文件
@@ -36,6 +36,15 @@
- 分母:`/api/system/feature-flags/:key` 总调用次数
- 目标:验证治理入口稳定性,避免灰度期管理面不稳定
### SLI-4:关键业务流门禁成功率(QAOPS8)
- 指标定义:
- 分子:`run-business-flow-gates.sh` 中通过的核心业务域数量。
- 分母:本次门禁要求执行的核心业务域数量。
- 当前核心业务域:`reimbursement`、`approval`、`leave`、`procurement`、`governance`。
- 统计口径:以 `artifacts/qa-flow/business-flow-<timestamp>/summary.txt` 的逐组 PASS / FAIL 为准。
- 目标用途:R7E Go/No-Go、发布候选评审和回归失败定位。
## 3. SLO 目标
### SLO-A(可用性)
@@ -56,6 +65,11 @@
- 目标:Feature Flag 更新成功率 >= 99.5%
- 说明:若低于目标,暂停高风险灰度变更(ERP/验真)
### SLO-D(关键业务流门禁)
- 目标:进入 R7E Go/No-Go 或发布候选前,要求范围内核心业务流门禁阻断失败数为 0。
- 说明:该项是上线门禁口径,不替代正式线上可用性 SLA;若任一核心业务域失败,结论应为 Pause 或 No-Go。
## 4. 错误预算策略
### 预算分级
@@ -11,8 +11,8 @@ QAOPS8-8,移动矩阵回归策略,"把移动浏览器和企业微信 WebView 视
QAOPS8-9,证据归档规范,"定义 QAOPS8 证据路径、命名、保留和引用规则,避免报告、截图、日志散落。","1) 自动化报告、截图、命令输出和人工结论有稳定路径;2) 不提交大体积临时产物;3) Issue Notes 可追溯证据;4) 隐私和密钥不入库。","流程级验证:rg -n 'output/playwright|artifacts/qa-flow|证据|截图|trace|日志' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv。",rg|manual,DONE,DONE,DONE,docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md|artifacts|output,"[""QAOPS8-1""]",rg 复核通过;.gitignore 已忽略 artifacts、output、client/test-results 和 client/playwright-report;证据只在 Issue Notes 引用路径。
QAOPS8-10,备份策略,"收敛上线前备份策略,包括数据库、上传附件、配置、部署包和恢复责任。","1) 备份对象清楚;2) 频率和保留期清楚;3) 密钥和配置备份不入库;4) 备份成功有可验证证据。","流程级验证:人工核对 docs/trialrun/OPS7运维交接Runbook.md 与 docs/ops/非功能基线.md;不得执行生产备份命令。",manual|rg,DONE,DONE,DONE,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-0""]",已在 OPS7 Runbook 增加 QAOPS8 备份策略基线;覆盖数据库、附件、运行配置、部署包、触发频率、保留口径、验证方式和仓库记录规则;未执行生产备份命令。
QAOPS8-11,恢复演练方案,"设计恢复演练方案,明确 RTO、RPO、演练窗口、验证步骤和回滚边界。","1) 演练目标和范围明确;2) 不在未确认时改生产;3) 恢复验证步骤可复现;4) 失败有停止条件。","流程级验证:人工核对恢复演练步骤;必要时在隔离环境演练并记录证据。",manual,DONE,DONE,DONE,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-10""]",已在 OPS7 Runbook 增加 QAOPS8 恢复演练方案;执行前必须确认窗口、负责人、回滚联系人和停止条件;RTO/RPO 先记录演练实测值,不承诺正式 SLA。
QAOPS8-12,SLO 和错误预算,"建立 OA MVP 当前可用性、接口成功率、关键业务流成功率和错误预算口径。","1) SLI、SLO、统计窗口和错误预算清楚;2) 不承诺无法监控的指标;3) 与用户体验和试运行风险对应;4) 违反预算有动作。","流程级验证:rg -n 'SLO|错误预算|SLI|可用性|延迟|成功率' docs/ops/SLO错误预算.md docs/测试规约与回归门禁.md。",rg|manual,TODO,TODO,TODO,docs/ops/SLO错误预算.md|docs/测试规约与回归门禁.md,"[""QAOPS8-1""]",参考 Google SRE SLI/SLO/error budget;先轻量落地,不引入重型平台。
QAOPS8-13,DORA 交付指标基线,"建立部署频率、变更前置时间、变更失败率和恢复时间的轻量采集口径。","1) 四项指标定义清楚;2) 能从 git、Issue、部署记录或事故记录追溯;3) 不为指标牺牲交付质量;4) 只做轻量统计。","流程级验证:rg -n 'DORA|部署频率|前置时间|变更失败率|恢复时间|CFR|MTTR' docs/ops/DORA指标.md docs/开发交付与变更管理规约.md。",rg|manual,TODO,TODO,TODO,docs/ops/DORA指标.md|docs/开发交付与变更管理规约.md,"[""QAOPS8-1""]",参考 DORA 四指标;作为治理改进,不作为个人绩效指标。
QAOPS8-12,SLO 和错误预算,"建立 OA MVP 当前可用性、接口成功率、关键业务流成功率和错误预算口径。","1) SLI、SLO、统计窗口和错误预算清楚;2) 不承诺无法监控的指标;3) 与用户体验和试运行风险对应;4) 违反预算有动作。","流程级验证:rg -n 'SLO|错误预算|SLI|可用性|延迟|成功率' docs/ops/SLO错误预算.md docs/测试规约与回归门禁.md。",rg|manual,DONE,DONE,DONE,docs/ops/SLO错误预算.md|docs/测试规约与回归门禁.md,"[""QAOPS8-1""]",已在 SLO 错误预算文档补 QAOPS8 关键业务流门禁成功率 SLI 和 SLO-D;作为上线门禁口径,不替代正式线上 SLA。
QAOPS8-13,DORA 交付指标基线,"建立部署频率、变更前置时间、变更失败率和恢复时间的轻量采集口径。","1) 四项指标定义清楚;2) 能从 git、Issue、部署记录或事故记录追溯;3) 不为指标牺牲交付质量;4) 只做轻量统计。","流程级验证:rg -n 'DORA|部署频率|前置时间|变更失败率|恢复时间|CFR|MTTR' docs/ops/DORA指标.md docs/开发交付与变更管理规约.md。",rg|manual,DONE,DONE,DONE,docs/ops/DORA指标.md|docs/开发交付与变更管理规约.md,"[""QAOPS8-1""]",已在 DORA 指标文档补部署频率、变更前置时间、变更失败率、服务恢复时间四指标;当前轻量追溯 git、Issue、部署记录和事故记录。
QAOPS8-14,安全发布前检查,"建立发布前安全检查,包括权限、敏感信息、日志、配置、依赖和等保相关底线。","1) 不泄露 token、密码、票据和个人隐私;2) 权限直连审计有证据;3) 日志不记录敏感明文;4) 高风险项进入 Go/No-Go。","流程级验证:node scripts/qa/audit-docs.mjs --check-links;rg -n 'password|token|secret|密钥|权限直连|敏感' docs scripts issues。",node|rg|manual,TODO,TODO,TODO,scripts/qa/audit-docs.mjs|docs|scripts|issues,"[""QAOPS8-9""]",参考 GB/T 22239-2019 的安全管理和运维底线;不声明完成等保测评。
QAOPS8-15,发布 Runbook 收敛,"把发布前检查、部署步骤、验证步骤、暂停条件和沟通责任收敛到现有 Runbook。","1) 发布步骤可按顺序执行;2) 预检、部署、验证、暂停、回滚边界清楚;3) 不新增冲突文档;4) 用户可审计。","流程级验证:rg -n '发布|预检|部署|验证|暂停|回滚|Runbook' docs/trialrun/发布试运行准备清单.md docs/trialrun/OPS7运维交接Runbook.md docs/试运行与自动化验证手册.md。",rg|manual,TODO,TODO,TODO,docs/trialrun/发布试运行准备清单.md|docs/trialrun/OPS7运维交接Runbook.md|docs/试运行与自动化验证手册.md,"[""QAOPS8-5"",""QAOPS8-6"",""QAOPS8-10""]",参考 safe deployment 思路;生产配置变更前必须再次确认。
QAOPS8-16,回滚演练窗口,"确认回滚演练窗口、负责人、触发条件、数据保护和恢复验证步骤。","1) 窗口和负责人确认;2) 回滚脚本或步骤有只读预检;3) 数据保护优先;4) 演练结果可追溯。","流程级验证:人工确认回滚窗口;必要时先在非生产环境执行。",manual,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md,"[""QAOPS8-11"",""QAOPS8-15""]",未获确认前不得执行生产回滚演练。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
11 QAOPS8-9 证据归档规范 定义 QAOPS8 证据路径、命名、保留和引用规则,避免报告、截图、日志散落。 1) 自动化报告、截图、命令输出和人工结论有稳定路径;2) 不提交大体积临时产物;3) Issue Notes 可追溯证据;4) 隐私和密钥不入库。 流程级验证:rg -n 'output/playwright|artifacts/qa-flow|证据|截图|trace|日志' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv。 rg|manual DONE DONE DONE docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md|artifacts|output ["QAOPS8-1"] rg 复核通过;.gitignore 已忽略 artifacts、output、client/test-results 和 client/playwright-report;证据只在 Issue Notes 引用路径。
12 QAOPS8-10 备份策略 收敛上线前备份策略,包括数据库、上传附件、配置、部署包和恢复责任。 1) 备份对象清楚;2) 频率和保留期清楚;3) 密钥和配置备份不入库;4) 备份成功有可验证证据。 流程级验证:人工核对 docs/trialrun/OPS7运维交接Runbook.md 与 docs/ops/非功能基线.md;不得执行生产备份命令。 manual|rg DONE DONE DONE docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md ["QAOPS8-0"] 已在 OPS7 Runbook 增加 QAOPS8 备份策略基线;覆盖数据库、附件、运行配置、部署包、触发频率、保留口径、验证方式和仓库记录规则;未执行生产备份命令。
13 QAOPS8-11 恢复演练方案 设计恢复演练方案,明确 RTO、RPO、演练窗口、验证步骤和回滚边界。 1) 演练目标和范围明确;2) 不在未确认时改生产;3) 恢复验证步骤可复现;4) 失败有停止条件。 流程级验证:人工核对恢复演练步骤;必要时在隔离环境演练并记录证据。 manual DONE DONE DONE docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md ["QAOPS8-10"] 已在 OPS7 Runbook 增加 QAOPS8 恢复演练方案;执行前必须确认窗口、负责人、回滚联系人和停止条件;RTO/RPO 先记录演练实测值,不承诺正式 SLA。
14 QAOPS8-12 SLO 和错误预算 建立 OA MVP 当前可用性、接口成功率、关键业务流成功率和错误预算口径。 1) SLI、SLO、统计窗口和错误预算清楚;2) 不承诺无法监控的指标;3) 与用户体验和试运行风险对应;4) 违反预算有动作。 流程级验证:rg -n 'SLO|错误预算|SLI|可用性|延迟|成功率' docs/ops/SLO错误预算.md docs/测试规约与回归门禁.md。 rg|manual TODO DONE TODO DONE TODO DONE docs/ops/SLO错误预算.md|docs/测试规约与回归门禁.md ["QAOPS8-1"] 参考 Google SRE SLI/SLO/error budget;先轻量落地,不引入重型平台。 已在 SLO 错误预算文档补 QAOPS8 关键业务流门禁成功率 SLI 和 SLO-D;作为上线门禁口径,不替代正式线上 SLA。
15 QAOPS8-13 DORA 交付指标基线 建立部署频率、变更前置时间、变更失败率和恢复时间的轻量采集口径。 1) 四项指标定义清楚;2) 能从 git、Issue、部署记录或事故记录追溯;3) 不为指标牺牲交付质量;4) 只做轻量统计。 流程级验证:rg -n 'DORA|部署频率|前置时间|变更失败率|恢复时间|CFR|MTTR' docs/ops/DORA指标.md docs/开发交付与变更管理规约.md。 rg|manual TODO DONE TODO DONE TODO DONE docs/ops/DORA指标.md|docs/开发交付与变更管理规约.md ["QAOPS8-1"] 参考 DORA 四指标;作为治理改进,不作为个人绩效指标。 已在 DORA 指标文档补部署频率、变更前置时间、变更失败率、服务恢复时间四指标;当前轻量追溯 git、Issue、部署记录和事故记录。
16 QAOPS8-14 安全发布前检查 建立发布前安全检查,包括权限、敏感信息、日志、配置、依赖和等保相关底线。 1) 不泄露 token、密码、票据和个人隐私;2) 权限直连审计有证据;3) 日志不记录敏感明文;4) 高风险项进入 Go/No-Go。 流程级验证:node scripts/qa/audit-docs.mjs --check-links;rg -n 'password|token|secret|密钥|权限直连|敏感' docs scripts issues。 node|rg|manual TODO TODO TODO scripts/qa/audit-docs.mjs|docs|scripts|issues ["QAOPS8-9"] 参考 GB/T 22239-2019 的安全管理和运维底线;不声明完成等保测评。
17 QAOPS8-15 发布 Runbook 收敛 把发布前检查、部署步骤、验证步骤、暂停条件和沟通责任收敛到现有 Runbook。 1) 发布步骤可按顺序执行;2) 预检、部署、验证、暂停、回滚边界清楚;3) 不新增冲突文档;4) 用户可审计。 流程级验证:rg -n '发布|预检|部署|验证|暂停|回滚|Runbook' docs/trialrun/发布试运行准备清单.md docs/trialrun/OPS7运维交接Runbook.md docs/试运行与自动化验证手册.md。 rg|manual TODO TODO TODO docs/trialrun/发布试运行准备清单.md|docs/trialrun/OPS7运维交接Runbook.md|docs/试运行与自动化验证手册.md ["QAOPS8-5","QAOPS8-6","QAOPS8-10"] 参考 safe deployment 思路;生产配置变更前必须再次确认。
18 QAOPS8-16 回滚演练窗口 确认回滚演练窗口、负责人、触发条件、数据保护和恢复验证步骤。 1) 窗口和负责人确认;2) 回滚脚本或步骤有只读预检;3) 数据保护优先;4) 演练结果可追溯。 流程级验证:人工确认回滚窗口;必要时先在非生产环境执行。 manual TODO TODO TODO docs/trialrun/OPS7运维交接Runbook.md ["QAOPS8-11","QAOPS8-15"] 未获确认前不得执行生产回滚演练。