站长圈淘汰只会单打独斗的系统管理员
|
线上报警那一刻,我正盯着前端甩过来的接口文档改缓存策略——他把“用户头像URL有效期”写成“用户头像URL有效时长”,我改了两回才反应过来是同一个意思。结果钉钉弹出来,红底白字:「用户中心鉴权服务超时率突增至12%」。我手一抖,咖啡泼在键盘F键上,现在按F还带点黏腻感。 其实那会儿压根没想淘汰不淘汰的事,先捞日志。log里全是指向老网关的499,可老网关去年就下线了啊?我原以为是路由配置漏切,结果翻灰度开关发现——根本没人动过它。运维老张蹲在机房换硬盘,接我电话说:“哎哟,你咋还查老网关?上周产品让前端直接调鉴权中间层,绕过网关了。”我愣住。谁?啥时候?为什么没进变更单?他回:“哦,前端说联调时发现网关耗时高,自己改的,截图发群里了。” 窗外天黑得早,路灯刚亮,光晕糊在玻璃上,像没擦干净的油渍。我点开那个群聊记录:五月二十八号下午四点十七分,前端@所有人:“鉴权走网关太慢,QPS上来就卡,我们改成直连中间层,已测通。”底下零回复。产品在另一条消息里问:“灰度比例能配到5%吗?”没人提这事。我手指悬在键盘上,删了三遍“这算哪门子协同”,最后只回了个“收到”。工单系统又弹了条消息:「【P1】鉴权超时问题请于2小时内闭环」——闭环?我连入口在哪都还没摸清。 说白了,不是活干不动,是信息断在半道上。去年七月,我还在靠自己扒trace、翻commit、硬啃十年前的老代码补丁包,以为搞懂那段用SHA-1做token签名的逻辑,就能扛住所有崩盘。结果呢?前端悄悄改了上游调用路径,运维顺手清理了旧DNS缓存,产品把「鉴权响应必须含字段x」塞进PRD附件第三页脚注,而我在查nginx access log时,还以为自己在跟时间赛跑。其实我在跟所有人错位的节奏赛跑。 键盘声很响,隔壁工位那个实习生敲空格键跟打电报似的,嗒、嗒、嗒……我盯着自己写的监控告警脚本,里面有个变量叫`$is_gateway_enabled`,注释写着“判断是否启用网关层”,可现在它永远为false——因为没人记得要维护它。我试过加个alert,提醒“当该值为false但鉴权调用未走中间层时触发”,但写到一半卡住了:怎么定义“未走中间层”?mock返回?TCP握手?还是去读前端webpack打包产物里的fetch目标host?算了,我删了整段,留了行注释:“此处逻辑已脱离现实,请勿阅读。” 前两天面试一个应届生,问他如果发现线上缓存穿透,第一步干啥。他说“加布隆过滤器”。我点点头,又问:“要是加完之后,前端同学把请求参数名从‘uid’改成‘userId’,你监控能拦住吗?”他愣住。我说:“不是考你算法,是考你猜不猜得到人会改啥。”他笑了一下,手机亮了一下,微信弹出一条新消息,我没看清是谁发的。 其实我挺佩服那种能在一个需求上线前,把前后端日志格式对齐、把超时配置拉齐、把traceID透传字段统一名字的人。不是技术多牛,是脸皮够厚,敢追着产品问“这个字段到底会不会为空”,敢堵在前端茶水间门口等他测完再走,敢在周会纪要里硬生生插一句“灰度方案需包含三方调用方兼容说明”。我们这批人,当年靠读源码吃饭,现在靠读人吃饭。可读人比读Go runtime还难,runtime至少有注释,人心里那点盘算——没文档,不commit,随时rebase。 前阵子听旧同事说,他们组招系统管理员,JD第一行写着:“拒绝单点故障式责任人”。底下括号小字:“即,不接受任何声称‘我负责整个链路’的候选人”。我笑了。不是笑他们矫情,是想起去年七月那个凌晨,我一个人重启了三回核心服务,每次都是不同原因,最后发现是数据库连接池被某次发版的临时脚本悄悄扩到八千,而应用侧没设maxIdle,全等着gc回收——这事儿我盯了大半年,但谁告诉过我,那个脚本是产品为跑AB测试自己起的? 我不确定现在这种淘汰是好是坏。可能只是把“闷头扛事”的老实人,换成“嘴快腿勤”的明白人。但有一点我笃定:当你查超时问题,第一反应是看Prometheus的`http_request_duration_seconds_bucket`,而不是下意识翻自己邮箱里三个月前的排期邮件——你就已经掉队了。因为问题不在metric里,在那封没人点开的邮件正文第三段里,在产品经理忘记同步给测试的那个灰度开关备注里,在前端同事没提交的本地分支里。 我现在每天早上第一件事,不是看告警,是打开企业微信,搜“鉴权”“中间层”“网关”,翻最近七天全部群聊。昨天找到一条线索:六月十一号,后端架构师在另一个技术群发了个链接,标题是《鉴权服务降级兜底方案v2》,点进去是个语雀文档,权限设成“仅限部门可见”。我申请了,等了一上午,没批。所以今晚得去找他喝咖啡——得先确认他是不是真喝咖啡,还是只喝美式。我原以为他爱喝茶,结果上次团建看见他保温杯里泡枸杞配冰美式,搞得我也开始怀疑人生。
文章配图,仅供参考 行了,不说了,刚收到消息:前端在群里问“鉴权返回的code字段,能不能统一成string类型?现在有些是number有些是string”。我还没回。得先去翻中间层最新tag的response DTO定义……或者,干脆直接问他们要不要一起对齐下OpenAPI spec?反正spec文档上次更新是……算了,先看看今天有没有人愿意跟我一起改。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

