第五十二章 · 走了¶
二月十九号早上八点四十七分,赵岩的工单答复先进来了。
「技术支持中心三层东侧库房,机柜从里数第三台,资产编号 TPL-TC-0342。电源常供,网线接库房交换机二十一号口。端口流量记录调取三个月:一月二十二日 21:07:44 至 21:14:03 有流量,与 DHCP 分配时间吻合。此后十九天,该端口流量为零。」
后面还有一行:「机器开着机,键盘上落了一层灰。库房门禁平时不锁,库房里没有摄像头。谁进的,没人知道。」
陈稳把这两行抄进记事本,在「十九天,零」后面画了一条横线,前面补了半行:10.14.1.88:一月二十二日之后,零流量。
它一月二十二号那天上了网,进了配置中心,只看了一遍,什么都没改。从他填进清单、发给万钧的那一晚开始,再没动过。机器没动,人也停了。一台开着机、落着灰的机器,在没人锁的库房里替一个人守了十九天的空。
他给赵岩回了三个字:「按纪总说的办。流量告警加上,机器别动,电别断。」
赵岩回得很快:「懂。告警只报给我,不进群。」
八点五十五,他把打印出来的工单和立项页用长尾夹夹在一起。长尾夹是上周夹评审材料的那一个,夹口有点松了,他掰了掰,还能用。
王磊端着两杯豆浆进来,一杯放在他桌上。
「评审我旁听吗。」王磊问。
「会议室后排,带本子。」陈稳说。「你今天有一个任务。评审记录里的『结论』栏,只写谁决定了什么,不写谁说了什么。散会把这两栏分开给我看。」
王磊把豆浆往他那边推了推,没再问,回工位了。
五楼会议室的投屏坏了一根线。顾源到得比谁都早,坐在讲台侧面,把两根 HDMI 线拔下来,换了个口。
「坏的这根,插上是蓝屏,不报错。」他说。「最难查的就是这种。」
陈稳把纪衡的问题原样递过去。
「纪总让我问您一件事。2019 年结算系统二期,您做过一版分区方案,最后没上。他问,当年为什么放弃。您的回答,他要求原样带回去,一个字不改。」
顾源把老花镜摘下来,放在讲台上。
「方案做完是那年十月,预算批了,排期九个月。」他说。「十一月,公司砍了结算线三分之一的人。方案排期里的三个主程,走了两个。」
「我把范围缩到两张核心表,重新报批。批复四个字,明年再议。第二年,又议了一年。」
「没有第三年。」他说。「方案在交接文档的签名页上躺着。签字的人,签完那年春天就走了。走的时候,听说涨了一级。」
陈稳把这三段记在本子上,笔没有停。记完他问:「没有别的了。」
「还有一句。」顾源把老花镜重新戴上。「原话带给他的时候,你看着他。」
「看什么。」
「看他是记数字,还是记人。」顾源说。「方案没上,那年我四十岁。他今年三十四,坐在我当年的位置上。带话的人换了三任,方案在抽屉里躺了八年。你回来告诉他,我说的这句也算原话。」
下午两点,评审开始。屋里七个人:顾源,纪衡,技术 VP,蒋辉,王磊做记录,还有两个架构组的同事,陈稳叫不出名字。
他讲了十四分钟。问题一段,方法一段,验证一段——全量比对二十一万一千三百笔,新旧两份差异单逐行比对,零行差异,比对任务的调度参数截图附在最后一页。风险一段:迁移顺序未定,需要评审现场定死。
架构组一个同事问滑动窗口为什么是十五分钟。
「商户加币种对维度实测,比对告警触发到补齐的 P99 是九分钟,日志在平台上,随时可查。窗宽取 P99 的一倍半,十三分半,取整十五。」陈稳说。「数是测出来的,不是借的。」
「补齐失败了呢。窗宽过了,补不齐。」
「进异常单,人工队列。窗口的意义不是保证补齐,是保证超时有人知道。现在的问题不是超时,是超时了系统以为自己没问题。」
那个同事在纸上写了点什么,没有再问。
「第三题。」顾源说。「你当面讲。」
陈稳讲了三层。权限收口:settle_reconciliation_v2 建在独立 schema,DROP 权限只留 DBA 角色,业务账号只给读写。DDL 审计接日志平台,这张表上任何 DROP 和 ALTER,告警直接进值班手机,不走邮件。索引清单每天凌晨两点校验一次,少一个就告警,校验脚本进 Git。
「DBA 角色几个人。」顾源问。
「三个。」陈稳把那页翻过来,背面是三个名字和工号。「昨天加的。」
「校验脚本自己挂了呢。」
「校验失败和校验超时,走同一条告警路由。告警链路本身有心跳,一分钟一次,断流也进值班手机。」
「心跳谁看。」
「值班手机。轮值排班在系统里,规则引擎写的,主备两个人,主号十五分钟不确认自动升级到备号。」
「排班规则不是我写的。」后排一个声音说。是蒋辉。「但我认这个用法。」
顾源把笔横过来,在评审意见那栏写了四行字,推给纪衡。纪衡看完签了字,推回来。
「我加一条。」顾源说。「迁移顺序,先迁历史数据还是先切实时链路,写死在方案里,一个字不模糊。前年另一条线的重写,方案没有错,死在『两种都可以』这五个字上。」
技术 VP 抬起头。
「自动核销那四千四百笔,业务线什么时候知道。」
「通知改造在重写里。状态从 auto_accepted 改成 auto_accepted_notified,第一个迭代上线。」陈稳说。「历史那四千四百笔,已封存在归档库快照表,行数四千四百一十二,金额九万六千三百四十,挂了 DDL 告警,注释写着本表只增不改。通知之外,每一笔都拆得回来。」
「可以。」技术 VP 说。
纪衡把笔帽按上。
「技术答完了。剩下一句我说。」他说。「八月一日那条线,今天正式立项。负责人,陈稳。要调任何记录,签我的名字。进展只向两个人汇报——他,和我。散会。」
散会的时候王磊把记录本递过来,结论栏三行:评审通过;八月一日线立项,负责人陈稳,汇报对象纪衡、技术 VP;迁移顺序会前由负责人与顾源商定后书面报备。顾源在旁边看了一眼,对陈稳说了一句:「这个孩子,记的是骨头。」
散会之后,纪衡的办公室门关了十分钟。
陈稳把顾源的三段原话背了一遍,一个字没改,连最后那句「你看着他」也背了。
纪衡听完,手指在桌面那叠复印件的签名页日期上按了一下,没有立刻开口。
「原话我记下了。」他说。「三件事。第一,库房那台机器,别封,别断电。断了电,来的人就知道有人看了。交换机二十一号口,让赵岩加流量告警,其余不动。」
「我已经跟赵岩说了。」
「让它继续睡。」纪衡说。「第二条,蒋辉今天下午提了离职。邮件五点四十一到,你现在还看不到。位置空着,空多久,我说了算。」
「您已经知道了。」
「他上周就跟人事谈完了。」纪衡说。「今天才提,是等你的评审结束。第三,下周一之前,重写这条线要几个人,报给我,要谁写名字。」
陈稳应了。他起身的时候,纪衡又开口。
「顾源那句『看着他』,你照做了。」纪衡说。「看见了什么,不用告诉我。」
陈稳在走廊上把顾源最后那句也在本子上补了——「看他是记数字,还是记人」。纪衡记的是数字。他刚才按在那页签名日期上的手指,按了两秒。
五点四十一分,蒋辉的离职邮件进了全组。
正文五行。第一行是交接文档链接,排在感谢的话前面。第二行感谢了组里每一个人,一个名字没漏,包括去年三月才转正的两个新人。第三行写「因个人发展」。最后工作日三月十九日。
五分钟之内,组群里冒出十几个表情。张悦问了一句组去哪儿,没有人答。王磊把邮件读了两遍,跟陈稳说了一句「他上午还在评审会上说排班规则」,然后回去干活了。没人站起来,没人送。周其正从二号楼过来取一台显示器,在门口跟蒋辉握了手,说了句「那边缺人随时说话」,就搬着显示器走了。
六点过,茶水间。蒋辉在洗自己的杯子,洗得很慢。
「新地方,不问了。」陈稳说。「就问一件。工单的事,你怎么知道的。」
「工单系统建了七年,规则里有一条:工单提交的时候,自动抄送提交人所在域的接口人。」蒋辉把杯子扣在沥水架上。「合并那天,结算域的接口人列表里加了我。到现在,没人删过。」
「分支提交时间呢。」
「Git 平台关注了这个仓库。你们组谁都能关注。」他把手擦干。「我没有卧底,也从来不问人。我只是从来不错过任何一封抄送。这个组里所有的事,本来就写在明面上。看的人少。」
陈稳想起自己写在周报模板最后一栏的那行字——答上来答不上来,都把问题原样放进周报,放进去了,下周就有人答。前提是有人看。蒋辉看了三年,看的不是问题,是人。
「万征那张表,四个服务,十一处 reviewer 空栏。」陈稳说。「你知道吧。」
「知道。有五处是我的。」蒋辉说。
「为什么空着。」
「能看懂的人,不一定敢拦。敢拦的人,不一定看得懂。两个都占的,不看我的 MR。」他把毛巾叠好,搭回架子上。「制度是全的。空栏是人空出来的。」
「新东家,你见过。」他接着说。「就是那张名片上的人。名片背面那句话,我拿它打的电话。对面说,『做 settle.guard 的那个人的简历,发来看看。』」
「那张名片在我抽屉里躺了五十天。」
「在我手里,三天。」蒋辉笑了一下。「钱涨了六成。另一半,那边让我带一条线,从选型开始。我在这儿三年,手里没有一条线是从第一行代码开始的。」
「你欠我两次。」他说。「名片这个,算我认账。另外送你两句话,不算人情,算交接。」
「说。」
「第一,王磊要把第三批文档的事写进周报。让他写,写完让回复走系统、走书面。口头的话,人一走就死。我就是活例子。」
「第二——」他把台子上的纸杯拿起来,捏扁,「你要是想让谁看不见什么,别指望藏。把看的路修得绕一点,就行了。这个组里没人翻文件,都只看通知。」
「这两句,前面五十封抄送里可没有。」
「因为说出来的就不值钱了。」蒋辉把纸杯扔进桶里。「排班规则我留在系统里。规则不跟人走。三月十九号之前,我不会再动它。」
他拿起自己那个纸箱。箱子上没有写字。他抱起来的时候说了一句:「你猜老梁那个箱子上的字,为什么要用马克笔。」
「怕看不清。」
「怕记不住。」蒋辉说。「写下来,别人就替你记住了。」
电梯门合上。整层楼的灯还亮着,有一排先灭了——定时关灯,老楼的规矩。
下班路上,陈稳把记事本翻到新的一页,写:蒋辉,三月十九。张毅,三月十二。备份表、十一封核定邮件、一台落灰的机器,全都压在这七天里。
写完他又翻回前页,在纪衡办公室那段后面补了一行:顾源说看纪衡记数字还是记人。他记了数字。八年,三十四岁,涨了一级。都是数。
地铁过江的时候,他把一月二十一号那通电话又想了一遍。四分零六秒。对面那位架构师在电话里说过一句话:「配置能扫,人兜底的那种,扫不出来。谁说了一句『这个我盯着』,表里没有这一栏。」蒋辉现在去了那个人手下。带的那条线,从选型开始。选型表里没有的那一栏,就是蒋辉要开始填的。
这件事蒋辉不知道。他不知道名片背面那句话,先替陈稳敲开过一扇门,才轮到他自己。
下周一早会,纪衡把蒋辉手上的事分了三份,四分钟分完。没有人提问。以前这个时候,会有人先说一句「我来」。
「智能重试补偿的二期,停了。」纪衡说。「文档归档,不转交。给新线腾人。」
散会后张悦问陈稳:「归档是什么意思。」
「意思是它存在过。」陈稳说。「工单列表里看得到了,只是不会再动。」
下午,王磊把第三批文档的事写进了周报,一行,写的全是日期:第一批什么时候发的,第二批什么时候发的,第三批文件夹的修改日期比孙宇离职早一年。纪衡的批注当天下来:「让技术支持中心书面答复文档下落,抄送我。三月十二日前。」
书面答复周四到了,两行:「经查交接系统发送记录,第三批文档无发送记录。经办人确认未发送。」
陈稳把这两行抄进记事本,后面加了一行:ch3 在张毅桌面躺了两年。发件记录里没有它。它没走过系统。
他自己的名单周一中午报了上去,一个名字:王磊。后面添了一行:「第二个位置空着。找到对的人之前,宁缺。」纪衡回:「空着可以。空过一个月,我来填。」
王磊知道以后,把周报模板最后一栏那行字抄在了一张便利贴上,贴在显示器边框。「问题比事实有用」那条在最上面,是旧的;新的这条在最下面,贴得比上面那条正。
「第二个位置,你觉得该是谁。」王磊问。
「不知道。所以空着。」陈稳说。「这个空括号,比写错一个名字便宜。」
蒋辉的交接文档他周三晚上读完了。一百四十页,每个系统的接口人、密码轮换表、值班要点、历史故障索引,全的。最后一页只有一行:「规则之内的事,不用找任何人。规则之外的事,找纪衡。」
技术上是满的。满得像那间空出来的工位:东西都在,人不在了。周四保洁把桌面清了,那把椅子推回桌洞,椅背上的灰蹭了一道在桌沿。
周五晚上,他把皮鞋擦了。四百八,何晚买的,鞋尖的皱褶比去年深了两道。鞋油是上个月新买的,第一次用掉半管。擦完摆上鞋架最上层。鞋柜最里面还有个纸箱,装着她的新鞋,鞋楦没拆,箱口封着,他没动。
厨房里,他妈寄来的腌鱼吃到最后一顿,蒸出来下了挂面。他吃完,把碗洗了,倒扣在沥水架上,跟那半罐辣酱的空罐隔着一个位。空罐上周刮净洗过了,一直倒扣在那里,他没扔。
窗前他站了一会儿。对面那栋楼,暖黄灯那扇黑了——收拾东西的人影搬走了。一直黑着的那扇,亮了。
冷白色的灯,亮得很匀,像刚搬进来、家具还没进场的那种亮法。
他在窗前站到水壶响。十二个月零十五天。
← 第五十一章 顾问 · 目录 · 第五十三章 自动 →