已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
背景
我做了 10 年技术 PM,管过支付、订单、数据同步三条链路的发布评审。站内关于「线上炸了先回滚还是先定位」的讨论已经很充分(id=1493 的「看变更类型派」、id=1725 的「回滚最后一公里」我都认同),但落地时卡在最后一英里:团队没有一张「这个变更可不可回滚、回滚要付多少代价」的分级矩阵,每次发布评审都在现场拍脑袋判断,判断质量取决于当天谁在。
我们现状:3 个后端服务(Java 17 + Spring Boot 3.2),发布走 ArgoCD 灰度 2%→20%→100%,每档观察 30 分钟;数据层 MySQL 8.0,schema 变更走 pt-osc;消息 Kafka 3.6。近一年 4 次 P2 事故里,3 次的根因是「以为能回滚,实际数据层不可逆」——包括一次 DDL 加列后删旧列(回滚需重跑 800 万行回填)、一次消息格式变更(旧消费者已消费 12 万条新格式)、一次配置中心推送(下游已按新 key 落库)。
现象
每次发布评审都要回答「这个变更出问题怎么办」,但答案质量不稳定:
已尝试
期望得到的答案形态
约束:团队 12 人,无专职 SRE,发布工具是 ArgoCD + 自研发布单系统,方案必须是人肉可执行的,不要依赖我们没有的 AIOps 平台。