素白书屋 繁體

裁员名单第一个 第 4 章 · 共 9 章

入职云极

云极科技的园区,和旧东家的玻璃大楼是两种气质。

矮,散,绿化多。六栋楼围着一个湖,工程师骑着共享单车在楼与楼之间穿。

入职手续办得出奇地快。陈默拿到工牌的时候看了一眼——

姓名:陈默。部门:账务底座。职级栏:空白。

全云极一万四千张工牌,只有这张,职级是空白的。

上午十点,陆之远在办公室见了他。没有寒暄,这位总裁开门见山。

“陈老师,云极的命门我不瞒你。”陆之远把一张架构总图推过来,“我们的云卖给了半个行业,可我们自己的账务底座,是五年前外购的,缝缝补补。客户的业务在我们的云上跑,我们的账在别人的旧地基上跑。”

“沈砚说,自建底座这事,全行业能挑大梁的人,一只手数得过来。”

“我们挖了三年,挖到了您。”

陈默看着那张总图,看了很久,问了三个问题。每月账单峰值多少笔,历史误差最大一次多少钱,灾备演练一年做几次。

陆之远答了前两个,第三个卡住了,转头看沈砚。

“……做过一次。”沈砚有点尴尬,“三年前。”

“嗯。”陈默点点头,把图折好,“那就从灾备开始。地基没验过的房子,楼越高越危险。”

陆之远和沈砚对视了一眼。

后来陆之远跟人说起这次见面,只说了一句话:别人入职先谈权和钱,他入职先谈的,是怎么防着自己出错。

按沈砚原本的计划,是要发全员信的,标题都拟好了:《欢迎首席架构师》。

被陈默拦下了。

“别发。”他说,“给我个普通工位,让我先看两周代码。”

“陈老师,您这个级别——”

“级别是发工资用的。”陈默说,“信任是干活挣的。空降的头衔,压不住干活的人。”

沈砚想了想,把邮件删了。

于是账务平台部的工程师们只知道,组里来了个新人,工位在角落,姓陈,话不多,一来就抱着代码仓库啃,一啃啃到半夜。

“沈总亲自领来的,来头不小吧?”

“来头不小还坐角落?连个独立办公室都没有。”

“我查了内网,职级都没有,八成是哪个大佬的关系户,来挂职养老的。”

资深工程师韩磊撇撇嘴:“养老就养老吧,别碰核心代码就行。我们这摊子,经不起外行折腾。”

那两周,新人陈默干的事确实不起眼。

他把账务链路五年的代码提交记录从头翻到尾,把历年事故复盘报告打印出来摞在桌角,摞了一尺高。午饭一个人吃,吃完绕着湖走一圈,回来继续看。

他提的问题也不起眼,都在群里,客客气气:

“请教一下,补偿任务的扫描间隔三十秒,这个数当年是怎么定的?”

“热点商户的账户行,锁的粒度有历史原因吗?”

零零碎碎,问了四十多个问题。

韩磊有一搭没一搭地答,答到第三十个问题的时候,心里咯噔了一下——这些问题连起来看,像一张网,网眼收拢的方向,正是他们半年没抓住的那条鱼。

他没跟人说。关系户嘛,瞎猫碰上死耗子也是有的。

——

韩磊的“这摊子”,确实经不起折腾。

云极的结算链路上,卡着一个半年没解的顽疾。

每个月底,大客户批量代扣的高峰时段,账务服务的延迟就会从几十毫秒飙到十几秒,超时告警刷满大屏。轻则赔钱道歉,重则大客户流失。半年里炸了六次,次次上升到陆之远那里。

三个团队为这事打了半年的架。存储组说是账务组的锁用得烂,账务组说是网关的重试放大了流量,网关组说是存储抖动引发的雪崩。

专项组立了三个,报告写了几百页,问题岿然不动。

陈默入职第九天,月底,它又炸了。

晚上十点,账务平台的作战会议室,三个组的人吵成一团。

“重试我们已经降到最低了!再降业务就断了!”

“扩容!我说了多少次,加机器!”

“加了三倍了!延迟一秒都没降!”

角落里,那个“关系户”新人忽然开口了。

“不用加机器。”

会议室静了一下,所有人回头。

