上周跟一个做城商行IT运维的老伙计吃夜宵,他灌了半瓶冰啤酒开始吐苦水。上个月刚搞完年度灾备演练,切换流程点完确认,监控屏全跳成绿色,所有人鼓掌拍照收工,结果第三天核心支付通道直接堵了。查了三个小时才发现,演练切回主中心的时候,一条边缘的支付渠道路由没切回去,所有走这个通道的商户交易全卡在半路,客服电话被打爆,最后赔了好几个商户的逾期违约金。
切换最容易踩的坑从来不是主链路
大部分团队做灾备演练,眼睛全钉在核心数据库、核心应用集群的状态上。这些路径的监控是7*24小时跑的,哪怕切过去之后延迟高了10ms,告警电话都能直接打到值班组长的手机上。
真正的漏项,全在没人日常盯的旁路系统里。
没人查。
真的没人查。
比如日志审计的跨域路由,比如合作方对接的回调白名单,比如测试机上存的临时生产调度脚本,比如实习生负责的边缘渠道路由。这些系统平时流量小,监控阈值设得松,就算配置错了,平时也没人能察觉。大部分切换验证的漏项,都藏在没人日常盯的边缘路径里。

上次那个老伙计踩的坑,就是实习生管的那条支付渠道路由。演练当天实习生请假,所有人都盯着核心交易的跳转延迟,连喝水都舍不得离开屏幕,压根没人想起要去刷一下那个边缘通道的配置页。等通道堵了,才有人想起来,哦,原来这个系统的切换验证,根本没列进本次的检查清单。
验证不是看绿灯是摸真实的业务流
很多团队对切换验证的理解,就是盯着监控大盘的数字。所有指标落在预设阈值里,全绿,就算验证通过。
这逻辑从根上就错了。
监控的阈值是你自己设的啊。你设核心接口成功率99%就算正常,那切到备中心之后,接口成功率刚好卡着99.02%的线,看着是绿的,可你真的拿真实业务流量走一遍,就会发现某几个下沉城市的用户请求,因为跨域DNS解析没切对,延迟从平时的20ms跳到800ms,用户那边已经开始在应用商店打差评了,监控因为没设这个维度的告警,压根不亮灯。
监控绿灯只能证明系统没彻底瘫,不能证明系统真的能扛住真实的业务请求。
之前见过一个做电商的团队,演练切换完不着急收工,让客服组抽10个最常见的用户场景,从点登录、选商品、提交支付、查物流到申请售后,全链路走一遍。甚至特意找了几个在山区的测试手机,测弱网环境下的页面跳转、接口响应。就这么一套流程走下来,总能揪出两三个监控没覆盖到的小问题。

我见过最离谱的一次演练,切到备中心之后,整整20分钟,没人发一笔真实的测试交易。所有人围着监控大屏看数字,等时间到了,直接在演练报告上写”本次验证全部通过”。等真遇到机房断电切到备中心,才发现用户登录接口因为证书路径没配对,一半人登不进去。
切回来的环节比切出去更危险
说出来你可能不信,绝大多数演练出的事故,都不是切到备中心的时候炸的,是切回主中心的时候炸的。
原因很简单。切出去的时候,所有人都绷着神经,生怕切不过去在领导面前出洋相,每一步都要核对两三遍。等切出去成功,大家的弦一下就松了,觉得演练任务已经完成了,回切的时候随便点两下,看到绿灯亮了就完事。
可实际上,回切涉及的变更复杂度,跟切出去是一模一样的,甚至更高。你要确认主中心的所有配置跟切出去之前完全一致,要确认主备之间半天跑的增量数据没有漏、没有重复、没有逻辑冲突,要确认所有之前临时切到备中心的路由、权限、白名单,全改回了原来的配置。
切换验证最容易被忽略的环节,是回切过程的全量校验。
那个城商行的老伙计,就是在回切的时候漏了校验。切到备中心的时候,那条支付渠道路由是他手动敲命令切过去的,回切的时候,他只记得把核心交易的路由改回去,脑子一热就把那个边缘通道的事给忘了。等堵了三个小时通道,他坐在工位上拍脑袋,骂自己怎么就记不住把所有配置都核对一遍。
其实灾备演练这事儿,从来不是为了凑报告里的漂亮数字,也不是为了给来观摩的领导留个“技术过硬”的好印象。你今天在演练的时候漏过的每一个没验证的小配置,都是未来真出事的时候,要你熬几个通宵填的坑。上次跟那个老伙计聊完,他回去就把整个演练的检查清单全改了,加了17个之前从来没人提过的旁路校验项,甚至把实习生负责的那几个边缘系统,列到了必查的红名单里。他说,下次演练哪怕多花两个小时核对,也不想再因为漏个小配置,陪着客户赔礼道歉熬通宵了。