登机口广播催了第三遍,我手里攥着那张地铁票,站成了一根桩子。

吕娈从我身边绕过去,她说的话轻飘飘的,像扔一张废纸:“林工,名额满了,你回去吧。”队伍从我面前流过,有人低头,有人转头,有人在后面窃窃私语。

我听见自己的心跳声,一下一下,闷在胸腔里。

我松开了拳头,转身往出口走。

那时候我还不知道,今天被留在机场的,不止我一个人。

凌晨一点,电话响了。

打开网易新闻 查看精彩图片

01

我站在值机柜台前面,手里那张单程地铁票都快被攥出水了。

吕娈站在队伍最前面,手里拿着那沓登机牌,一个个发。她点到我的时候,愣了一下,翻了翻手里的纸,又翻了翻。

“林工,名额满了。”

她说这话的时候头都没抬,声音也小,像是说给自己听的。

我愣了一下,问她“什么名额满了”。

旁边有人看了我一眼,又飞快地把目光移开了。

吕娈这才抬起头,脸上带点为难的表情:“公司这次团建,机票是按人头订的。名单上……没你。”

“没人通知我。”我说。

我的声音听着还算平静,但嗓子眼已经有点发紧。

吕娈没接话,把剩下的登机牌发完,转头招呼大家往里走。

队伍动了。

一个一个从我身边走过去。

有人跟我打招呼说“林工那我先进去了”,眼睛不敢看我。

有人假装在聊微信,从我旁边绕过去了。

还有几个年轻人,走过去了才回头看了我一眼,眼神里带着点说不清楚的东西。

我站在那,感觉自己像块石头。

水流从两边绕过去了,我还杵在那儿。

角落里,有人举起了手机。

我余光看见了,那个镜头对准了我。闪光灯没开,但我知道,有人在拍。

我没转头去看是谁,也没说话。

我就站在那,脑子一阵一阵地发空。

电梯门开了,吕娈带着队伍往里走。我看着她后脑勺,想说什么,嘴巴动了动,又闭上了。

电梯门合上之前,我听见里面有个人笑了一声。

那笑声不大,但在这空旷的出发大厅里,显得特别刺耳。

我转头往出口走。

走到垃圾桶旁边的时候,我低头看了一眼手里的地铁票。想了想,没扔。把票叠了叠,揣进兜里。

出了机场大门,风吹过来,有点凉。

我掏出手机看了一眼,公司群里已经炸了。有人发登机口的照片,有人发收到的餐券,还有人发了张自拍,配文“出发啦”。

我看了一圈,没有一个人问我怎么走了。

我按灭手机,走到地铁站口。下楼梯的时候,腿有点软。

找了个空车厢坐下来,手机又震了一下。

是老婆叶玉蓉发来的。就四个字:“出发了没?”

我盯着那四个字看了半天,打了一行字,又删了。最后发了一句:“没去成。”

消息发出去没到十秒,电话就打过来了。

“什么叫没去成?”叶玉蓉的声音听不出是着急还是生气。

“名额不够,没我的票。”

电话那头沉默了几秒。

“他们之前通知你了吗?”

“没有。”

“那你到机场才知道的?”

“嗯。”

叶玉蓉又沉默了。她这个人就这样,气到极点反而没话说了。

过了很久,她说了句:“回来吧,我给你煮面。”

挂了电话,我把头靠在车窗上,看着外面黑乎乎的地铁隧道发呆。

手机屏幕亮了又暗,暗了又亮。

公司群里,肖高驰发了张照片,照片里他站在登机口前面,身后是一排同事。他配了一行字:“团队升级,未来可期。”

底下有人点赞。老板宋岩也在下面回了一句:“好好玩,辛苦了。”

我划走了。

地铁到站的时候,我已经有点恍惚了。站起来的时候膝盖磕了一下前排的椅子,疼了一下,但没当回事。

出了站,走在回家的路上,路灯把影子拉得很长。

我在兜里摸到钥匙的时候,听见门口传来炒菜的声音。打开门,油烟味扑面而来。

叶玉蓉系着围裙站在灶台前,头也没回:“洗把手,面马上好。”

