工程化要点
把篇章 / 核心原理 / 场景导读里的「工程化要点」去重提炼为平台可执行门禁:发布回滚、可观测、容量、数据、缓存、调用治理、AI 评测、安全供应链八组共 65 卡。与方法论「怎么想」互补——本篇回答「不上线会出事的红线是什么」。
门禁是器;怎么想见 核心方法论。以器代术是四种错位之一。
每张 G 卡都按「可检查、可回滚、可观测」三问自检:没有证据链不上手段;没有回滚路径不上变更;没有卡点指标不扩量。门禁不是口号,而是变更单里可勾选的字段与上线评审里可追问的证据。
- 变更面:代码 / 配置 / 数据 / 模型与提示词一律当发布;灰度比例表、卡点指标、一键回滚三维可退;流量染色与回滚后数据修复写进变更单。
- 证据面:Traces/Metrics/Logs 三支柱默认交付;排障标准动作与季度演练;告警可行动并绑定 Runbook;变更单号进 Trace baggage。
- 容量面:应用池化与编排配额同一模型;拒绝路径用户可感;多租户配额与依赖拓扑联动;大促清单未勾完不上峰值。
- 数据与一致面:DDL/修复可回滚、SQL 审核闭环、影子表观察期;缓存失败可降级、一致窗口进契约、热/大 key 专项。
- 调用与智能面:同步超时可加总、熔断半开观察窗、Outbox/CDC 对账;AI 制品版本化、黄金集、工具副作用与成本配额同级卡点。
- 安全面:威胁建模先行、密钥双写轮换、SBOM/CVE 时限与豁免到期阻断;生产访问审计可抽检。
- 思维口径见核心方法论 M04 / M06 / M10 / M11;本篇写成勾选式门禁与变更单字段。
- 发布回滚对齐 M06.06 / M11.01;证据链对齐 M15.02;超时/对账/缓存/AI 分别对齐 M11.02 / M11.03 / M07.02 / M14.01。
- 深度问答与场景篇的工程化导读在此收口;安全细节对照服务端安全 Checkpoint;事故翻车叙事见生产踩坑(K)。
- 导图页补强八组互锁与每卡红线/反模式/清单;三层正文与验收话术以本页为准。
- 按下周变更类型选组:发版 G01、排障 G02、大促 G03、改表 G04、缓存 G05、同步/双写 G06、AI G07、安全 G08。
- 每卡三层:核心洞察(红线与反模式)→ 原理映射(为何 / 与 M 卡同构)→ 工程表达(变更单字段、验收、话术)。
- 评审追问:证据从哪来?回滚入口与 RTO?卡点指标是什么?失败时用户可感是什么?组内卡通常互锁(如 G01 灰度依赖 G02 指标)。
阅读建议:先扫八组标题建立索引,再按变更类型深挖三张卡;组内三卡通常互锁(例如 G01 灰度依赖 G02 指标,G05 降级依赖 G03 回源配额)。写变更单时把「工程表达」层的清单直接贴进模板。导图页用于快速回忆红线与反模式,细节以本页三层正文为准。
一、G01 发布回滚与变更门禁
本组管变更怎么上、怎么退:发布三要素(灰度·卡点·回滚)、配置/框架升级当发布、变更窗口与错误预算冻结、金丝雀自动回滚阈值、变更单强制字段、流量染色一致性,以及回滚后数据修复门禁。没有演练过的回滚路径等于没有回滚;与 M06.06 / M11.01 互为思维与门禁。
高风险变更默认按「分批放量 + 指标卡点 + 一键回滚」执行;没有演练过的回滚路径等于没有回滚。发布不是把包推上去,而是把爆炸半径可控地扩大,并在任一卡点失败时退回已知好版本。
三要素缺一,变更单即不合格:灰度比例表(含观察窗口)、卡点指标与阈值(业务成功率优先)、回滚命令/开关(含配置与流量维)。「进程起来了」不是卡点。
反模式:全量一把梭;只回滚镜像留下有毒配置;卡点只看 CPU/存活探针;错误预算已耗尽仍继续发版;回滚从未在预发演练。
灰度档位之间要有明确停留与否决权:观察窗口未结束不得人工「觉得没事就扩」;否决权默认交给卡点指标与错误预算,而不是现场最高职级。
回滚演练必须覆盖「配置+镜像+流量」三联:只演练 kubectl rollout undo 而配置中心仍是有毒版本,演练合格也是假合格。
对应 SRE 错误预算与金丝雀:流量或实例分批(如 1%→5%→25%→100%),卡点看错误率、延迟 P99、关键业务成功率与依赖饱和,而不是容器 Ready。
回滚是三维能力——代码/镜像、配置、流量路由——任一维不可退,整体不可退。与方法论 M06.06 回滚优先、M11.01 变更可回滚同构:回滚是默认能力,不是失败丢脸。
爆炸半径由批大小 × 暴露时长决定;观察窗口要覆盖依赖传播与缓存刷新,过短会「绿着绿着炸」。失败时优先退回,再离线分析,避免在灰度上现场改代码。
金丝雀的统计学意义:批太小看不出差异,批太大爆炸半径失控。比例表要同时写清「最小可观测流量」与「最大可接受损失」,并与业务峰值日历对齐。
卡点指标分层:L1 用户可感(成功率/RT)、L2 依赖饱和(池拒绝/下游错误)、L3 资源(CPU/内存)——L3 只能辅助,不能单独放行。
变更单模板固定附:灰度比例与每档停留时间、卡点指标/阈值/看板链接、回滚入口与 RTO、最近一次回滚演练记录。卡点未过不得扩量;错误预算耗尽冻结非紧急发布。
- 表达顺序:先退路与观察窗口,再功能清单。
- 追问「出了问题怎么办」:当场指出回滚入口、影响面、预计恢复时间。
- 验收:预发至少完成一次真实回滚演练(含配置回退)。
关联:配置变更见 G01.02;依赖升级见 G01.03;证据链见 G02;治理参数回滚见 G06.02。
变更单「回滚」栏必填:入口链接、执行人、预计 RTO、演练日期、已知限制(例如不可逆 DDL 则写补偿而非回滚)。评审口头说得出但写不出的,视为未准备。
发布值班话术:「当前档位 / 已观察时长 / 卡点红绿 / 下一步扩或退」。禁止用功能演示代替卡点汇报。
热更新与配置推送必须按发布管控:审批、灰度、快速关停与本地快照兜底。配置中心一次全量推送,杀伤力往往大于发版——「只改个开关」若影响面是全集群,就必须与发版同级门禁。
有毒配置(错误限流、错误开关、错误路由)可以在秒级制造全域事故;因此关停路径的 SLA 应严于发版回滚。
反模式:生产控制台随手改;无快照全量推;客户端无本地兜底导致配置中心抖动拖垮核心链路;动态开关不进变更单。
配置变更的爆炸半径经常大于代码:一次错误的限流阈值或开关默认值可以在秒级打满或打空全集群,而发版至少还有构建与镜像传播延迟。
本地快照不是可选项:配置中心故障或网络分区时,客户端必须能用上次成功快照继续服务,并暴露「使用降级快照」信号。
配置中心是关键依赖:客户端要有本地缓存/快照、推送失败降级、订阅隔离;长连接抖动不得阻塞业务线程。
与 M12.06「代理边界与配置契约」一致:配置项的语义、默认值、生效范围、类型校验写进契约,禁止口头约定与隐式魔法值。
灰度配置与灰度流量可独立:先小范围实例吃新配置,再扩面;回滚优先回到上一版本快照,而不是「再推一版修好」。
配置项分级:P0(鉴权/限流/路由/数据源)必须灰度+双人;P1(非关键开关)可快速通道但仍进变更单;禁止无级别的「都是开关」。
推送模型要区分:长轮询/推送失败时的退避、订阅风暴隔离、单 key 与命名空间级回滚。回滚粒度越粗,误伤越大,越要灰度。
评审配置项时同步评审:生效范围、灰度策略、回滚/关停开关、是否需要双写观察期、失败时客户端行为。
- 禁止生产控制台无单变更;动态开关也要变更单号。
- 上线核对:推送成功率、订阅滞后、关停演练耗时。
- 高危项(限流、鉴权、路由)默认双人复核。
关联:发布三要素 G01.01;治理参数 G06.02;密钥轮换 G08.02(密钥也是配置的一类)。
上线后 15 分钟核对:推送成功率、订阅滞后分位、客户端快照版本分布、关停开关可用性探测。
控制台权限:生产写权限默认关闭,临时开启有工单与自动回收;审计日志可还原「谁在何时改了何值」。
大版本升级(Boot / Spring / JDK / 中间件客户端)用契约测试 + 金丝雀;弃用 API、默认行为变化、序列化/校验差异必须进回归清单。「编译过了」不等于行为兼容。
默认值、自动配置顺序、校验与异常映射常在运行时才爆;Native Image / AOT 还要覆盖反射与资源白名单。
反模式:业务私锁雪花版依赖;CVE 快车道跳过最小回归;只升库不看 Release Note 的 Breaking Changes;无回滚镜像的「一次性升级」。
升级的隐藏成本在「默认行为」:Jackson 命名策略、Bean 校验顺序、HTTP 客户端连接池默认、JDK 字符串与 GC 行为,都可能在流量下才显现。
私锁版本的真正风险是安全补丁跟不上平台 BOM;时间盒退出写进 ADR,到期未退出视为技术债超期。
基线 BOM 由平台抬升,业务少私锁版本;Breaking change 用兼容层或双跑,时间盒退出。安全补丁与功能升级分流:CVE 可走快车道,但仍需最小回归与可回滚镜像。
契约测试覆盖 HTTP/消息/DB 行为;关键路径压测验证资源与线程模型变化(虚拟线程、连接池默认值)。
与 M05 Java 生态思维、G08.03 供应链可追溯互补:升级既是行为风险也是供应链风险。
契约测试要覆盖:错误码与异常映射、序列化兼容(含未知字段)、消息 schema、DB 访问层行为。只测 happy path 的升级门禁是穿孔门禁。
Native/AOT:反射、资源、动态代理白名单进回归;缺失时的失败应在预发暴露,而不是生产 ClassNotFound。
升级门禁清单:契约测试绿、关键路径压测、金丝雀错误预算、回滚镜像就绪、弃用 API 清单、默认行为 diff。
- 评审话术:「这次升级打破了哪些默认假设?」答不上来就补测试。
- 私锁版本须说明退出计划与时间盒。
- 发布后观察窗口覆盖序列化/校验相关错误码。
关联:G01.01 金丝雀;G08.03 SBOM/CVE;篇章 Spring/Boot 升级场景。
升级变更单附:Release Note Breaking 摘要、弃用 API 清单、契约测试报告、金丝雀计划、回滚镜像 digest。
快车道 CVE:最小回归集(启动+核心路径+安全相关用例)仍不可少;快车道不是无车道。
错误预算耗尽或变更窗口外,非紧急变更默认冻结;紧急变更走加急通道但仍要灰度与回滚演练记录。
SRE 错误预算把可靠性变成可消耗资源;耗尽即信号:优先稳定性而非功能。变更日历与业务高峰对齐。
门禁:错误预算红线、变更窗口表、加急审批人、冻结解除条件。评审问「现在能不能发」先看预算板。
金丝雀阶段必须绑定可自动回滚的客观信号(错误率、延迟、业务成功数);人工「感觉还行」不能替代阈值。
灰度是实验:实验没有停止条件就不是实验。信号要业务可感,避免只看 CPU。与错误预算、变更窗口互锁。
门禁:金丝雀比例表、自动回滚阈值、人工覆盖审批人、回滚演练记录。评审问「触发什么立刻回」。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
变更单缺回滚点、观察指标、负责人不得合入发布流水线。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
变更是契约:字段不全等于不可审计。与灰度/回滚互锁。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:模板校验、缺字段阻断、抽检变更单完整率。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
灰度流量必须端到端染色(网关→服务→MQ→任务),否则观察窗失真。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
染色丢失=对照组污染。异步边界是断裂高发区。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:染色传递验收用例;MQ/线程池包装器清单。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
代码回滚不等于数据回滚;有副作用变更必须附数据修复/补偿方案。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
状态机与外部账单不会随镜像回退。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:修复脚本评审、演练记录、冻结写路径开关。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
二、G02 可观测与排障证据链
本组管出事时证据从哪来、第一步做什么:三支柱默认交付、排障标准动作、告警可行动、采样与成本门禁、变更单号进 Trace baggage、SLO/错误预算看板、日志脱敏采样,以及季度排障演练制度。没有证据链的变更等于赌博;对齐 M06.07 / M15.02 / M11。
日志规范、指标、追踪随脚手架默认接入,禁止上线后补丁式接入。没有证据链的系统,排障只能靠猜,变更只能靠赌——可观测性是发布门禁的前置条件,不是增值选项。
三支柱缺一不可:只有日志没有指标会淹没在噪声里;只有指标没有追踪难定位跨服务;只有追踪没有业务日志缺上下文。
反模式:上线后再「补个 Trace」;TraceId 在 MQ/线程池/定时任务断裂;指标无业务语义只堆 JVM;采样率拍脑袋导致关键故障无跨度。
脚手架默认接入的标准要写成平台契约:日志字段字典、指标命名规范、Trace 采样默认值。业务仓库「各自发挥」会导致排障时无法跨服务拼接。
异步边界是 Trace 断裂高发区:线程池包装、MQ 生产者/消费者、定时任务、Reactive 调度都要有明确的上下文传递方案。
Logs / Metrics / Traces 互补:指标发现异常,追踪定位路径,日志给上下文。统一 TraceId 传播(HTTP、RPC、MQ、线程池、定时任务、异步回调)。
黄金指标按服务类型选型(RED/USE);采样策略在成本与排障完整度之间显式权衡并写入 ADR。与 M06.07 可观测三支柱、M15.02 证据优于经验同构。
结构化日志字段约定(traceId、tenant、变更单号、关键业务键)比「多打点」更重要;无规范的日志等于不可检索的噪声。
成本权衡显式化:全量追踪在高 QPS 下不可承受时,用头部采样+错误必采+慢请求必采;策略写入 ADR 并按季度复盘漏采事故。
业务指标优先于技术指标放行:有「下单成功数」才谈「JVM 堆」;技术指标用于定位,业务指标用于卡点。
新服务 checklist:结构化日志字段、核心业务指标、入口/出口 span、仪表盘与告警模板、采样策略说明。
- 上线评审问「证据从哪来」,而不是「出了事再加」。
- 验收:抽一条真实请求,从入口 Trace 钻到依赖与日志。
- 变更单号写入日志与 Trace baggage,便于回放。
关联:G02.02 排障动作;G02.03 告警可行动;发布卡点指标依赖本卡。
新服务 DoD:仪表盘从模板克隆、告警从模板绑定、示例 Trace 链接贴进 README。缺少任一项不得进生产命名空间。
抽检制度:每月随机抽服务验证「入口到依赖」钻取,失败记平台缺陷或业务债。
故障现场先止血再取证:保留现场(日志段、指标窗口、堆栈/转储、变更单),再离线分析。现场长时间 debug 拉长 MTTR,是最大的反模式。
止血优先级通常写在 Runbook:回滚 > 降级 > 限流 > 扩容 > 重启 > 切流——按业务选,但必须事先写清,禁止临时发明顺序。
反模式:一上来重启丢掉现场;多人并行改配置无指挥;把「感觉像是缓存」当归因;交接班只交感觉不交证据包。
指挥链比工具链更重要:谁有权执行回滚/降级、谁负责对外同步、谁禁止并行变更,必须在故障前写清。工具再全,多人无指挥仍会互踩。
现场保留清单按故障类型预制:OOM 要堆转储策略、死锁要线程栈、流量异常要入口与依赖对比图——不要故障时才想「还要什么证据」。
标准动作链:分区归因(变更?流量?依赖?资源?)→ 采证 → 假设 → 验证 → 固化 Runbook。与线上问题主题 M15.02、M11 证据优于经验对齐。
归因必须能指向证据时间线:变更窗口、流量拐点、依赖错误率、资源饱和曲线。假设要可证伪,验证失败就换假设,禁止死磕第一直觉。
止血与根因修复解耦:先恢复用户可感,再开问题单做根因与改进;两者混为一谈会反复「修一半上线一半」。
分区归因四象限强制过一遍:变更、流量、依赖、资源。跳过任一象限的「秒级结论」事后复盘往往不成立。
假设管理:同时最多保留 2~3 个高优先级假设,每个假设写「如何证伪」;证伪后归档,防止讨论原地打转。
排障话术固定四句:现象与范围、已采证据、当前假设、下一步与回滚条件。交接班移交证据包(看板截图、Trace 链接、变更单、已执行动作)。
- 复盘输出:时间线、根因、改进项负责人与截止日期。
- Runbook 每次事故后回写,禁止只存在聊天记录。
- 重大故障禁止未经指挥的并行变更。
关联:G02.01 证据来源;G02.03 告警驱动首轮;G01 回滚是常见止血手段。
交接班模板:时间线、已执行动作、未验证假设、证据包链接、当前风险。聊天记录不算交接。
复盘区分「触发因素」与「根因」:只改触发不改根因,同类故障会复发;改进项进 backlog 有截止日期与验证方式。
告警必须可行动:有明确责任人、有 Runbook、有抑制与聚合,禁止「只响铃不指向动作」。噪声告警会训练团队忽略真正的火情。
一条告警若从未被处理,就应从系统中删除或降级;告警是稀缺注意力的配额,不是指标的镜子。
反模式:原因猜测型告警(「可能是 GC」)刷屏;无抑制导致同一根因打爆手机;夜间与白天同一阈值;错误预算燃尽只多发邮件不冻结发布。
告警噪声是文化腐蚀剂:团队学会「先静音」之后,真正的火情也会被静音。治理噪声与增加告警同样是可靠性工作。
可行动 = 责任人 + 首要动作 + 升级路径 + Runbook;缺一则降级为看板或工单,不进寻呼。
告警设计:症状(用户可感)优先于原因猜测;阈值与窗口防抖;夜间与工作时间分级。错误预算燃尽应触发发布冻结与升级,而非更多噪声。
关联告警聚合,同一根因合并为一条工单;分页告警与依赖告警要有因果标签,避免「全红」时无人知道先动哪条。
与 M06.07 / M11 对齐:可观测交付的终点是「可行动」,不是「有图」。
症状优先:用户下单失败率优于「某主机 CPU」。原因类告警可作辅助面板,避免寻呼风暴。
抑制与聚合:同一根因窗口内合并;维护窗口抑制;依赖故障时下游告警降级为信息级,避免全员空转。
每条告警附:影响面、首要动作、升级路径、相关看板、Runbook 链接。季度清理无主告警与从未处理的告警。
- 验收:新人按 Runbook 能独立完成首轮处置。
- 新增告警必须同步新增或更新 Runbook。
- 发布冻结条件写入错误预算策略,值班可见。
关联:G02.01 指标来源;G02.02 首轮动作;G01 错误预算冻结发布。
告警目录季度评审:处理次数、平均确认时长、误报率;零处理告警删除或降级。
新人验收:抽三条告警,按 Runbook 完成首轮处置演练并计时,超时则改 Runbook 而不是怪新人。
追踪采样策略必须书面化:头部采样 + 错误必采 + 慢请求必采;禁止拍脑袋全开或全关。
全量追踪在高 QPS 下不可承受;漏采会导致事故不可复盘。成本与排障完整度的权衡写入 ADR。
门禁:采样 ADR 链接、错误必采开关、成本看板、季度漏采复盘。上线核对示例 Trace 可钻取。
每次生产变更必须把变更单号写入日志与 Trace baggage;否则排障无法把「现象」绑回「哪次变更」。
证据链要能回答:这个错误对应哪次发布/配置推送。无关联等于事后猜。
门禁:脚手架默认注入变更单号;抽检一条请求能从 Trace 钻到变更单。缺字段阻断发布。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
每个关键服务必须有对外 SLO 与错误预算看板,发布前先看预算。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
没有预算的稳定性讨论是空谈。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:看板链接进变更单;预算红线自动冻结非紧急变更。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
结构化日志默认脱敏;全量 Debug 采样禁止进生产常开。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
日志既是证据也是泄露面与成本面。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:字段字典、脱敏规则单测、采样策略 ADR。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
季度至少一次真实排障演练(含取证与复盘),否则 Runbook 是假的。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
演练发现断链比故障时发现便宜。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:演练记录、缺口进平台债、未演练服务限制发布级别。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
三、G03 容量与资源预算
本组管系统真实能扛多少:应用与编排同一容量模型、池化与拒绝可观测、大促前演练清单、拒绝路径用户可感、多租户配额与嘈杂邻居、依赖拓扑容量联动、线程池与连接池联合预算、弹性伸缩冷却防抖。清单未勾完不上峰值;对齐 M08.10 / M12.04。
应用线程池/连接池/队列深度与 K8s CPU/内存/HPA 必须同一容量模型,禁止「应用按 QPS 估、编排按感觉设」。两边不一致时,先打满的一侧决定真实容量。
常见失效:池子先拒而 CPU 还空;或 limit 先 OOMKill 而业务还在加并发。容量文档若不能同时解释应用与编排,就是两套幻觉。
反模式:HPA 只盯 CPU;JVM 堆 + 直接内存 + 线程栈超过 limit;压测结论不映射到编排参数变更单。
容量模型要能回答三个数:目标流量、瓶颈资源、拒绝时用户可感。答不出「拒绝时用户看到什么」,说明模型只覆盖了「理想路径」。
JVM 与容器的内存账要算全:堆、元空间、直接内存、线程栈、侧车、页缓存假设;漏算一项就会在高峰以 OOMKilled 形式出现。
容量 = 最小瓶颈资源。利特尔定律与排队论约束在途请求;容器 limit 与 JVM 堆、直接内存、线程栈、侧车要三联(多联)对齐。
HPA 指标要与业务饱和信号一致(队列深度、拒绝率、RT),CPU 不等于业务容量。与 M08.10 容量定律、M12.04 分区归因与容量一体同构。
扩容方向要写清:水平加副本 vs 调池化;加副本解决不了单分片热点与下游单点。
水平扩展有效的前提是无单分片热点、无全局锁、下游也按同模型扩。只扩应用不扩 DB/缓存,是把瓶颈挪位。
HPA 与池化参数联合设计:副本增加会放大总连接数,可能先打穿下游;扩容单含下游容量确认。
容量文档写清:目标 QPS/RT、瓶颈资源、池化参数、HPA 阈值、拒绝行为、OOM/拒绝时的用户可感。
- 评审现场核对:应用最大并发 × 单请求资源 ≈ 编排可提供资源。
- 压测结论必须能映射到具体编排/池化变更单。
- 大促前用 G03.03 清单复核同一模型。
关联:G03.02 拒绝可观测;G04.03 扩展前先单机;G06.01 超时预算受容量约束。
容量文档与编排清单同 PR 评审;压测报告必须映射到具体 YAML/池参数 diff。
评审口算:maxConcurrency × costPerReq 是否落在 request/limit 与下游配额内;口算不过关不进入压测预约。
线程池、连接池、信号量的拒绝策略必须可观测:拒绝次数、队列等待、活跃数进指标与告警。静默拒绝等于悄悄丢业务——拒绝是保护机制,必须让调用方与值班同时看见。
队列从「缓冲」变成「延迟放大器」时,要下调队列、上调拒绝可见性;无限队列是事故预告。
反模式:拒绝只打本地日志;Caller 无感知继续重试打穿;虚拟线程不限制下游并发把 DB 打爆。
可见的拒绝是友好的失败;不可见的排队是慢性中毒。队列长度与等待时间进 SLI,而不仅是「线程池还有余量」的错觉。
虚拟线程场景下,「线程用之不竭」的错觉最危险:必须用信号量把并发钉在下游可承受的数字上。
Caller 需感知背压(快速失败/降级),Callee 需暴露饱和信号。与 M08.07 背压是契约、M08.06 背压主题同构。
虚拟线程降低线程成本,不降低下游容量;仍须用信号量/池化限制对 DB、RPC、外部 API 的并发。
拒绝策略(Abort/CallerRuns/Discard)各有代价:Discard 最危险(静默丢),CallerRuns 可能反压到入口线程,须显式选择并监控。
背压传播方向:Callee 饱和 → 暴露指标/快速失败 → Caller 降级或限流 → 入口保护。任一环断裂就会在边界堆积。
拒绝策略选择写入 ADR:为何不用 Discard;CallerRuns 是否会反压到 Netty/Tomcat 线程;Abort 后的用户文案与补偿。
池化评审三项:核心/最大/队列、拒绝策略、指标名与告警。压测必打到拒绝路径,确认降级文案与补偿。
- 看板固定:拒绝 QPS、排队 P99、活跃线程/连接、下游错误率。
- 变更池参数按发布门禁,可回滚。
- 拒绝率进入错误预算与大促卡点。
关联:G03.01 同一容量模型;G06.01 超时与重试;G02.03 饱和告警。
压测报告专章「拒绝路径」:触发方式、指标曲线、用户可感、是否可恢复。缺失该章视为压测未完成。
生产看板把拒绝率与业务成功率并排;拒绝率上升而成功率暂稳,往往是下一波雪崩的前兆。
大促前必须做:全链路压测、限流阈值校验、降级开关演练、回滚演练、依赖容量确认。清单未勾完不上流量峰值——演练目标是暴露协同问题,而不是证明「没事」。
口头「应该扛得住」不算数;依赖方容量函证要书面化,含峰值 QPS、拒绝策略与联系人。
反模式:只压入口不压依赖;演练不走真实降级开关;大促窗口仍开放非预案发布;压测流量形状与真实热点不符。
演练要像打仗:真实开关、真实回滚、真实依赖函证、真实值班链路。桌面推演只能发现文档问题,发现不了「开关没接上」。
峰值流量形状必须含热点与毛刺;只用均匀压测通过的系统,会在秒杀/开售瞬间倒塌。
演练重点:缓存击穿、热点账户、消息堆积、慢 SQL、线程池打满、依赖超时雪崩。错误预算与大促窗口绑定,发布冻结有明文。
与 G01 发布门禁、G03.01 容量模型、G05 热点治理形成闭环:压测发现的参数变更仍走发布与回滚,禁止「演练现场改死参数」。
混沌与故障注入(可选)验证:单依赖超时、缓存全挂、从库延迟——失败模式应符合预期降级,而非雪崩。
发布冻结窗口与错误预算绑定:冻结不是形式,而是变更审批流真的关掉非预案通道。
依赖函证内容:峰值 QPS、超时与拒绝策略、降级约定、值班联系人、升级路径。邮件「OK」无数据视为未函证。
清单模板按「流量入口 / 核心交易 / 依赖 / 数据 / 回滚」五栏;演练结论进复盘,参数变更走发布门禁。
- 大促当天只允许预案内动作,禁止临时发明。
- 值班表、升级路径、公共决策频道提前就绪。
- 峰值后做容量复盘:预测 vs 实际、拒绝与降级触发次数。
关联:G01 回滚演练;G05.03 热点清单;G06.02 治理参数;G02 证据与告警。
清单销项会议:每项有证据链接(压测报告、演练录像/日志、函证书)。无证据不算勾完。
大促当日决策树提前打印在值班频道置顶:触发条件 → 允许动作 → 禁止动作 → 升级条件。
池满/限流拒绝必须返回可识别错误码与用户可感文案,并有指标;静默超时不算拒绝策略。
拒绝是保护手段;不可观测的拒绝等于故障。客户端应能区分可重试与不可重试。
门禁:拒绝码表、用户文案、拒绝 QPS 指标、告警绑定 Runbook。压测必测拒绝路径。
共享集群必须有租户级配额(QPS/连接/存储);无隔离的「平均可用」会在大客户峰值时拖垮全体。
嘈杂邻居是容量问题的常态形态;配额是契约,不是优化项。
门禁:租户配额表、超限拒绝可观测、大促前核对 TopN 租户预算。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
容量评审必须含关键依赖拓扑与各自瓶颈,不只看本服务 CPU。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
假可用常出在下游单点。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:依赖图、下游配额、故障域标注。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
应用线程/虚拟线程并发与 DB/Redis/HTTP 连接池必须联合设上限。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
只扩线程不扩连接=打穿下游。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:联合预算表、拒绝可观测、压测验收。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
HPA/自适应扩缩必须设冷却与防抖,避免抖动放大事故。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
抖动是容量控制系统的常见失效模式。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:冷却参数、扩缩事件审计、大促前演练。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
法侧原则见 M06.02 迟滞阈值与稳定窗口。
四、G04 数据变更与 SQL 治理
本组管数据面怎么改才不炸:DDL/数据修复可回滚、SQL 审核与慢 SQL 闭环、扩展前先单机、影子表与双写观察期、只读副本延迟门禁、数据修复双人审批、在线 DDL 工具白名单、备份恢复演练。数据变更往往比发版更危险;对齐 M11.01 / M08.05。
DDL 与数据修复必须可回滚或可正向补偿:影子表、双写、分批、回填校验。不可逆删改默认禁止在高峰直打生产——数据变更与代码变更同等危险,经常更危险。
「先删后说」「高峰加索引」「无备份全表 UPDATE」是经典事故模板;回滚方案写不清,变更单退回。
反模式:锁表 DDL 无窗口评估;修复脚本无抽样校验直接全量;复制延迟不管继续打主库。
数据修复的最高风险是「不可逆 + 难校验」:删改类必须先有可抽样的正确性定义,再谈执行速度。
复制延迟是隐藏锁:主库看起来成功,从库或下游 CDC 尚未跟上,业务读到旧数据会被误判为修复失败或成功。
在线 DDL 看锁与复制延迟;大表变更用 gh-ost/pt-osc 或云厂商在线变更。数据修复先备份/抽样校验,再全量;正向补偿优先于逆向幻想。
与 M11.01 变更可回滚一致;与 G06.03 双写/Outbox 在「数据面变更」上互补——结构变更与事件契约要一起评估。
校验查询与影响行数预估是门禁字段:估错一个数量级就应熔断执行。
在线 DDL 工具选型写进变更单:锁类型、是否拷贝表、磁盘与时间预估、失败回退。自研脚本等同高风险,需同等评审。
正向补偿优先:与其幻想完美回滚 SQL,不如设计可重放的修复任务与校验任务。
变更单附:执行窗口、回滚 SQL/切流方案、校验查询、影响行数预估、复制延迟阈值、熔断条件。
- 执行中盯锁等待与复制延迟;超阈熔断。
- 禁止「先删后说」;删改类须双人复核。
- 完成后用校验查询闭环,结果贴回变更单。
关联:G04.02 SQL 审核;G01 发布窗口;G06.03 结构变更对 CDC 的影响。
执行熔断条件量化:锁等待阈值、复制延迟阈值、影响行数偏差、错误率。触发即停,复盘后再续跑。
完成后校验结果与备份位点写入变更单;无闭环的数据变更视为事故隐患。
SQL 必须过审核(索引、回表、临时表、大偏移);慢 SQL 要有发现→归因→修复→回归的闭环,而不是只调大超时。超时调大是推迟爆炸,不是治理。
从库「看起来快」不能代替主路径 explain;读写分离下的慢查询仍可能打穿主库或连接池。
反模式:N+1 用缓存掩盖;深分页 OFFSET 巨大;隐式转换导致索引失效;慢日志无人认领。
慢 SQL 治理看闭环率,不看发现数:发现一堆却无人修,等于没有治理。工单 SLA 与发布门禁挂钩更有效。
「加索引」也是数据变更:写入放大、磁盘、变更窗口都要评估;禁止把索引当免费午餐。
审核关注:选择性、覆盖索引、分页策略、N+1、隐式转换、深分页、临时表与文件排序。慢日志与业务 apdex 联动;修复后用相同流量形状回归。
与高性能存储/SQL 篇章、M09 消除等待同构:慢 SQL 是等待的主要来源之一。
索引不是免费的:写入放大与空间成本要写入取舍;「再加一个索引」也要走变更与回滚(删索引)预案。
explain 结论要对照真实基数与绑定变量;开发环境的 explain 只能作参考。用生产只读或采样统计验证。
深分页与导出类 SQL 单独门禁:必须 keyset/seek 或异步导出,禁止巨大 OFFSET 上生产。
上线门禁:新增 SQL 有 explain 结论;慢 SQL 工单有负责人与截止日期;回归报告附修复前后 RT/扫描行数对比。
- 表达时能讲清「为什么走这条索引」。
- 禁止以调大超时/调大连接池作为唯一手段。
- 大促前导出 Top 慢 SQL 清单并销项。
关联:G04.01 DDL;G04.03 单机优化;G03 容量被慢 SQL 偷走。
Top 慢 SQL 周报:责任人、趋势、是否进下次发布。连续两周无进展升级。
修复回归用相同流量形状:仅用单条 SQL 基准不够,要看连接池与 RT 分位。
分库分表、读写分离前先压榨单机:索引、SQL、缓存、批量、异步。过早拆分把复杂度前置,却不一定换来容量——拆分是架构税,要用证据证明值得交。
拿不出单机优化前后对比与瓶颈证据,不批准拆分。批准后的第一期目标是「可回滚的路由与对账」,不是「一次拆完美」。
反模式:为了微服务而拆库;未解决热点就按用户 ID 哈希;无对账上双写;读写分离当银弹忽视复制延迟语义。
拆分决策的证据链:单机优化前后容量曲线、瓶颈火焰图/等待分析、成本对比(研发复杂度 vs 机器)。缺一视为冲动拆分。
「可回滚的路由」是第一期交付物:流量与数据都能退回旧拓扑,否则拆分是单行道。
与 M08.05「扩展前先单机」同构:先证明瓶颈在容量而非实现。拆分后的事务、对账、路由、热点、跨库查询成本要写进 ADR。
读写分离首先改变的是一致性语义,其次才是容量;产品契约(G05.02)必须先改。
分片键选择错误会制造新单点(热点分片);扩展方案必须含热点与扩容再平衡预案。
一致性语义变化先于拓扑变化:读写分离/分片会改变事务与可见性,产品契约与对账必须先就绪。
分片键与热点分析同单:选错分片键会把单机热点变成单分片热点,扩展税白交。
扩展评审先出示:单机优化前后对比、瓶颈证据、一致性模型变更、对账与回滚路由方案、时间盒与退出条件。
- 第一期交付:可回滚路由 + 对账任务 + 观察看板。
- 禁止无对账的双写上线。
- ADR 必填,回顾日写进日历。
关联:G04.01/02 单机手段;G06.03 Outbox;G05 缓存与一致窗口;M08.05。
ADR 模板强制字段:瓶颈证据、拒绝的替代方案、一致性影响、对账、回滚、时间盒、回看日。
第一期上线标准:路由开关 + 对账差异看板 + 回滚演练记录,三者齐全才允许扩大写入比例。
大表重构默认影子表/双写观察期,观察指标达标才切读;禁止高峰直接 rename 大表。
数据变更爆炸半径大且常不可逆;观察期用来证明正确性与性能。切读与切写可分步。
门禁:双写校验报告、观察期时长、切读开关、回切方案。对照 G04.01 可回滚原则。
读写分离上线前必须定义可接受的副本延迟与读己之写策略;延迟超阈应切主读或降级,而不是默默脏读。
最终一致不等于无限延迟。业务契约要写清延迟窗口与补偿。
门禁:副本延迟指标与告警、读路径降级开关、验收用「写后读」用例。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
生产数据修复必须双人审批+可回放脚本,禁止控制台手改当常态。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
手改不可审计、不可回滚。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:工单、脚本仓库、执行窗口与回滚包。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
大表变更只允许白名单工具/策略(gh-ost/pt-osc 等),禁止裸 ALTER。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
锁表是可预期事故。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:工具白名单、副本延迟观察、取消预案。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
备份存在≠可恢复;恢复 RTO/RPO 必须演练出数。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
未演练的备份是安慰剂。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:季度恢复演练、耗时记录、失败即阻断高危变更。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
五、G05 缓存一致与热点治理
本组管缓存加速如何不牺牲正确性与可用性:失败可降级、一致性窗口写进契约、热 key/大 key 专项、降级演练、热点预热护栏、击穿穿透演练清单、多级缓存失效广播、容量与淘汰评审。对齐 M07.02 / M08.08。
缓存穿透/击穿/雪崩与缓存集群故障时,必须有降级:回源限流、默认值、只读旧数据、熔断依赖,禁止无限回源打穿 DB。缓存挂了系统仍应「降级可用」,而不是「更不可用」。
缓存是加速器不是真相源;把缓存当 DB 用,故障模式会从「变慢」变成「写丢/读错」。
反模式:无互斥重建导致击穿;空值不缓存导致穿透;多级缓存失效顺序未定义层层放大;故障时关闭限流「先顶住」。
降级不是「返回空」这么简单:要定义用户可感(旧数据/默认值/只读/排队),并与产品共同签字。错误的降级比故障更伤信任。
互斥重建与单飞(singleflight)是击穿标配;没有互斥的 cache aside 在过期风暴下等于自攻 DB。
失败模式要在设计期声明:一致性窗口、过期策略、互斥重建、布隆/空值缓存、回源配额。与 M07.02 缓存非源同构。
多级缓存定义失效顺序与最大回源 QPS;本地缓存要有上限与抖动过期,避免Herd。
与 G03 容量模型联动:回源配额必须小于 DB 可承受;演练「缓存全挂」是唯一验收。
回源配额是硬闸:按 key 与全局双限;超过则降级,不得「临时取消限流保业务」——那是把事故换成更大事故。
多级缓存的失效顺序写成状态机:本地 → 分布式 → DB;并行失效策略要防止惊群。
故障演练必做「缓存全挂」:观察 DB QPS 与用户可感错误率,确认限流与降级开关有效。
- Runbook:何时开降级、何时允许回源、何时止损回滚。
- 穿透/击穿/雪崩各有专项用例进回归。
- 降级开关按 G01.02 配置门禁管理。
关联:G05.02 窗口契约;G05.03 热点;G03.03 大促演练。
「缓存全挂」演练报告必含:DB QPS 峰值、错误率、降级开关生效时间、回滚决策点。
Runbook 与开关名、看板面板一一对应;禁止「开降级」却找不到开关。
缓存与 DB 的一致性不是「最终会一致」一句话,而要写成契约:窗口时长、读路径(主/从/缓存)、用户可感语义。窗口内允许什么、不允许什么,产品与研发必须同一张纸。
金融与库存等场景往往要求绕过缓存读主或同步失效;「缓存优化」若未改契约,就是静默降低正确性。
反模式:口头最终一致;延迟双删无窗口说明;读写分离延迟当缓存一致;变更缓存策略不走发布。
契约一页纸最小字段:窗口时长、读路径优先级、窗口内允许的用户可感、超时后的行为、关键写是否绕过缓存。
缓存策略变更=产品行为变更:即使「只改 TTL」,也可能让用户更频繁看到旧值或击穿更重。
Cache-Aside / Write-Through / 延迟双删各有代价:写失败、删失败、并发读写窗口不同。先定一致模型,再选组件(M07.02 / M07.01)。
读路径要可观测:用户这次读的是主、从还是缓存;排障先问路径,再问「为什么不一致」。
契约变更等于产品行为变更,须灰度与回滚;与 G01 发布三要素同级。
延迟双删/订阅失效各有失败模式:删失败、消息丢失、并发读写。失败后的最大脏读窗口必须 ≤ 契约窗口,否则契约作废。
排障时「路径」是第一问:主库直读、从库、缓存、本地缓存——路径不清则讨论无意义。
接口文档与 SLA 写明一致性窗口与读路径;用例验收含窗口内/窗外的期望行为。
- 排障话术:先确认读路径与变更窗口。
- 变更缓存策略视为发布,走灰度与回滚。
- 对账/校验任务覆盖关键字段漂移。
关联:G05.01 失败降级;G04.03 读写分离语义;G06.03 事件驱动一致。
接口文档与错误码旁标注一致性语义;验收用例覆盖窗口内/外。
策略灰度:按租户或流量百分比切换 TTL/读写策略,观察投诉与对账差异再全量。
热 key 与大 key 必须专项治理:拆分、本地缓存、复制、压缩、拆 value。热点会把集群变成单点——大促前不知道热点在哪,等于不知道单点在哪。
大 key 拖慢迁移、阻塞复制、放大网络;热 key 打满单分片 CPU。两者都要用证据发现,而不是上线后猜。
反模式:全站一个「热门商品」键;巨型 Hash/List 不拆;只加机器不打散;热点清单无主人。
热点清单是活文档:开售 SKU、活动入口、配置中心热 key、登录态大 key,都要在大促前冻结版本并指定负责人。
大 key 的危害常在运维动作:迁移、扩容、备份时阻塞;日常 QPS 不高不代表可以忽视。
发现靠:代理层热点统计、大 key 扫描、慢查询、分片 CPU。治理按「打散」:哈希标签、分片、多副本只读、本地缓存短 TTL。与高并发热点 M08.08 对齐。
打散会改变一致与失效成本,须同步更新 G05.02 契约与回源配额。
容量模型(G03)要把「单分片峰值」写进去,否则水平扩展无效。
打散手段分级:本地缓存 → 只读副本 → 拆 key → 业务改模型。越靠后成本越高,越要 ADR。
热点与限流联动:打散不及的,用用户级/商品级限流保护,避免打穿。
大促前出热点清单与预案;上线后持续扫描,超阈进工单。验收:热点 key 的单分片 CPU/QPS 不再独占集群。
- 清单含:key 模式、QPS、分片、负责人、预案(拆分/本地缓存/限流)。
- 大 key 治理含拆分与压缩目标体积。
- 演练热点打满时的降级路径。
关联:G05.01 击穿;G03.03 大促;M08.08 热点方法论。
扫描任务日更:超阈自动建单;大促前 T-7/T-3/T-1 三次销项。
验收看分片 CPU 与热 key QPS 占比,而不是「我们已经拆了」的口头。
缓存失败降级路径必须演练:降级后 DB 配额、用户可感、自动恢复条件写进 Runbook。
未演练的降级在事故中不可用。降级不是关缓存,而是受控的配额与体验。
门禁:最近演练记录、DB 配额、降级开关、恢复条件。关联 G05.01。
已知热点(大促 SKU、登录配置)必须有预热清单与单 key 护栏;靠「过期后自然重建」等于赌击穿。
热点是容量与一致性的交叉点;预热失败要有显式降级。
门禁:热点清单、预热脚本可回放、单 key QPS/带宽告警、击穿开关演练。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
缓存击穿穿透雪崩必须有演练与开关,而不是文档里的理论。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
过期瞬间与恶意 key 是常态风险。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:演练记录、单飞锁/空值缓存/逻辑过期验收。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
本地+分布式多级缓存必须有失效广播与版本策略。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
节点间旧值会造成诡异脏读。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:广播通道、版本字段、失效失败重试。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
缓存容量、淘汰策略、大 key 限制必须进容量评审。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
内存打满比打满 CPU 更突然。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:maxmemory 策略、大 key 扫描、淘汰命中监控。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
六、G06 调用预算与服务治理
本组管同步链路与双写契约:超时预算入契约与强制入库、治理参数可回滚、双写走 Outbox/CDC、重试预算显式化、熔断半开观察窗、幂等键规范、对账任务 SLA。超时可加总、双走并对账;对齐 M11.02 / M11.03 / M07.01。
同步调用链的超时必须可加总:各跳超时之和小于用户超时,并留重试与排队余量。无预算的超时 = 随机故障。超时是分布式系统的第一公民,不是调优参数。
重试无幂等会放大写;熔断阈值要基于错误类型而非笼统 5xx;取消(cancellation)要能向下传递,避免下游空转。
反模式:每跳都 3s 叠出 30s;入口超时短于下游;无限重试;超时后仍继续写。
预算表是抗雪崩的宪法:没有加总通过的同步链路,不得以「先上线再调」为借口进入生产。
取消传递缺失时,下游会在上游已超时后继续烧资源——这是隐式容量泄漏。
超时、重试、幂等、熔断一起设计。与 M11.02 超时预算、M08.09 负载分型与取消同构。
预算表是契约:每跳 RT P99、超时、重试次数、幂等键、失败语义。评审时现场加总,加总不过关不得上同步链路。
某一跳变慢时,整链失败模式应「快速失败/降级」,而非层层排队雪崩——用压测验证,而非口头保证。
重试预算单独列:次数 × 超时要计入总预算;抖动(jitter)与幂等是重试的前置条件。
熔断与超时分工:超时管单次,熔断管持续错误;慢调用熔断阈值与错误熔断阈值分开配。
链路预算表进架构文档与接口契约;压测验证单跳变慢时的整链行为。
- 写路径重试必须幂等键或去重表。
- 取消向下传递进验收用例。
- 预算变更按发布门禁,观察错误率与尾延迟。
关联:G06.02 治理参数;G03.02 背压;G06.03 能异步则勿同步硬扛。
评审现场用表格加总;加总超过用户超时则砍跳、改异步或降级,而不是「每跳再减 50ms」的假动作。
故障注入:单跳延迟到接近超时,观察整链是否快速失败且无重试风暴。
限流/熔断/降级参数变更按发布管控,必须可回滚。错误的限流阈值可以制造「自攻」——把正常流量挡在门外。治理参数与业务开关一样危险。
集群限流与单机限流语义要分清,避免「每实例都以为自己是全集群」导致实际阈值放大 N 倍。
反模式:高峰临时拍脑袋调大;无观察指标的参数变更;熔断后无半开与恢复条件;降级开关无主。
治理参数的误杀与漏杀都消耗信任:误杀制造自攻,漏杀制造雪崩。所以变更要有观察指标双看:通过率与依赖健康。
单机限流 × 副本数 ≠ 集群限流;语义写错会在扩容时自动「放松」或「收紧」。
治理参数进配置门禁(G01.02);变更前后对比错误率、通过率、拒绝率、依赖健康。与错误预算联动:误杀过高同样消耗预算。
限流算法(令牌桶/漏桶/滑动窗口)与维度(用户/IP/接口/租户)要写清;维度选错会误伤或放行。
熔断要区分慢调用与错误调用;半开探测流量要受限,避免恢复时二次打穿。
半开探测要限流:恢复期用小流量探测,成功再抬门;一次放全是二次事故。
参数变更与错误预算联动:误杀率超阈同样触发回滚,不只看 5xx。
参数变更单含:旧值、新值、观察指标、回滚条件、生效范围(单机/集群)。禁止高峰无单临时调参。
- 演练:错误参数一键退回时间计入 RTO。
- 大促参数变更提前演练并冻结临时修改。
- 看板并排展示:通过率 vs 拒绝率 vs 依赖错误率。
关联:G01.02 配置发布;G03.03 大促;G06.01 超时与熔断。
变更单并排旧值/新值/预期曲线;观察窗口结束前禁止连续调参。
大促参数包提前合并为「预案包」版本化,当日只允许切换包,不允许细调单个魔法数。
消息与 DB 双写禁止「先发消息再写库」无补偿;用 Outbox / CDC / 事务消息保证至少一次投递后的可对账。双写是分布式一致的经典陷阱,必须有模式而不是有感觉。
至少一次投递必须配幂等消费;没有对账的「最终一致」是信仰,不是工程。
反模式:本地事务外发消息;消费者无幂等;CDC 乱序无版本;表结构变更打断解析无兼容策略。
Outbox 的价值是「与业务同事务的意图记录」;没有轮询/中继把 outbox 发出去,表只是墓地。
对账不是可选报表:没有差异检测与修复工具,最终一致只是口号。
最终一致三件套:幂等消费、可重试、对账(M11.03 / M07.01)。Outbox 与业务同事务;CDC 注意顺序、表结构变更兼容;乱序用版本或聚合键。
消息只唤醒,状态以库为准;对账任务可检测漏跑/错账并可审计。与 G04.01 数据变更、G05.02 一致窗口互补。
失败补偿路径要设计完整:重试耗尽进死信、人工修复工具、回放开关。
幂等键设计:业务幂等(订单号)优于技术幂等(消息 ID);两者可并存,但语义要写清。
CDC 与 schema 演进:兼容策略(向前/向后)进变更单;破坏性变更先停消费或双格式。
双写方案评审必问:失败怎么补偿、重复怎么消化、对账谁跑、差异怎么修。说不清则退回同步或单写。
- 对账任务进值班看板,差异超阈告警可行动。
- 结构变更与 CDC 解析兼容性同单评审。
- 压测含重复投递与乱序用例。
关联:M11.03 对账兜底;G04.03 扩展双写;G07 AI 工具写操作同样要幂等分级。
上线门禁:重复投递测试、乱序测试、对账任务启用、死信告警可行动。
差异修复工具最小可用:按主键重放、人工标记、审计日志;禁止只靠「再消费一遍」蒙混。
超时×重试×扇出必须可算并写入契约;默认禁止无限重试与无抖动退避。
重试放大是级联故障主因之一。预算超限应失败或降级,而不是继续打。
门禁:放大倍数计算表、最大重试、抖动、幂等要求。关联 G06.01 / K06。
熔断打开后半开必须有观察窗与成功阈值;无窗口的「立即全开」会二次打穿。
熔断是保护下游也是保护自身;半开是受控实验。
门禁:半开比例、成功阈值、失败再开、参数可回滚;变更单写清观察窗。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
同步链路超时必须可加总并入库为契约表,禁止拍脑袋。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
超时倒挂是雪崩温床。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:预算表评审、网关/服务/下游对齐检查。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
写接口幂等键格式、存储与过期策略必须平台规范。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
无幂等的重试是重复扣款。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:规范文档、拦截器默认、抽检关键写路径。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
异步最终一致链路必须有对账任务与 SLA(窗口、告警、补偿)。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
无对账的 Outbox 仍是赌运气。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:对账看板、超窗告警、红线冻结开关。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
七、G07 AI 制品与评测门禁
本组管 AI 变更的发布纪律:制品全版本化、无黄金集不上线、工具副作用分级表、Prompt 回归绑定发布、评测集漂移检测、Token/算力成本配额、模型降级开关演练。AI 变更面大于普通服务;对齐 M14.01。
Prompt、模型 ID、检索配置、工具实现、编排图全部版本化,可对齐回放与一键回退;版本号进日志与审计。AI 变更面远大于普通服务,版本化是唯一可回放手段。
温度、切片、重排、工具副作用、路由策略任一变化都视为发布;「再调一下 Prompt」与改代码同级。
反模式:线上手改 Prompt 无版本;模型静默切换;无法从一条回答追溯制品组合;回滚靠「凭记忆再改回去」。
制品组合是 AI 系统的「可执行二进制」:缺版本号的 Prompt 等于未构建产物却上了生产。
路由与实验桶必须版本化,否则回放时无法解释「为何同一问题两种答案」。
与 M14.01 AI 变更必回归同构:制品不可追溯则回归无意义。多模型路由、AB 实验桶、检索索引版本一并纳入制品清单。
回放要求:同一输入 + 同一制品组合 → 可对齐的输出(允许采样噪声时记录 seed/温度策略)。
与 G01 发布三要素结合:AI 放量同样要有灰度、卡点(质量/安全/成本)、回滚到上一制品集。
回放管道:输入、制品组合、采样策略、工具响应存根——四者缺一则「对齐回放」不成立。
审计字段进每条回答日志:modelId、promptHash、indexVer、toolVer、routeVer。
发布清单含:模型版本、提示词哈希、索引版本、工具契约版本、路由策略版本。回滚能指到具体制品组合。
- 审计:任一线上回答能追溯到制品组合。
- 禁止生产控制台无单改 Prompt。
- 制品仓权限与变更审计同代码仓标准。
关联:G07.02 黄金集;G07.03 工具分级;G01 灰度回滚。
回滚演练:切换到上一制品组合并验证黄金集与线上抽样,不只是「改回旧 Prompt 文本」。
权限:生产制品写入走 PR/变更单;控制台热修默认关闭。
任何改动必须过固定黄金集/测试集回归;无测试集不上线。离线指标 + 小流量线上数据双确认后再全量。个例体验不是评测,是采样偏差。
黄金集要冻结版本,防止「改题迎合模型」;集合覆盖正确性、拒答、安全、工具调用、延迟与成本。
反模式:只看 demo 好不好;无安全用例;线上全量后再补评测;用变化的测试集宣称提升。
黄金集冻结是防作弊机制:集合可演进,但演进有版本与评审,不能为了让报告好看而改题。
双确认针对分布漂移:线下好、线上差常见于检索语料与真实查询不一致。
评测是门禁不是演示:通过率阈值、回归报告、失败用例归因(模型/检索/工具/提示词)要可拆。与 M14.01、M01.06 定性定量同构:先定量门槛,再谈主观体验。
线下指标与线上抽样可能背离;双确认是为了防分布漂移。成本与延迟纳入同一报告,避免「更聪明但不可用」。
集合维护有流程:新增用例要评审,删除用例要说明,版本号随制品走。
评测维度拆分报告:正确性/安全拒答/工具成功率/P95 延迟/单均成本。合成一个「总分」会掩盖安全回归。
失败归因标签强制:模型、检索、提示词、工具、数据、评测本身。无归因则禁止「再训一下」。
门禁:黄金集通过率阈值、回归报告链接、灰度观察看板(质量/安全/成本)。未达标不得扩量。
- 表达:先报评测数字,再报主观体验。
- 失败用例按归因分派修复,禁止只调温度蒙混。
- 集合版本与 G07.01 制品版本对齐归档。
关联:G07.01 版本化;G07.03 工具安全用例;G01 卡点扩量。
扩量卡点:黄金集阈值 + 线上抽样窗口 + 安全用例零容忍项。安全项失败不得用「平均分还行」放行。
集合变更单:新增/删除用例理由、版本号、是否影响历史基线对比。
Agent 工具按副作用分级:只读 / 可重试写 / 不可逆写;不可逆写必须人工确认或强幂等键。工具是带权限的远程代码,不是聊天点缀。
提示词注入与越狱防护必须与工具暴露面一起评审;最小权限默认,能只读绝不给写。
反模式:一把工具万能账号;不可逆写无确认;工具超时无上限;无审计日志;用自然语言「保证别乱写」代替权限。
工具分级表是安全边界:级别决定默认是否自动执行、是否要确认、是否要幂等键、审计级别。
「尽量帮用户完成」与失败安全冲突时,失败安全优先——不确定就拒绝,并给出人工路径。
工具契约含:权限、超时、幂等、审计、输入校验、输出大小限制。与 G06.01 超时预算、G06.03 幂等写、G08.01 威胁建模同构。
副作用分级决定默认策略:只读可自动;可重试写要幂等键;不可逆写要人工或双人、或强确认码。
越权与注入测试进黄金集(G07.02);失败安全:不确定时拒绝执行,而不是「尽量帮用户办到」。
输入校验与输出限额防 prompt 注入与数据外泄;工具返回不得直接当高权限指令执行。
不可逆写的补偿设计与普通写路径同等重要:冲正、工单、人工审核队列。
上线前列出工具清单与级别;不可逆写默认关闭或双人复核。表达时能讲清「最坏能写坏什么、怎么回滚/补偿」。
- 演练:恶意/越权调用是否被挡。
- 工具权限变更走发布门禁与审计。
- 生产审计能还原:谁、何时、何工具、何参数、何结果。
关联:G07.01/02;G08 安全;G06 写路径幂等。
上线包含:工具清单、级别、权限集、超时、幂等、审计样例、越权测试报告。
演练注入:诱导模型调用高危工具;期望被策略拦截并留审计。
Agent 工具按只读/写/资金或不可逆分级;高级别默认二次确认或人工闸。
工具调用的爆炸半径可大于模型本身。分级是门禁,不是文档装饰。
门禁:工具分级表、确认策略、审计日志、一键禁用。关联 G07。
Prompt/工具/索引变更必须跑同一黄金集回归并贴结果链接;无回归的「文案小改」按生产事故定级。
LLM 行为变更不可靠肉眼;回归是唯一客观门禁。
门禁:黄金集 diff 报告、阈值阈值、失败阻断;与 G07.02 互锁。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
黄金集必须监测分布漂移与刷分;分数 alone 不能放行。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
过拟合评测=线上静默塌方。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:集外抽样、影子对比、漂移告警。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
模型调用成本必须进配额与门禁,超限降级而非账单惊吓。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
AI 成本是容量问题。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:配额表、超限策略、FinOps 看板。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
模型超时/质量降级开关必须演练到用户可感路径。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
开关不演=故障时找不到。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:演练记录、文案/兜底、回滚点。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
编码助手、AI 代码评审、AI 单测生成进入流水线后,唯一不变的红线是:AI 产物与人工产物走同一道门禁。降低标准的那一天,就是把幻觉与供应链风险写进主干的起点。
治理要量化到可追问:采纳率、返工次数、评审命中率、单测覆盖率增量——没有度量,AI 提效就只是主观感受与采购理由。生产默认:AI 工具链的准入、上下文边界、产物审计写进研发规范,而不是靠个人习惯临时决定。
与 M06 的「可验证才可信任」同构:AI 输出不可信不是缺陷,是必须被验证的输入。因此门禁不能放松,只能前移——预提交提示、PR 检查、CI 静态分析与测试必须能拦住 AI 引入的缺陷。
与 G07.01/G07.04 互锁:AI 生成的代码同样要过制品版本化与副作用分级;外部模型即第三方处理者,送出去的上下文就是数据出境面,密钥、生产数据、客户隐私一律不进上下文窗口。
失败模式:AI 幻觉 API 编译不过(可拦);AI 生成的依赖引入未审计包(供应链);AI 评审刷屏导致告警疲劳(人不再看);上下文误送敏感代码(不可逆)。前两者靠门禁,后两者靠边界与限流。
门禁:准入清单、上下文边界、产物标记与审计、量化指标。
- 准入:AI 工具须过数据合规与依赖审计;代码助手不得直连生产库与外网模型发送完整文件。
- 边界:上下文最小化(仅相关片段)、脱敏规则前置、密钥与隐私字段硬阻断。
- 产物:AI 生成片段在提交信息与 PR 中可追溯,评审对「AI 生成未验证」一票否决。
- 量化:采纳率、AI 代码缺陷密度、PR 周期、单测覆盖率增量;按季度回看,收益不达标即下线工具。
- 验收:抽检最近变更是否带齐工具标记、脱敏证据与回归结论;关联 K 组事故卡做反例教学。
八、G08 安全运营与供应链
本组管安全与供应链底线:威胁建模先行、密钥证书可轮换与双写窗口、最小权限审查、依赖镜像可追溯、豁免单到期自动阻断、CVE 分级响应时限、生产访问审计抽检。对齐 M10 与安全 Checkpoint。
安全需求在设计期做威胁建模(STRIDE 等),而不是上线后补扫描。假设组件会被攻破,问「破了是否仍可控」。安全是约束,不是功能清单。
高风险项未关闭或未显式接受残余风险,不得上线。扫描只能发现已知类问题,替代不了边界与信任假设的审查。
反模式:上线后「补个 WAF」;威胁模型一页纸缺失;残余风险口头接受无签字;新依赖不重做建模。
威胁模型一页纸的读者是评审委员与未来的自己:写不清资产与信任边界,等于未建模。
残余风险接受必须具名与到期日;无限期「接受」等于放弃管理。
与 M10 纵深防御同构:最小权限、失败安全、零信任。数据流图上标信任边界与敏感数据;认证授权、输入校验、密钥、供应链分条缓解。
STRIDE(或同类方法)按资产枚举威胁与缓解;缓解要可验证(测试/门禁/监控),不可验证的缓解等于不存在。
与 G07.03 工具暴露面、G08.02/03 密钥与供应链形成安全门禁闭环。
缓解可验证:测试用例、门禁规则、监控告警、权限配置。不可验证的「我们会注意」删除。
新依赖、新工具暴露面、新数据出境都触发增量建模,而不是一年一次。
方案评审附威胁模型一页纸:资产、威胁、缓解、残余风险、验收方式。高风险项未关闭不得上线。
- 复盘安全事件时回指威胁模型缺口并更新模板。
- 重大架构变更强制重做建模。
- 与安全手册 Checkpoint 页对照检查。
关联:nav-server-security-checkpoint;G08.02/03;M10。
高风险项关闭证据贴进变更单;未关闭则阻塞发布或降级功能开关。
安全事件复盘输出:模型缺口、新增威胁、模板更新——三件都要有。
密钥与证书必须可轮换:双密钥并存窗口、自动续期、吊销流程。写死在镜像里的密钥是定时炸弹——不能轮换的密钥,等于不能响应泄漏。
共享账号长期静态口令、证书过期无告警、吊销名单拦不住流量,都是可预期的生产事故。
反模式:密钥进仓库;证书人工年审遗漏;轮换无双密钥窗口导致全球中断;吊销演练从未做过。
轮换能力是事件响应的一部分:泄漏当天才发现不能轮换,事件必然拖成灾难。
证书过期是可预防事故;过期告警不可行动等于没有告警。
密钥分级:应用密钥、数据密钥、根密钥;HSM/KMS 托管。证书过期监控与告警可行动(G02.03);吊销名单要真能拦住流量。
双密钥并存窗口保证轮换不中断;自动续期失败要升级为事件。与 G01.02 配置门禁一致:密钥下发也是配置变更。
最小权限与短生命周期:能短则短,能作用域收窄则收窄。
双密钥窗口、自动续期、吊销生效链路要分别演练;只演续期不演吊销,泄漏时仍会失败。
密钥分级决定保护强度与访问路径;根密钥触达必须极少且审计。
轮换演练每年至少一次;变更单含吊销与回滚。禁止共享账号长期静态口令。验收:泄漏演练中能在约定 RTO 内完成轮换。
- 证书到期告警绑定 Runbook 与责任人。
- 密钥不进镜像/仓库;注入方式可审计。
- 吊销演练结果贴回安全门禁。
关联:G08.01 威胁建模;G08.03 供应链;G01.02 配置。
年演内容:轮换、吊销、续期失败升级、RTO 实测。结果进入安全门禁证据库。
静态口令与长期 token 清零计划有截止日期;共享账号拆人。
依赖与镜像必须可追溯:SCA 扫描、SBOM、签名/哈希校验、基础镜像基线。供应链失败按生产事故定级。「不知道跑了什么」比「有个 CVE」更危险。
构建可复现、制品签名、部署校验;第三方调用校验证书并设超时。高危 CVE 有豁免流程与截止日,禁止无限期挂着。
反模式:latest 标签上生产;无私有基线乱拉公网镜像;SBOM 不归档;豁免无到期日。
可追溯的目标是:任意生产实例能回答「镜像 digest、构建号、依赖树、扫描时间、签名者」。
latest 与不可变标签的对立:生产只允许不可变引用;可变标签是供应链洞。
与安全手册供应链章节对齐;与 G01.03 升级门禁互补——升级是行为风险,溯源是供应链风险。
SLSA Build 轨道(官方 slsa.dev):L1 要求构建 provenance 存在;L2 要求托管构建平台生成并签名 provenance;L3 要求硬化构建平台(构建互不影响、签名密钥对用户步骤不可见)。SBOM/签名回答「产物内容」,SLSA 回答「构建过程是否可验证」;关键服务门禁可要求 Build L2+。
部署时校验签名/哈希,防止制品库被篡改后静默上线。基础镜像基线由平台维护,业务少自造。
SCA 结果要分级处置:阻断 / 限时豁免 / 接受并监控;与错误预算类似,豁免是有代价的配额。
部署校验签名失败必须阻断,而不是告警后继续。阻断策略与豁免流程成对出现。
CVE 豁免是有息债务:截止日、补偿控制、负责人;到期自动转阻断。
门禁:高危 CVE 阻断、SBOM 归档、镜像来源白名单、签名校验通过。表达时能指到「这个包从哪来、谁签的名、何时扫的」。
- 抽查:任一生产镜像能还原构建与依赖树。
- 豁免单含截止日与负责人,过期自动变阻断。
- 第三方 SDK 升级走 G01.03。
关联:G01.03;G08.01/02;安全 Checkpoint。
抽查脚本化:随机生产镜像 → 还原 SBOM → 核对签名 → 核对扫描报告。
第三方 SDK 与基础镜像升级日历公开;与 G01.03 升级门禁合并执行。
CVE/基线豁免必须有截止日与负责人;过期自动变阻断,禁止永久豁免。
豁免是风险接受,不是风险消失。无到期日的豁免会堆积成供应链黑洞。
门禁:豁免单模板、到期扫描、负责人、阻断策略。关联 G08.03。
密钥/证书轮换必须双密钥窗口:新旧并行校验→切主→吊销旧钥;单钥硬切等于计划内中断。
轮换是变更,不是运维小动作;窗口长度与回滚点要写进 Runbook。
门禁:双钥窗口时长、吊销检查清单、演练记录;告警绑轮换 Runbook。
验收:金丝雀/发布演练必须至少触发一次自动回滚或人工覆盖留痕;信号与业务成功数同向校验。
关联:错误预算看板、变更窗口、回滚后数据修复门禁;禁止只看 CPU 放量。
密钥与令牌权限必须最小集,定期审查过权。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
过权密钥泄漏爆炸半径更大。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:权限矩阵、季度审查、吊销演练。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
依赖 CVE 必须按严重级别绑定修复时限与豁免到期。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
无时限的漏洞单等于永久带病。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:SLA 表、自动催办、到期阻断。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。
生产人工访问必须审计并可抽检,禁止共享超级账号常态化。
生产默认:写进变更模板与脚手架,而不是靠个人经验临时想起来。
无审计的生产访问不可追责。
与同组既有门禁互锁:缺一则「看起来有流程、出事时用不上」。
门禁:堡垒机、会话录制、抽检报告。
- 评审话术:缺证据/缺演练/缺回滚点即阻断。
- 验收:抽检最近一次变更是否带齐字段与指标。
- 关联:对应 K 组事故卡做反例教学。