裁員名單第一個 › 第 4 章 · 共 9 章
入職雲極
雲極科技的園區,和舊東家的玻璃大樓是兩種氣質。
矮,散,綠化多。六棟樓圍著一個湖,工程師騎著共享單車在樓與樓之間穿。
入職手續辦得出奇地快。陳默拿到工牌的時候看了一眼——
姓名:陳默。部門:賬務底座。職級欄:空白。
全雲極一萬四千張工牌,只有這張,職級是空白的。
上午十點,陸之遠在辦公室見了他。沒有寒暄,這位總裁開門見山。
「陳老師,雲極的命門我不瞞你。」陸之遠把一張架構總圖推過來,「我們的雲賣給了半個行業,可我們自己的賬務底座,是五年前外購的,縫縫補補。客戶的業務在我們的雲上跑,我們的賬在別人的舊地基上跑。」
「沈硯說,自建底座這事,全行業能挑大樑的人,一隻手數得過來。」
「我們挖了三年,挖到了您。」
陳默看著那張總圖,看了很久,問了三個問題。每月賬單峰值多少筆,歷史誤差最大一次多少錢,災備演練一年做幾次。
陸之遠答了前兩個,第三個卡住了,轉頭看沈硯。
「……做過一次。」沈硯有點尷尬,「三年前。」
「嗯。」陳默點點頭,把圖摺好,「那就從災備開始。地基沒驗過的房子,樓越高越危險。」
陸之遠和沈硯對視了一眼。
後來陸之遠跟人說起這次見面,只說了一句話:別人入職先談權和錢,他入職先談的,是怎麼防著自己出錯。
按沈硯原本的計劃,是要發全員信的,標題都擬好了:《歡迎首席架構師》。
被陳默攔下了。
「別發。」他說,「給我個普通工位,讓我先看兩週程式碼。」
「陳老師,您這個級別——」
「級別是發工資用的。」陳默說,「信任是幹活掙的。空降的頭銜,壓不住幹活的人。」
沈硯想了想,把郵件刪了。
於是賬務平臺部的工程師們只知道,組裡來了個新人,工位在角落,姓陳,話不多,一來就抱著程式碼倉庫啃,一啃啃到半夜。
「沈總親自領來的,來頭不小吧?」
「來頭不小還坐角落?連個獨立辦公室都沒有。」
「我查了內網,職級都沒有,八成是哪個大佬的關係戶,來掛職養老的。」
資深工程師韓磊撇撇嘴:「養老就養老吧,別碰核心程式碼就行。我們這攤子,經不起外行折騰。」
那兩週,新人陳默乾的事確實不起眼。
他把賬務鏈路五年的程式碼提交記錄從頭翻到尾,把歷年事故復盤報告打印出來摞在桌角,摞了一尺高。午飯一個人吃,吃完繞著湖走一圈,回來繼續看。
他提的問題也不起眼,都在群裡,客客氣氣:
「請教一下,補償任務的掃描間隔三十秒,這個數當年是怎麼定的?」
「熱點商戶的賬戶行,鎖的粒度有歷史原因嗎?」
零零碎碎,問了四十多個問題。
韓磊有一搭沒一搭地答,答到第三十個問題的時候,心裡咯噔了一下——這些問題連起來看,像一張網,網眼收攏的方向,正是他們半年沒抓住的那條魚。
他沒跟人說。關係戶嘛,瞎貓碰上死耗子也是有的。
——
韓磊的「這攤子」,確實經不起折騰。
雲極的結算鏈路上,卡著一個半年沒解的頑疾。
每個月底,大客戶批次代扣的高峰時段,賬務服務的延遲就會從幾十毫秒飆到十幾秒,超時告警刷滿大屏。輕則賠錢道歉,重則大客戶流失。半年裡炸了六次,次次上升到陸之遠那裡。
三個團隊為這事打了半年的架。儲存組說是賬務組的鎖用得爛,賬務組說是閘道器的重試放大了流量,閘道器組說是儲存抖動引發的雪崩。
專項組立了三個,報告寫了幾百頁,問題巋然不動。
陳默入職第九天,月底,它又炸了。
晚上十點,賬務平臺的作戰會議室,三個組的人吵成一團。
「重試我們已經降到最低了!再降業務就斷了!」
「擴容!我說了多少次,加機器!」
「加了三倍了!延遲一秒都沒降!」
角落裡,那個「關係戶」新人忽然開口了。
「不用加機器。」
會議室靜了一下,所有人回頭。
陳默站起來,走到白板前面,拿起筆。
「我看了九天程式碼,也看了你們半年的復盤報告。」他說,「三個組都沒錯,所以三個組都修不好。」
韓磊皺眉:「什麼意思?」
「問題不在任何一個組的程式碼裡,在縫裡。」
陳默在白板上畫了三個框,又在框與框之間畫了兩條線。
「批次代扣的時候,熱點商戶的賬戶行被長事務鎖住。這個沒問題,誰寫都得鎖。」他在第一個框上打了個點,「閘道器超時重試,也沒問題,引數很保守。」
「問題是這兩件事疊在一起:重試進來的請求,和原請求搶同一把鎖,鎖佇列越排越長。而你們的補償任務,每三十秒掃一次未完成單據——它掃到這些排隊的單,以為失敗了,又生成一批衝正單。」
他在第三個框上重重一點。
「衝正單,也要搶那把鎖。」
會議室裡安靜得可怕。
「原單、重試單、衝正單,三路人馬擠一扇門。」陳默把筆帽扣上,「這不是容量問題,是死鎖的近親——活鎖。加十倍機器,只會讓門口擠得更快。」
儲存組的組長臉色變了,飛快地翻著筆記型電腦,越翻臉色越白。
「對……對得上。每次炸的前兩分鐘,補償任務的排程日誌都有一波尖峰……我們半年都以為那是結果,不是原因……」
韓磊盯著白板,半天憋出一句:「那怎麼解?」
「三步。」陳默重新拿起筆,「第一,熱點賬戶改非同步記賬,先記流水後更餘額,把長事務拆碎。第二,重試請求帶上原單指紋,同指紋的在佇列裡合併,不重複搶鎖。第三,補償任務加一個判斷——排隊中不等於失敗。」
他寫完,看了看錶。
「第三步最簡單,二十分鐘就能上線,今晚就能救火。前兩步做完,這個問題永久消失。」
晚上十一點四十分,第三步上線。
延遲曲線像被人一把摁了下去,從十幾秒,直落回八十毫秒。
大屏上刷屏的紅色告警,一片一片熄滅。
會議室裡沒人說話。半年,六次事故,三個專項組,幾百頁報告——被一個入職九天的人,二十分鐘摁死了。
韓磊默默走到飲水機邊上,接了杯水,放在陳默手邊。
「陳……老師。」他艱難地換了稱呼,「前兩步的方案,能帶我一起做嗎?」
「本來就該你們做。」陳默把水喝了,「我只是看了九天程式碼。你們守了它五年,改起來比我穩。」
韓磊愣了一下。
他見過太多空降的高人,破了案就搶功勞,發全員郵件,上晉升材料。把方案還給團隊的,第一個。
那天夜裡散會,韓磊在樓道里給老婆打電話,說得語無倫次:「……真人,我跟你說,是真人。深藏不露那種。我明天開始跟他混了。」
——
兩週後,前兩步全量上線。月底大客戶批次代扣,延遲峰值八十九毫秒,風平浪靜。
半年的頑疾,銷案。
銷案報告送到陸之遠桌上那天,陸之遠在高管群裡發了條訊息:建議給賬務平臺的陳老師辦個慶功會。
十分鐘後,沈硯轉達了當事人的回覆。
「他說不用。」沈硯念著手機,「原話是:故障消失是系統的本分,本分不慶功。要慶,等新底座上線那天一起。」
高管群裡安靜了一會兒,有人回了一句:這人是真的,別放走。
「角落裡那個新人」的事蹟還是在雲極內網傳開了。有人扒出他的工牌照片,發現職級欄是空白,帖子蓋了八百層樓。
「職級空白,懂了,深不可測。」
「聽說沈總管他叫老師。」
「二十分鐘摁死半年頑疾,我願稱之為掃地僧。」
「我賭他是哪個隱世大佬的馬甲。」
有人回帖:「查過了,前東家資料是某電商,P6,被裁的。」
下一層樓秒回:「P6?哪家公司瞎了眼把這種人裁了?讓我笑一會兒。」
八百層樓裡,沒有一個人猜到正確答案。
陳默沒看內網。他在自己的工位上,開始畫雲極新一代賬務底座的第一張架構圖。
圖的角落,他習慣性地留了一塊區域,標註:極端流量下的降級與逃生通道。
畫完這塊,他停了一下。
有些習慣,是十年前那個機房之夜刻進骨頭裡的:任何系統,都要給自己留一條活路。
——
同一時間,一百公里外,舊東家的大樓裡,顧維峰的融資路演進入了衝刺期。
五星級酒店的會議室裡,他對著一排投資人,講得神采飛揚。
「各位,看這條曲線。」雷射筆的紅點落在人效圖上,「組織最佳化之後,人均產出提升百分之四十。這就是我說的,把肌肉練出來,把脂肪切掉。」
「技術側,我們完成了史上最大規模的架構升級,新中臺全量上線,老舊系統全部清退,機器成本再降一千兩百萬。」
有個戴眼鏡的投資人翻著材料問:「顧總,全量切換趕在大促前完成,激進了點吧?灰度做充分了嗎?」
「李總,這個問題問得好。」顧維峰笑容不變,「我只說一句:怕出事的團隊,才需要用灰度安慰自己。我們的團隊,用實力說話。」
「大促當晚,歡迎各位到我們作戰指揮室現場觀摩。成交額大屏,就是我最好的路演材料。」
會議室裡響起禮貌的笑聲和掌聲。
散場的時候,那個姓李的投資人落在最後,多問了一句:「老系統清退……原來負責的團隊呢?」
「優化了。」顧維峰整理著袖口,輕描淡寫,「一個守了十年舊系統的老P6,名單第一個。李總,進化的第一刀,就得砍在最舊的地方。」
李總笑了笑,沒再說什麼,在筆記本上不動聲色地記了一行小字。
而同一棟樓的機房裡,活路正在被拆掉。
機房裡,周然蹲在老賬臺的機櫃前面,手裡捏著斷電工單,遲遲沒動手。
「磨蹭什麼呢?」資產回收的主管催他,「今天必須騰出來,中臺等著裝機呢。」
「哥,」周然小聲說,「這可是結算系統,真就……直接拔了?不留個冷備?」
「留什麼留,新中臺都切完量了。」主管拍了拍機櫃,「工單上白紙黑字,顧總籤的。拔。」
周然咬咬牙,按下了電源。
嗡嗡響了十年的風扇聲,一臺一臺停下來。指示燈一排一排熄滅,像一排安靜的呼吸,停了。
機房忽然安靜得讓人發慌。
周然站在黑掉的機櫃前,不知怎麼的,想起那個灰色套頭衫的背影說過的話。
——記住這排機器的樣子。安靜到沒人記得。
而二十層樓上,中臺組正在開誓師大會。
「灰度還剩六輪驗證沒跑完。」方遠捏著測試報告,硬著頭皮舉手,「鄭總,大促流量是平時的十倍,跨日衝正那塊我心裡沒底,能不能留百分之十的流量……」
「留給誰?」鄭豪打斷他,「老賬臺?機器都拆了!」
他環視會議室,聲音拔高:「顧總把身家性命押在這次大促上,融資就看這一戰!誰在這個節骨眼上唱衰,誰就是公司的罪人!」
方遠張了張嘴,把話嚥了回去,手指無意識地摸向包裡——那裡躺著一份他自己偷偷列印的文件,第六章被他翻得起了毛邊。
誓師大會的橫幅紅彤彤掛在牆上:
「大促必勝!全量切換!不留退路!」
——
當天晚上九點,雲極園區,陳默正要下班,手機震了一下。
老蔣發來的微信,就一句話:
「老賬臺今天斷電了。二十臺機器,下午全拆走了。」
後面跟了一個煙的表情。
陳默站在湖邊,看著這條訊息,很久。
晚風從湖面上過來,帶著點水汽。遠處園區的樓還亮著一半的燈。
他回了一個字:「嗯。」
過了幾秒,又打了一行:「幫我看著點方遠,大促那晚讓他把手機充滿電。」
老蔣回了個問號。
陳默沒再解釋,把手機揣回兜裡。
有些話沒法說。系統下線了,退路拆掉了,灰度沒跑完,十倍流量三天後進場——這幾件事單獨看,哪件都不致命。
疊在一起,就是他在交接手冊第三頁寫下那十一頁的原因。
他抬頭看了看天。六月底的夜空,雲層很厚,一場大雨在醞釀。
——
那之後的一個星期,時間不緊不慢地走。
舊東家的樓下廣場,大屏上的倒計時數字,從「7」一天一天往下跳,跳到「3」,跳到「2」,再跳到「1」。
紅底金字,映得半條街都是紅的。
像喜慶,也像警報。