我没说话,把鞋脱了,换了拖鞋,站在厨房门口看她。

她的背影像是有火气,颠勺的动静比平时大。

面端上来的时候,热气腾腾的,上面卧了个荷包蛋。

我拿起筷子,吃了一口,烫得嘴唇发麻。

叶玉蓉坐在我对面,没吃,就看着我。

“你就不生气?”她问我。

我没说话,又吃了一口。

“我问你话呢。”

“生气有什么用。”我说。

“你就这么算了?”

我抬头看了她一眼。她眼眶红了,但没哭。

“你这个人,”她说,“就是太好欺负了。”

我说:“不是好欺负,是习惯了。

她没再说话了,起身把碗收了,在水池里使劲刷。

我坐在桌边,听着水龙头哗哗响的声音,突然觉得特别累。

不是身体累,是心里累。

我在那家公司干了十五年,从最早的三四个人,干到现在的三百号人。当年老板宋岩还端着酒杯叫我“兄弟”。

可现在呢?

我的名字,连一张团建的机票都排不上了。

我站起来走到卧室,衣服没脱,直接倒在床上。

灯关了。黑暗里,我听见自己的呼吸声,一下,两下,三下。

手机在床头柜上亮了一下又灭了。

我没看。

后来也不知道什么时候睡着的。

只记得睡着之前,脑子里一直在转着一个念头:十五年了,我到底图什么?

02

我是被手机震动震醒的。

睁开眼睛的时候,窗帘外面还是黑的。我摸过手机看了一眼,晚上十一点四十。睡了快十个小时。

消息通知栏里,公司群又炸了。

我点开看了一眼,心里“咯噔”一下。

有人发了三张截图,全是系统报错界面。下面跟着一串“这是什么情况”、“系统崩了?”、“还能登陆吗”的回复。

我往上翻了翻,看见肖高驰在群里发了一句:“大家别慌,技术部正在排查。”

这句话发完不到五分钟,他又发了一条:“所有人暂时停止操作。”

底下有人说:“我这边业务数据写不进去了。”

又有人说:“我的页面直接白屏了。”

还有人说:“已经快二十分钟了,到底什么情况?”

我划到最上面,看到第一条报错消息是十一点十二分发出来的。

也就是说,系统已经崩了快半个小时了。

我把手机放下,翻了个身,闭上眼睛。

过了几秒,又睁开。

我坐起来,揉了揉脸。

去上厕所的时候,路过客厅,看见叶玉蓉抱着膝盖坐在沙发上,电视开着,但她没看。

“醒了?”她问我。

“饿不饿?”

“不饿。”

我走到厨房倒了杯水,端着杯子靠着门框站着。

叶玉蓉看了我一眼:“是不是公司出事了?”

我没说话。

“你就别管了。”她说,“都把你漏了,你还操那个心干嘛。”

她这话说得对,道理我也懂。

但我心里还是有点悬。

那套系统是今年初肖高驰来了之后主导开发的。当时老板宋岩让他搞一个“现代化管理系统”,说是要把公司所有的业务流都整合到一套平台上。

肖高驰拍着胸脯说没问题,三个月就能上线。

我跟他说过,这种规模的系统,至少要半年开发周期,还要两个月的压力测试。

他没听。不光没听,还在会上说“林工保守了,现在都是敏捷开发,边跑边改”。

老板一听,就觉得我思想老了,跟不上时代了。

我后来私底下找过肖高驰,把系统架构图打开,一页一页指给他看,告诉他哪些地方有隐患。

他嘴上说“林工说得对”,但眼睛一直盯着手机。

我从他办公室出来的时候,就知道他根本没听进去。

但那套系统最后还是上线了,赶在三个月零五天的时候。

上线第一天就出了岔子,数据同步出了问题,搞了通宵才修好。

肖高驰在群里发了个道歉,但第二天开会的时候,还是说“系统总体运行平稳”。

从那以后,我基本就被边缘化了。

核心项目不让我碰,开会也经常“忘记”通知我。

我知道,肖高驰在老板面前说了什么。

