第2章 集装箱里的火
陈明踩着梧桐叶往地铁站走时,手机在裤袋里震得格外急促。屏幕上跳出陌生号码,归属地显示是临港工业区。他犹豫着划开接听键,听筒里炸开刺耳的电流声,混着男人嘶哑的喊叫:“陈工!快来救场!服务器烧起来了!”
消防车的红蓝灯光在集装箱集群间跳动时,陈明正蹲在警戒线外解鞋带。他把磨破的帆布鞋换成帆布包里的劳保鞋,鞋帮上还沾着去年在工地搬服务器时蹭的水泥。三天前他接下这个外包活——给冷链仓库的监控系统做维护,时薪 180块,比写 PHP还低,但对方说“包吃住”。
“线路老化短路,引燃了堆放的泡沫板。”穿橙色工装的工头往集装箱里努嘴,“我们老板从国外调的温控服务器,据说能精准到零下三十度,现在烧成废铁了。”
陈明戴上借来的防尘口罩,弯腰钻进熏黑的箱门。烧焦的塑料味呛得他直咳嗽,应急灯在残骸上投下斑驳的光影。角落里缩着个穿格子衫的年轻人,膝盖上的笔记本屏幕还亮着,正哆哆嗦嗦地敲代码。
“小周?”陈明认出那是上周在人才市场搭讪的小伙子,“你怎么在这?”
周磊猛地抬头,眼镜片上的烟灰簌簌往下掉:“陈叔!我跟老板说认识您……他们让我负责灾后数据恢复,可我连日志文件都找不到……”
陈明拨开他的手,指尖在发烫的键盘上敲了串指令。屏幕上跳出密密麻麻的代码流,他忽然顿住——这系统内核分明是他十年前写的开源框架,只是被人套了层花里胡哨的可视化界面。
“用的伪分布式架构。”他扯下口罩,声音里带着火气,“把单节点服务器伪装成集群,省钱倒是省到家了!”
集装箱外传来争吵声。穿西装的老板正指着工头骂:“三天后就要接进口牛肉的单子!数据恢复不了,你赔得起违约金吗?”穿制服的消防员插话说:“线路整改至少得一周,你们这违规搭建的临时机房,根本过不了消防检查。”
陈明突然想起 2019年的跨年夜。那时他的团队在机房守岁,监控大屏上的数据流像烟花般绚烂。实习生怯生生地问:“陈哥,咱们的系统会不会崩啊?”他笑着拍对方肩膀:“我写的灾备机制,就算机房炸了,数据也能在三分钟内迁移到备用节点。”
“陈叔?”周磊的声音把他拽回现实,“您看这日志……”
陈明盯着屏幕上错乱的时间戳,忽然抓起墙角的消防斧。周磊惊叫着往后躲,却见他劈开烧变形的服务器外壳,从主板上拔下一块焦黑的硬盘。“去车上拿我的工具箱。”他的声音异常平静,“把冷链仓库的备用 UPS电源接过来。”
凌晨三点,当第一缕晨光爬上集装箱顶时,周磊看着屏幕上跳动的进度条哭了。98%的数据被成功恢复,包括下周要入库的三千吨进口牛肉的温控参数。穿西装的老板递来信封,里面塞着厚厚的现金:“陈工真是神人!这活儿我包给您了,月薪……”
“不必了。”陈明把硬盘装进证物袋,“让你们技术团队把内核重构了,用我早上写的补丁。还有,赶紧找正规设计院改消防图纸。”
他走出集装箱时,周磊追上来递过手机:“陈叔,这是我导师的微信,他在中科院做分布式存储研究,说想跟您聊聊。”屏幕上的头像有点眼熟,陈明忽然想起那是当年一起在开源社区灌水的网友,如今已是院士候选人。
手机又震了一下,是妻子发来的转账截图,附言:“女儿学校催学费了。”陈明望着远处港口的吊臂,把现金塞进帆布包。朝阳把他的影子拉得很长,像根被拉长的代码,一头连着烧黑的集装箱,一头伸向雾蒙蒙的海平面。