1、规则库的起源:为什么需要质量监控规则库?从一次线上事故说起

1.1 那个让我失眠的凌晨三点

我记得很清楚,那是去年双十一大促后的第三天。凌晨两点四十七分,手机突然像发了疯一样震动——告警电话、工作群、值班机器人,所有渠道同时炸了。

我迷迷糊糊点开监控大屏,看到支付成功率曲线从 99.97% 直接跳水到 72.3%。说实话,那一瞬间我后背的汗就下来了。干了这么多年质量保障,这种断崖式下跌意味着什么,我心里太清楚了——线上正在丢单,而且丢得很严重。

紧急拉群、回滚、止损。等一切平息下来已经是早上六点。复盘时发现,事故根因其实特别简单:一个刚上线三天的营销活动,在订单金额计算时用了新的舍入逻辑,导致部分优惠券叠加场景下出现 0.01 元的精度误差。这个误差在单笔订单上几乎不可见,但乘以千万级流量,直接造成了近百万的资损。

更让我难受的是——这个场景,我们其实测过。测试用例里写了,回归也跑了。但问题是,没人意识到这个舍入逻辑会跟已有的三条规则产生冲突。说白了,我们缺的不是测试,缺的是一个能把所有质量规则串起来、持续更新的机制。

核心教训:单点测试永远防不住组合爆炸。质量规则必须体系化、持续迭代,否则就是在赌运气。

1.2 事故背后的三个真相

那次事故之后,我带着团队把过去一年所有的线上事故翻了个底朝天。一共 47 起,分类整理后,我发现了一个规律——

事故类型 数量 占比 共同特征
规则冲突 18 38.3% 新规则与旧规则互斥,无人知晓
规则遗漏 14 29.8% 已知场景未抽象成规则,漏测
规则过时 9 19.1% 业务已变更,规则未更新
其他 6 12.8% 环境、数据、配置等

看到这个数据,我脑子里蹦出一个问题:为什么我们明明有测试用例、有checklist、有各种规范,还是挡不住这些事故?

原因其实就三个——

  • 规则是散的:散落在需求文档、测试用例、代码注释、甚至某个人的聊天记录里。没人知道全貌。
  • 规则是死的:写下来就没人管了。业务变了、技术栈换了,规则还躺在一年前的wiki里吃灰。
  • 规则是孤立的:前端规则、后端规则、数据规则各管各的。组合起来会出什么问题?没人说得清。

我个人的习惯:每次事故复盘,我都会问三个问题——这条规则之前有没有?如果有,为什么没拦住?如果没有,为什么没抽象出来?这三个问题,基本能挖出规则库的所有漏洞。

1.3 从「救火」到「防火」:规则库的定位

那次事故之后,我一直在想一个问题:质量保障到底是在救火,还是在防火?

说实话,大部分团队都在救火。线上出问题了,紧急修复、复盘、加用例。然后下一个版本,同样的套路再来一遍。你想想看,这跟消防员天天忙着灭火,却没人去检查消防通道有没有被堵住,有什么区别?

规则库要解决的,就是这个「防火」的问题。它不是又一套文档,而是一个持续运转的机制——

  1. 沉淀:把每一次事故、每一个坑、每一条经验,变成可执行的规则。
  2. 关联:让规则之间能互相感知。新加一条规则,系统自动告诉你跟哪三条已有规则可能冲突。
  3. 验证:规则不是写出来就完了。每次发布前,自动跑一遍规则集,过不去的直接卡住。
  4. 迭代:业务在变,规则也得跟着变。定期清理过时规则,补充新规则。

嗯,这里要注意——规则库不是银弹。它解决的是「已知风险的体系化管理」,而不是「未知风险的探索」。但说实话,能把已知风险管好,已经能挡住 80% 以上的线上事故了。

1.4 规则库的核心要素

经过几次迭代,我总结出规则库必须包含的五个要素。少了任何一个,这个库都跑不起来——

要素 说明 我踩过的坑
规则定义 清晰的触发条件、预期结果、优先级 曾经把规则写得像散文,执行的人根本看不懂
规则分类 按领域、层级、风险等级划分 一开始不分级,结果低风险规则淹没了高风险规则
规则关联 记录规则之间的依赖、互斥、覆盖关系 两条规则互相矛盾,跑了半年没人发现
规则版本 每条规则都有版本号、生效时间、变更记录 回滚时不知道应该回退到哪个版本的规则集
规则验证 自动化验证规则是否被遵守 规则写得好好的,但没人执行,等于没有

我曾经犯过的错:一开始把规则库做成了「百科全书」,什么规则都往里塞。结果规则太多,执行成本太高,团队根本跑不动。后来我学乖了——规则库不是越全越好,而是越精越好。每条规则都要能回答一个问题:这条规则如果没了,会不会出事?

1.5 规则库的演进路径

规则库不是一步到位的。我见过很多团队一上来就想搞个大而全的平台,结果半年过去了还在画原型。我的建议是:从小做起,快速迭代。

下面这张图是我个人比较推荐的演进路径——

规则库演进路径 阶段1:文档化 wiki/Excel管理 阶段2:结构化 分类+标签+关联 阶段3:自动化 CI/CD集成 阶段4 智能化 关键原则: 不要跳过阶段。文档化都没做好就搞自动化,只会把混乱加速。 文档化阶段 • 用wiki记录规则 • 人工维护 • 适合小团队 • 成本低,见效快 结构化阶段 • 分类分级管理 • 建立关联关系 • 版本控制 • 定期评审机制 自动化阶段 • CI/CD自动触发 • 规则自动校验 • 失败自动拦截 • 报告自动生成 智能化 • 规则推荐 • 冲突检测 • 覆盖率分析 • 趋势预测

我个人比较推荐的做法是:先花两周把现有的规则全部文档化,哪怕是用 Excel 都行。然后每周花半天做一次规则评审,把重复的、过时的、冲突的清理掉。等规则稳定了,再考虑上工具、上自动化。

1.6 本章小结

回到最开始的问题:为什么需要质量监控规则库?

说白了,就是因为我们不能每次都拿线上事故当学费。一次事故的成本,可能是一个团队一个月的加班,可能是几百万的资损,更可能是用户的信任。

规则库不是什么高大上的东西。它就是一个机制——把经验变成规则,把规则变成习惯,把习惯变成文化。从那个凌晨三点的电话开始,我花了整整两年才把这件事想明白。希望你能比我快一点。