他那种人,能力不一定有多强,但说话的本事是一流的。

他能让老板觉得,公司以前之所以能干下去,是因为市场好。现在市场变了,需要“新鲜血液”。

而那些老员工,就成了“旧时代的残党”。

我就是那个残党。

手机又震了。

这次不是群里,是有人单独找我。

我点开一看,是技术部的小赵,平时跟我还算熟。

他发了一条消息:“林哥,你睡了没?”

我没回。

隔了三十秒,他又发了一条:“系统彻底崩了,彻底那种。”

我看着他发的消息,手指悬在屏幕上方,想打字,又放下了。

他把第三条消息发过来了:“肖总监搞不定,老板在办公室发火了。”

我喝了口水,把手机屏幕按灭了。

回到卧室,躺下,闭上眼睛。

脑子里全是那套系统的架构图。

那个索引设计有问题,我当初写的那份风险报告里面,用红笔圈过。

那个数据接口的写法也不规范,一旦并发量高了,肯定会出故障。

还有那个备份机制——我记得当时我问过肖高驰,他说“云平台自带备份的,不用单独搞”。

我当时就觉得不靠谱。

但他说完这话,老板点了点头,我也就没再多说了。

现在想来,当初应该多说几句的。

但我又想想,说了又有什么用?

他说了,人家也只当你是倚老卖老。

翻了个身,把枕头蒙在脸上。

过了不知道多久,我又摸起手机看了一眼。

凌晨一点零三分。

公司群里,已经没有人在刷消息了。

安静得反常。

我正要把手机放下,手机突然震了起来。

屏幕上跳出一串数字。

那是老板宋岩的号码。

我看着那个名字在屏幕上闪了好几下,才按了接听。

“老林!”

他的声音哑得厉害,跟平时在台上讲话那个腔调完全不一样。

“你在哪?”

“在家。”

电话那头沉默了两秒,然后他开口了,声音里带着一种我从没听过的慌张。

“你赶紧来公司一趟!”

打开网易新闻 查看精彩图片

03

手机贴在耳朵上,能听见那头传来键盘敲击的声音,还有人在说话,声音嘈杂。

“老林?你听见没有?”

“听见了。”

“那你赶紧过来!”他声音又急了几分,“服务器全瘫了!业务全部停了!客户那边电话已经打到我手机上来了!”

我靠在床头,没动。

“宋总,”我说,“我现在在公司系统里的权限已经被删了,你让我去,我也登不上去。”

电话那头顿了一下。

“我让IT现在给你开权限。你马上过来!”

我没吭声,手指按着手机壳的边缘。

“老林,”他的声音突然软下来,“这次算我求你。”

求我。

这两个字从他嘴里说出来,我觉得有点陌生。

十五年了,他从来没跟我说过这两个字。

宋总,肖高驰呢?

“他……他搞不定。”他的声音有点发虚,“他说他以前没处理过这种问题。”

我闭了下眼睛。

“我二十分钟到。”

挂了电话,我坐在床边发了几秒呆。

叶玉蓉不知道什么时候站到了门口。

“要走?”

她没有拦我,也没说话。

我站起来套了件外套,走到门口换鞋的时候,听见她在身后说了句:“记得吃饭。

我回头看了她一眼,她靠在厨房门框上,手里端着一杯水,没喝,就那么看着我。

我点了点头,拉开门出去了。

电梯里只有我一个人。

楼层数字一格一格往下跳。

我看着镜子里自己的脸,三天没刮胡子的下巴,有点浮肿的眼睛。

这模样,跟十五年前刚进公司那会儿比,差得太远了。

出了楼,夜风吹过来,打了个激灵。

我拦了辆出租车,报了公司地址。

司机是个中年人,从后视镜里看了我一眼:“这么晚还加班啊?”

我没接话。

他识趣地没再问。

车开了十五分钟,停在公司楼下。

我抬头看了一眼,十六楼的灯全亮着。

整栋写字楼,就我们公司那一层灯火通明。

刷卡进了大门,电梯门一开,就看见前台坐着的两个小姑娘,脸色都不好看。

