第十九章 我是預言家

投票推薦 加入書籤 小說報錯

  鼎盛數字推薦系統全量上線了。

  韓路一刷到微博熱搜的時候是下午三點。#鼎盛推薦系統抽風#,排第十七。

  點進去,畫風很統一。

  「給我推嬰兒車。我二十三,單身,養了條狗。」

  「我的健身帳號刷出來全是保健品和助聽器。」

  「我看了一上午美食視頻,首頁給我推了個殯葬服務優惠。鼎盛大概覺得我吃太多了,提前幫我安排後事。」

  評論區充滿了快活的空氣。

  有人總結:「鼎盛的「猜你喜歡」應該改名「猜你是誰」,連我是誰都沒搞清楚就開始猜了。」

  韓路一沒笑。

  態規則引擎本身不至於這麼離譜,推得不準是正常的,但推得這麼驢唇不對馬嘴,說明數據管道出了問題。他一行一行寫出來的特徵提取模塊被砍掉之後,舊的用戶畫像格式和新引擎之間沒人做適配,輸入全是亂的。垃圾進,垃圾出。

  推嬰兒車不算什麼。等數據管道的緩衝區吃滿,後面的事就不好笑了。

  第二天上午,微博上的吐槽變了味,熱搜也衝到了第三。

  最高贊:「打開鼎盛買菜APP,給我推了一屏幕情趣用品,我媽就站在旁邊。我現在怎麼跟她解釋啊?」

  有人發:「我在深圳,「猜你喜歡」給我推了一整頁哈爾濱本地火鍋店。問了個哈爾濱的哥們,他那邊全是深圳奶茶店。我倆換號了?」

  有人跟:「不止你們。我和我同事的推薦頁一模一樣。連順序都一樣。」

  技術論壇這邊也炸了。

  一個ID叫「架構老狗」的資深開發者發了長帖:

  「說句不好聽的,這個推薦系統的改造路線非常眼熟。特徵提取從動態權重退回靜態規則,多模態融合模塊砍得只剩文本維度,NullPointer上個月那篇《七個經典陷阱》,第三、第五、第七個,鼎盛全踩了。建議寫個續集:《七個陷阱實戰教程,由某大廠傾情演繹》。」

  兩小時一百三十多贊。

  韓路一看了看自己那篇博客的閱讀量。一萬八。

  窗外的天空灰得像沒校色的顯示器。雨還沒下出來,空氣悶得發黏。

  還沒人意識到真正的問題有多大。

  到了晚上十一點半。

  韓路一睡前又刷了一眼微博。

  掛了兩天的話題#鼎盛推薦系統崩了#,熱度已經下去了。

  一個新的話題,#鼎盛崩了#,衝到了熱搜第一。

  他點進去。二十分鐘前,鼎盛系三款核心APP集體閃退,用戶打開就白屏。

  推薦系統的崩潰沒有觸發熔斷。壞掉的模塊像傳染病一樣順著調用鏈往上爬,拖垮了依賴它的內容分發、搜索、首頁加載,最後整條鏈路全死了。

  十一點十五分鼎盛發了緊急公告。十一點四十分,APP陸續恢復上線,他們手動把推薦系統整個切掉了。

  微博上有人貼了恢復後的截圖。首頁乾乾淨淨,沒有「猜你喜歡」,沒有個性化推薦,沒有千人千面。就一個光禿禿的貨架。

  「這是2015年的APP吧?」

  「鼎盛的推薦系統呢?去哪了?」

  「切了。不切整個APP都用不了,你選哪個?」

  韓路一打開視界。

  【事件性質:系統級故障(無熔斷→全鏈路雪崩)】

  【根因:畫像格式不適配→解析異常堆積→內存泄漏觸發OOM→數據管道斷裂→ 23%用戶畫像錯亂→推薦模塊崩潰未熔斷→級聯擊穿全鏈路】

  【影響範圍:宕機期間全量用戶(峰值約1200萬在線),當前降級運行中】

  【當前狀態:手動切斷推薦模塊,APP降級運行】

  【預測恢復周期:版本回退至原架構,約14天】

  跟他的判斷一模一樣。

  三月中旬他掃那個外包需求時看到的D-評級,一百四十個Bug,就指向這個結局。當時看到的是七十二小時。

  從周一上午全量上線到周二晚上全線崩潰,還不到四十八小時。

  比原本預估的還快了一天。


  ……

  天亮之後的事,像多米諾骨牌。

  有人翻出了韓路一一個月前那篇《推薦系統架構改造的七個經典陷阱》,發了一條帖子——

  「兄弟們!NullPointer是預言家!一個月前精準描述了鼎盛今天的崩潰路徑,七個陷阱全踩了!」

  「什麼預言家,是重生者!」

  「不是全踩。我數了數,至少五個。」

  「你數錯了。第二個和第六個也中了,只是症狀還沒完全暴露。」

  「所以是七個全踩?」

  「七殺。」

  帖子被版主置頂。博客閱讀量開始飆。中午兩萬九。下午四萬二。晚上破六萬。技術媒體引用,大廠群截圖傳播,連幾個頭部科技公眾號都轉了。

  404寢室群里也在討論。

  馬小飛丟了條連結進來:「你們看了嗎這個NullPointer?一個月前寫的文章,七個陷阱鼎盛全踩了。這人也太牛了吧。」

  張浩然:「技術圈都在轉。」

  馬小飛:「你們說這人會不會就是鼎盛內部的?不然怎麼寫得這麼准?」

  沒人接話。

  過了幾秒,韓路一打了一句:「是我寫的。」

  馬小飛:「???」

  張浩然:「NullPointer是你?」

  「嗯。別往外說。」

  馬小飛發了條語音,韓路一沒點開都知道他在喊什麼。

  張浩然:「知道了。」

  下午,討論從「鼎盛系統崩了」升級到了「誰的鍋」。有自媒體把時間線整理出來,鼎盛年初裁員,核心算法團隊換血,新團隊全面改造系統架構,兩個月後全量上線,兩天崩潰。配了一句:「教科書級別的管理災難。」

  評論區有人說了一句:「被裁的那個核心開發叫什麼來著?」

  沒人接話。帖子的瀏覽量繼續在漲。

  蘇念念在微信上轉了這條給他:「你之前做的不就是推薦系統嗎?這是不是你們組的?」

  韓路一回了個「嗯」。

  他關掉論壇,切回代碼編輯器。內測組反饋積了一堆,最集中的問題是誤報率,v0.2降到了7.8%,蘇念念標的目標是5%以下。二十三個內測用戶里四個人提了同一條:誤報太多,影響工作流。

  該幹嘛幹嘛。

  晚飯是冰箱裡的速凍水餃,煮了十個,吃了八個,剩兩個爛了倒掉。

  洗完碗坐回電腦前,九點半。

  微信彈了一條。趙啟明。

  「韓哥,睡了嗎?」

  韓路一回:「沒,怎麼了小明」

  「今天加班到現在剛回來,跟你說個事。

  「下午開了復盤會,陳博文全程在甩鍋。

  「說系統崩潰的根因是「前任核心開發者遺留的架構缺陷」。

  「PPT上你的名字出現了四次。什麼「過度耦合的動態權重設計導致系統脆弱性」,什麼「缺乏文檔交接」。二十三頁PPT,有四頁在說你。

  「放屁啊,那套動態權重是你寫的,跑了三年多沒出過事,他一上來全改崩了。

  「文檔我也寫了啊,他看都沒看。」

  韓路一看著這行字,沒動。

  過了幾秒。趙啟明又發了一條。

  「我在會上差點當場懟他。忍住了,簡歷還沒投出去呢。」

  「現在這環境,就當日結工資了。先把自己的事安排好。」

  「我有數。就是太他媽噁心了,跟你說一聲。」

  「嗯,知道了。謝謝【抱拳】」

  趙啟明發了個嘆氣的表情包。

  「行了韓哥,你早點睡。我也扛不住了」

  韓路一放下手機。屏幕暗了幾秒又亮了。是顧司玥。

  「鼎盛的事你看到了吧。小心被牽連,有情況隨時找我。」

章節目錄