陈默站起来,走到白板前面,拿起笔。

“我看了九天代码,也看了你们半年的复盘报告。”他说,“三个组都没错,所以三个组都修不好。”

韩磊皱眉:“什么意思?”

“问题不在任何一个组的代码里,在缝里。”

陈默在白板上画了三个框,又在框与框之间画了两条线。

“批量代扣的时候,热点商户的账户行被长事务锁住。这个没问题,谁写都得锁。”他在第一个框上打了个点,“网关超时重试,也没问题,参数很保守。”

“问题是这两件事叠在一起:重试进来的请求,和原请求抢同一把锁,锁队列越排越长。而你们的补偿任务,每三十秒扫一次未完成单据——它扫到这些排队的单,以为失败了,又生成一批冲正单。”

他在第三个框上重重一点。

“冲正单,也要抢那把锁。”

会议室里安静得可怕。

“原单、重试单、冲正单,三路人马挤一扇门。”陈默把笔帽扣上,“这不是容量问题,是死锁的近亲——活锁。加十倍机器,只会让门口挤得更快。”

存储组的组长脸色变了,飞快地翻着笔记本电脑,越翻脸色越白。

“对……对得上。每次炸的前两分钟,补偿任务的调度日志都有一波尖峰……我们半年都以为那是结果,不是原因……”

韩磊盯着白板,半天憋出一句:“那怎么解?”

“三步。”陈默重新拿起笔,“第一,热点账户改异步记账,先记流水后更余额,把长事务拆碎。第二,重试请求带上原单指纹,同指纹的在队列里合并,不重复抢锁。第三,补偿任务加一个判断——排队中不等于失败。”

他写完,看了看表。

“第三步最简单,二十分钟就能上线,今晚就能救火。前两步做完,这个问题永久消失。”

晚上十一点四十分,第三步上线。

延迟曲线像被人一把摁了下去,从十几秒,直落回八十毫秒。

大屏上刷屏的红色告警,一片一片熄灭。

会议室里没人说话。半年,六次事故,三个专项组,几百页报告——被一个入职九天的人,二十分钟摁死了。

韩磊默默走到饮水机边上,接了杯水,放在陈默手边。

“陈……老师。”他艰难地换了称呼,“前两步的方案,能带我一起做吗?”

“本来就该你们做。”陈默把水喝了,“我只是看了九天代码。你们守了它五年,改起来比我稳。”

韩磊愣了一下。

他见过太多空降的高人,破了案就抢功劳,发全员邮件,上晋升材料。把方案还给团队的,第一个。

那天夜里散会,韩磊在楼道里给老婆打电话,说得语无伦次:“……真人,我跟你说,是真人。深藏不露那种。我明天开始跟他混了。”

——

两周后,前两步全量上线。月底大客户批量代扣,延迟峰值八十九毫秒,风平浪静。

半年的顽疾,销案。

销案报告送到陆之远桌上那天,陆之远在高管群里发了条消息:建议给账务平台的陈老师办个庆功会。

十分钟后,沈砚转达了当事人的回复。

“他说不用。”沈砚念着手机,“原话是:故障消失是系统的本分,本分不庆功。要庆,等新底座上线那天一起。”

高管群里安静了一会儿,有人回了一句:这人是真的,别放走。

“角落里那个新人”的事迹还是在云极内网传开了。有人扒出他的工牌照片,发现职级栏是空白,帖子盖了八百层楼。

“职级空白,懂了,深不可测。”

“听说沈总管他叫老师。”

“二十分钟摁死半年顽疾,我愿称之为扫地僧。”

“我赌他是哪个隐世大佬的马甲。”

有人回帖:“查过了,前东家资料是某电商,P6,被裁的。”

下一层楼秒回:“P6?哪家公司瞎了眼把这种人裁了?让我笑一会儿。”

八百层楼里,没有一个人猜到正确答案。

陈默没看内网。他在自己的工位上,开始画云极新一代账务底座的第一张架构图。

图的角落,他习惯性地留了一块区域,标注:极端流量下的降级与逃生通道。

画完这块,他停了一下。

有些习惯,是十年前那个机房之夜刻进骨头里的:任何系统,都要给自己留一条活路。

——