看见我进来,她们愣了愣:“林工?你怎么来了?”

我没多解释,直接往技术部走。

走廊里有人小跑着来来往往,每个人脸上都挂着一种紧绷的表情。

推开技术部的门,迎面一股烟味。

我平时不怎么吸二手烟,这一下差点没呛着。

里面坐了五六个人,面前都开着电脑,屏幕上的报错界面一个比一个红。

肖高驰坐在最里面的工位上,面前摊着好几个窗口,但鼠标停在那不动。

他看见我走进来,脸上的表情变了一下。

是意外?是尴尬?还是别的什么?

我没来得及分辨。

老板宋岩的办公室门开着,他正站在门口打电话,声音很大:“王总,我跟你保证,两个小时之内一定解决!一定!

挂了电话,他一抬头就看见了我。

“老林!你总算来了!”

他三步并两步走过来,拉着我的胳膊往里走,步子急得差点绊着脚。

“你快看看,到底怎么回事。”

他没让我去技术部,直接把我拉进了他的办公室。

门一关,声音小了点,但他脸上的焦躁盖不住。

“下午还好好的,晚上十一点左右突然就不行了。”他跟在我身后说,“先是反映说系统卡顿,后来直接进不去了。再后来数据库那边全乱了,客户数据全混掉了。”

我皱了皱眉:“备份呢?”

他愣了一下:“什么备份?”

“系统备份,数据备份。”

“这个……老肖说云平台有自动备份,应该……”

“应该什么?”

他咽了口口水,没说话。

我看着他这副表情,心里已经凉了半截。

让我看看。

他赶紧让开位子,我坐到他的电脑前。

屏幕上一个错误界面连着另一个错误界面,我看了几分钟,心里就有数了。

索引炸了。数据接口也爆了。更严重的是,数据正在持续写入,乱码正在覆盖正常的记录。

我转过椅子,看着宋岩。

“宋总,我问你几个问题,你如实告诉我。”

“你说。”

“新系统上线之后,老系统关掉了吗?”

他犹豫了一下,点了点头。

“什么时候关的?”

上线第二周。

第二周。

也就是说,老系统的所有数据入口,在两个多月前就已经完全切断了。

现在系统的备份机制出了问题,没有退路可走。

我又问:“当初新系统上线前的压力测试,做了多久?”

“好像……跑了三四个小时。”

三四个小时。

我闭上眼,深吸了一口气。

“宋总,”我睁开眼睛看着他,“这个系统从设计阶段就有问题,我三个月前写过一份风险报告,你没看到吧?”

他愣了一下:“什么风险报告?”

“我交到肖高驰手里了。”

他转头看了一眼门外,肖高驰正站在技术部门口,低着头,没往这边看。

宋岩的脸色,比刚才又白了几分。

04

我站起来走出办公室,直接走向技术部。

坐在我原先工位上的年轻人看见我走过来,赶紧站起来让了位。

我坐下来,手指搭上键盘。

界面一页一页地翻过去,越看心里越沉。

几个关键模块的代码写得乱糟糟的,连注释都少得可怜。当初提交的风险报告里指出的那几个隐患,一个都没改。

数据接口的写法还是我当初看过的那一版,完全没有任何优化。

索引设计也还是那个样子,一旦并发量大,肯定撑不住。

现在不是“撑不住”的问题了,是已经炸了。

负责运维的小陈凑过来,声音很低:“林哥,现在倒库操作已经跑不动了,写入还在持续,数据读写通道基本堵死了。

我没说话,在脑子里过了一遍可能的方案。

方案一:强制停掉所有服务,手动修复索引,再回滚数据。

代价是业务要停至少四到六个小时。现在是半夜,影响相对小一点,但白天的业务肯定来不及恢复。

方案二:不停服务,在线修复。

风险很大。如果中间再出岔子,可能连原始数据都救不回来。

方案三:回切老系统。

但这个选项,两个多月前就被肖高驰亲手堵死了。

我思考了大概一分钟,转过椅子,看了一眼角落里的肖高驰。

他坐在那里,面前的屏幕亮着,但他的视线是下垂的,盯着键盘上某个按键,一动不动。