同一时间,一百公里外,旧东家的大楼里,顾维峰的融资路演进入了冲刺期。

五星级酒店的会议室里,他对着一排投资人,讲得神采飞扬。

“各位,看这条曲线。”激光笔的红点落在人效图上,“组织优化之后,人均产出提升百分之四十。这就是我说的,把肌肉练出来,把脂肪切掉。”

“技术侧,我们完成了史上最大规模的架构升级,新中台全量上线,老旧系统全部清退,机器成本再降一千两百万。”

有个戴眼镜的投资人翻着材料问:“顾总,全量切换赶在大促前完成,激进了点吧?灰度做充分了吗?”

“李总,这个问题问得好。”顾维峰笑容不变,“我只说一句:怕出事的团队,才需要用灰度安慰自己。我们的团队,用实力说话。”

“大促当晚,欢迎各位到我们作战指挥室现场观摩。成交额大屏,就是我最好的路演材料。”

会议室里响起礼貌的笑声和掌声。

散场的时候,那个姓李的投资人落在最后,多问了一句:“老系统清退……原来负责的团队呢?”

“优化了。”顾维峰整理着袖口,轻描淡写,“一个守了十年旧系统的老P6,名单第一个。李总,进化的第一刀,就得砍在最旧的地方。”

李总笑了笑,没再说什么,在笔记本上不动声色地记了一行小字。

而同一栋楼的机房里,活路正在被拆掉。

机房里,周然蹲在老账台的机柜前面,手里捏着断电工单,迟迟没动手。

“磨蹭什么呢?”资产回收的主管催他,“今天必须腾出来,中台等着装机呢。”

“哥,”周然小声说,“这可是结算系统,真就……直接拔了?不留个冷备?”

“留什么留,新中台都切完量了。”主管拍了拍机柜,“工单上白纸黑字,顾总签的。拔。”

周然咬咬牙,按下了电源。

嗡嗡响了十年的风扇声,一台一台停下来。指示灯一排一排熄灭,像一排安静的呼吸,停了。

机房忽然安静得让人发慌。

周然站在黑掉的机柜前,不知怎么的,想起那个灰色套头衫的背影说过的话。

——记住这排机器的样子。安静到没人记得。

而二十层楼上,中台组正在开誓师大会。

“灰度还剩六轮验证没跑完。”方远捏着测试报告,硬着头皮举手,“郑总,大促流量是平时的十倍,跨日冲正那块我心里没底,能不能留百分之十的流量……”

“留给谁?”郑豪打断他,“老账台?机器都拆了!”

他环视会议室,声音拔高:“顾总把身家性命押在这次大促上,融资就看这一战!谁在这个节骨眼上唱衰,谁就是公司的罪人!”

方远张了张嘴,把话咽了回去,手指无意识地摸向包里——那里躺着一份他自己偷偷打印的文档,第六章被他翻得起了毛边。

誓师大会的横幅红彤彤挂在墙上:

“大促必胜!全量切换!不留退路!”

——

当天晚上九点,云极园区,陈默正要下班,手机震了一下。

老蒋发来的微信,就一句话:

“老账台今天断电了。二十台机器,下午全拆走了。”

后面跟了一个烟的表情。

陈默站在湖边,看着这条消息,很久。

晚风从湖面上过来,带着点水汽。远处园区的楼还亮着一半的灯。

他回了一个字:“嗯。”

过了几秒,又打了一行:“帮我看着点方远,大促那晚让他把手机充满电。”

老蒋回了个问号。

陈默没再解释,把手机揣回兜里。

有些话没法说。系统下线了,退路拆掉了,灰度没跑完,十倍流量三天后进场——这几件事单独看,哪件都不致命。

叠在一起,就是他在交接手册第三页写下那十一页的原因。

他抬头看了看天。六月底的夜空,云层很厚,一场大雨在酝酿。

——

那之后的一个星期,时间不紧不慢地走。

旧东家的楼下广场,大屏上的倒计时数字,从“7”一天一天往下跳,跳到“3”,跳到“2”,再跳到“1”。

红底金字,映得半条街都是红的。

像喜庆,也像警报。

更多阅读

浏览全部 →

订阅新书通知

留下邮箱,新书上架时第一时间通知你。