我没叫他。

站起来走到机房里看了一眼。

服务器指示灯一片红色。

我转身出去,在走廊里站了几秒,掏出手机看了眼时间。

一点四十五分。

我刚要把手机收起来,叶玉蓉发了条消息:“到了吗?”

我回了个“到了”。

她又发:“吃了吗?”

我说“还没”。

她说“冰箱里有剩饭,热一热就能吃,别光顾着忙”。

我没再回了,把手机揣回兜里。

回到技术部,宋岩跟在我后面,问我怎么办。

“有两个方案。”我一边说一边走到白板前面,拿笔画了两条线,“第一个,停服修。保守估计,到天亮能恢复一部分。第二个,在线抢修,但风险大,可能要折数据。”

“哪个快?”

“都不快。”

他沉默了几秒:“那……那还有没有别的办法?”

我看着他,没说话。

其实还有第三个方案。

但我说不出口。

那个方案要用到我手里一个东西,一个我自己私下留的备份工具脚本。

当年做老系统的时候,我考虑到数据安全,写了个自动备份和还原的工具。

后来新系统上线,这玩意儿就被我收在U盘里了。

如果那个U盘还能用,最快两个小时,能把大部分数据抢回来。

但那是我自己的东西。

公司的电脑里没有,公司的系统里没有,所有人都不知道。

我犹豫了。

“老林?”宋岩又叫我一声,“你是不是有办法?”

我看着他,他额头上全是汗,眼角的皱纹比白天看起来深了很多。

“让我想想。”

我找了个空位坐下来,整个人靠在椅背上。

脑子里转着很多念头。

有关于方案的技术细节,有关于数据的恢复路径,也有别的。

比如今天下午,在机场,我站在那群人中间,没有一个人站出来替我说句话。

比如那个举起手机拍我的人。

比如吕娈那句轻飘飘的“名额满了”。

我还想到,如果今天我顺利上了飞机,现在这个电话,还会打给我吗?

还是说,他们会打给另一个“林工”?

我想到最后,苦笑了一下。

不会有另一个林工的。

因为公司里,除了我,没有人真正懂这套系统的底层逻辑。

肖高驰是能说会道,但他写的代码,他自己都兜不住底。

我不知道坐了多久。

宋岩在我旁边来回踱步,电话又响了两回,他接起来,嗯嗯啊啊地应付着,语气越来越差。

肖高驰始终坐在那个角落,没动,也没说话。

技术部的键盘声一下一下的,很轻,但在安静的夜里听得特别清楚。

我终于站起来。

“宋总,我车上有样东西,我下去拿。”

“什么东西?”

“一个旧U盘。”

他说要不要让人去拿,我说不用,我自己去。

出了门,走到电梯口的时候,我停了一下。

转身往回走,走到技术部门口,朝里面看了一眼。

肖高驰还坐在那里,低着头,双手交叉搁在膝盖上。

他的手机屏幕亮着,屏幕上是一条微信消息,我隐约看见了几个字:“情况怎么样?”

我没看清楚是谁发来的。

转过头,我进了电梯。

到了停车场,我打开自己那辆车的后备箱,从夹层里翻出那个U盘。

黑色的,16G,外壳都磨花了。

我攥在手里,掂了掂,感觉有点沉。

那里面是我快两年的业余时间,一点一点写出来的东西。

回到楼上,电梯门一开,就看见宋岩站在走廊里等我。

“拿到了?”

我举起U盘给他看了一眼。

“这是什么东西?”他问。

“一个备份工具。”

他眼睛亮了一下:“能恢复?”

“能试试。”

我没再多说,走到一台空闲的电脑前,把U盘插了上去。

打开文件夹,里面安安静静地躺着几个脚本文件。

我深吸一口气,手指放上键盘。

周围的空气像是凝固了。

所有人的目光都集中在我面前那块屏幕上。

我敲下第一行命令。

打开网易新闻 查看精彩图片

05

屏幕上的光标闪了两下,弹出一行提示。

“正在检测系统状态……”

那三秒,我感觉特别长。

光标又闪了一下。