第一章

慈雲路的強風,與信義區那場被「脆」流量癱瘓的尾牙

新竹的風是有形狀的,甚至是帶有惡意的。

凌晨一點四十五分,慈雲路。這條連接著竹科園區與竹北高鐵站附近的交通命脈,此刻正被東北季風無情地肆虐。風聲不像是在吹,而像是在撞,每一次撞擊二十三樓的氣密窗,都會發出一種令人牙酸的低頻轟鳴。這種聲音陸曉晨聽了六年,從她在清大唸研究所時騎著機車被風吹得偏離車道開始,到現在開著那輛二手的 Volvo 每天塞在經國橋上,這種風聲已經成了她生命中的背景音,一種象徵著「活著就是在對抗某種不可抗力」的隱喻。

辦公室裡早已空無一人。大多數工程師在十一點前就陸續撤退了,畢竟明天——不,今天——就是公司年度最重要的日子:「星雲優選(Nebula Select)」的正式發表會兼年終尾牙。沒有人想在這種時候猝死在鍵盤上,除了陸曉晨。

她是公司的共同創辦人兼技術長(CTO),這個頭銜聽起來很光鮮,但在這種創業公司裡,CTO 的另一個名字叫做「最後一個關燈的人」,或者是「那個負責擦屁股的人」。

陸曉晨伸手抓過桌邊的咖啡杯。這杯來自全家便利商店的特濃拿鐵已經徹底涼透了,表面浮著一層令人倒胃口的油脂。她盯著那層油脂看了一秒,還是仰頭灌了一大口。冰冷的液體滑過喉嚨,帶來一陣激靈,勉強壓下了太陽穴那一跳一跳的抽痛。

為了這杯咖啡,她在公司群組裡發起了團購,結果只有兩個實習生響應。最後結帳時,她還得額外支付 15 元的跨行轉帳手續費給負責跑腿的工讀生,因為她的薪轉戶頭和工讀生的不是同一家銀行。15 元。在這個年營收預估破億的專案前夜,她在意這 15 元。這讓她覺得自己很可笑,也很真實。這就是竹科人的縮影:手裡寫著價值千萬的程式碼,心裡算計著午餐便當能不能折抵五塊錢。

「Race Condition(競爭危害)。」

她對著螢幕低語,聲音沙啞得像是在吞嚥沙礫。螢幕上是密密麻麻的 Go 語言程式碼,那是星雲優選的核心推薦引擎——代號「奇美拉(Chimera)」。這套系統被行銷部門吹得天花亂墜,說是運用了最先進的 Transformer 模型,能精準預測用戶的下一次點擊,比用戶更懂他們想要什麼。

但此刻,這隻「奇美拉」正在發瘋。

在剛剛結束的一輪壓力測試中,當同時連線數達到十萬級別時,庫存鎖定機制出現了微小的延遲。雖然只是幾毫秒的誤差,但在高頻交易的場景下,這幾毫秒足以讓一百個人同時搶到最後一件商品。

如果不修好它,明天的發表會現場,當蘇蔓在台上宣佈「限量一千組輝達聯名福袋開賣」的那一瞬間,系統就會崩潰。更糟的是,可能會超賣。試想一下,如果有一萬個人付了錢卻拿不到貨,那些憤怒的消費者會把公司的客服電話打爆,然後湧入 PTT 的八卦板和 Dcard 的心情板,用最惡毒的語言問候蘇蔓的祖宗十八代。

想到蘇蔓,陸曉晨的手指頓了一下。

她拿起手機,解鎖,點開了 Threads。那個黑色的 icon 像是一個漩渦,吞噬著現代人的時間與焦慮。自從推特變成了 X,台灣的科技圈和行銷圈就集體遷徙到了 Threads,或者他們口中的「脆」。

首頁的第一條推文就讓她眉頭緊鎖。

「呵。」陸曉晨發出一聲冷笑。

這就是台北。這就是信義區。在她們為了幾毫秒的延遲焦頭爛額的時候,行銷部門的人在擔心裙子夠不夠閃亮,伴手禮夠不夠高級。這兩個世界隔著不到一百公里的距離,卻像是隔著整個銀河系。

蘇總。蘇蔓。

五年前,蘇蔓還不是什麼「蘇總」,她只是一個從外商銀行跳槽出來,對科技業一竅不通卻充滿野心的 PM。那時候她們窩在金山街那間只有十坪大的套房裡創業,蘇蔓負責畫大餅找錢,陸曉晨負責把那些大餅變成能跑的程式碼。那時候蘇蔓會穿著寬鬆的 T 恤,盤著腿坐在地上吃泡麵,指著電腦螢幕說:「曉晨,總有一天,我要讓全台灣的人都用妳寫的系統。」

現在,蘇蔓做到了。她成了媒體寵兒,成了「最美 CEO」,成了 Threads 上人人稱羨的都會女性模板。而陸曉晨,依然是那個躲在螢幕後面,穿著帽T,對著 Log 檔發呆的工程師。

手機震動了一下。是蘇蔓傳來的訊息。

「還在公司?」

只有三個字。沒有貼圖,沒有表情符號。這就是現在的蘇蔓,簡潔、高效,像個設定好程序的機器人。

陸曉晨猶豫了一下,回覆:「在修 Redis 的鎖定問題。快好了。」

對話框上方顯示「正在輸入...」,持續了很久,最後跳出來的一句話卻是:

「明天下午兩點,司機會在樓下等妳。別遲到,也別穿妳那件印著 Linux 指令的衣服。我幫妳準備了一套西裝,掛在妳辦公室的衣架上。」

陸曉晨抬頭,看了一眼掛在門後的那個黑色防塵袋。那是兩天前蘇蔓的助理送來的。她一次都沒打開過。

「知道了。」

她回了這三個字,然後把手機扔到一旁,重新將雙手放回那把 HHKB 靜電容鍵盤上。鍵盤發出「波波波」的沈悶聲響,這是她最喜歡的聲音,比任何音樂都更能讓她平靜。

「Redis 分布式鎖(Distributed Lock)……」她的思緒迅速切換回工程師模式,「如果在 SetNX 的時候加上隨機的過期時間抖動(Jitter),應該能避免雪崩效應。但是這樣會犧牲一點效能……」

窗外的風聲似乎更大了,像是有無數隻看不見的手在拍打著窗戶,試圖闖進這個充滿邏輯與秩序的堡壘。陸曉晨深吸一口氣,在終端機裡敲下了最後一行指令。

deploy@nebula-server:~$ ./deploy_hotfix.sh --force
[INFO] Starting hotfix deployment sequence...
[INFO] Backing up redis configuration...
[INFO] Applying patch: fix_inventory_lock_v2.go
[WARN] High traffic detected on production node. Proceed? (y/n) y
[INFO] Compiling... Success.
[INFO] Restarting service 'nebula-core'...
[SUCCESS] Deployment complete. Latency: 4ms.

綠色的「SUCCESS」在黑底螢幕上亮起,像是一顆定心丸。陸曉晨看著那行字,緊繃的肩膀終於垮了下來。

暫時安全了。

但她知道,這只是暴風雨前的寧靜。真正的風暴,明天才會在台北登場。

***

上午十點。陸曉晨被鬧鐘吵醒。她在辦公室的沙發上睡了四個小時,脖子像是被人打斷過一樣痛。

簡單洗漱後,她開著車前往高鐵新竹站。文興路上的風依舊大得嚇人,路邊的行道樹被吹得東倒西歪。這裡被稱為「竹北高鐵特區」,但在陸曉晨眼裡,這裡更像是一個巨大的風洞實驗室。

把車停好,她走進了那座充滿現代感卻總是略顯空曠的車站。雖然是週末,但車站裡依然擠滿了人。大多是帶著小孩的小家庭,或是拖著行李箱準備出國的商務客。

她買了一張商務艙的票。這是公司的福利,雖然她平時很少用。但在今天這種日子,她需要一點安靜的空間來整理思緒。

商務艙的空氣裡瀰漫著一股淡淡的咖啡味和皮革味。陸曉晨找到自己的位子坐下,服務生立刻遞上了一瓶水和一份小點心。

右邊坐著兩個穿著深色西裝的中年男人,正在低聲交談。

「……台積電這次的擴廠計畫你也看到了,這附近的房價肯定還要漲。」其中一個說道,手裡翻著一本財經雜誌,「我上個月在竹北看了一間預售屋,一坪已經喊到七十五萬了。」

「七十五萬?那還不如去買青埔。」另一個搖搖頭,「不過話說回來,那個黃仁勳不是又要來台灣了嗎?只要他一來,那些AI概念股就跟瘋了一樣。我家那個兒子,整天在那邊玩什麼 ChatGPT,說以後不用寫程式了,AI 都會幫他寫。」

陸曉晨忍不住在心裡翻了個白眼。

這就是外界對 AI 的理解。魔法。萬能藥。好像只要念一句咒語,所有的問題都會迎刃而解。他們不知道的是,這些所謂的「魔法」背後,是多少工程師熬夜寫出來的 If-Else,是多少次在崩潰邊緣的 Debug,是多少次面對著「Segmentation Fault」想砸電腦的衝動。

列車啟動,窗外的景色飛快向後退去。從新竹的稻田和鐵皮工廠,慢慢變成了桃園的台地,最後鑽進了通往台北的地下隧道。

手機訊號斷斷續續。陸曉晨看著窗外的黑暗,突然覺得這輛列車就像是一台時光機,正要把她從那個充滿邏輯和秩序的竹科,載往那個充滿慾望和混亂的台北。

「各位旅客,台北站到了。」

廣播聲響起。陸曉晨深吸一口氣,抓起背包,準備迎接這場名為「尾牙」的戰爭。

***

台北信義區。W Hotel。

台北的冬天是帶著惡意的濕冷。不同於新竹那種狂暴的物理攻擊,台北的冷是魔法攻擊,它會穿透妳的大衣,穿透妳的毛衣,直接黏附在妳的皮膚上,讓妳覺得骨頭縫裡都是濕氣。這幾天正好遇上號稱「十年最強」的霸王級寒流,整個信義區籠罩在一片灰濛濛的雨霧中,連 101 大樓的頂端都消失在雲層裡。

蘇蔓坐在 31 樓的總統套房裡,任由化妝師在她臉上塗塗抹抹。這間套房一晚的價格是十二萬台幣,足以抵掉一個資深工程師兩個月的薪水。但今天,這裡只是她的臨時休息室和戰情中心。

「蘇總,您的皮膚有點乾喔,最近是不是太累了?」化妝師一邊用輕柔的手法上著隔離霜,一邊小心翼翼地問道。

「大概吧。」蘇蔓閉著眼睛,聲音透著一絲疲憊,「這週睡不到十個小時。」

「天啊,那您待會還要上台演講,這樣身體吃得消嗎?」

蘇蔓沒有回答。吃不吃得消從來不是選項,只有「必須做」和「做不到」的區別。而她的字典裡沒有「做不到」。

這時,房門被推開,公關總監小安踩著高跟鞋快步走進來,手裡拿著兩台手機和一個平板,神情焦慮。

「蘇總,有些狀況。」小安壓低聲音,「剛剛有些媒體在問,聽說黃仁勳這次不會親自來,只是預錄影片?有些科技線的記者覺得被騙了,在群組裡抱怨。」

蘇蔓睜開眼睛,眼神瞬間變得銳利,剛才的疲態一掃而空。「不管是親自來還是預錄影片,重點是輝達的 Logo 會不會出現在我們的大螢幕上。只要老黃穿著那件皮衣說一句『Nebula is the future』,股價明天就會漲停。這些記者只是想騙點車馬費和獨家,不用理他們。把紅包準備厚一點就是了。」

「還有一件事……」小安吞吞吐吐,「Threads 上有個百萬流量的網紅,叫『美妝蛋塔』,剛剛發了一篇文,說她在測試我們的 App 時發現了一個 Bug,可以無限領取折價券。」

蘇蔓的心臟猛地跳了一下。「什麼?」

「她好像是我們的 Beta 測試用戶之一。她截圖發出來了,現在下面已經有幾千個留言在求教學。」

「該死。」蘇蔓猛地坐直身子,嚇了化妝師一跳,「陸曉晨呢?她到了沒?」

「陸總……剛下高鐵,正在過來的路上。但我打給她,她沒接。」

蘇蔓抓過自己的手機,撥通了那個熟悉的號碼。響了五聲,無人接聽。再撥,還是無人接聽。

「這個混蛋。」蘇蔓咬著牙,「她肯定又把手機開靜音了。只要離開電腦,她就像個失聯的風箏。」

她深吸一口氣,強迫自己冷靜下來。「小安,妳現在馬上去找技術部的副理,叫他在後台把那個折價券的領取入口先關掉。然後,發一篇官方聲明,就說那是我們特意留下的『彩蛋』,前一百名發現的用戶可以真的兌換,其他的我們會補發 100 元購物金。」

「把 Bug 說成彩蛋?」小安愣了一下,「這……行得通嗎?」

「這就是公關。」蘇蔓冷冷地說,「在這個時代,真相不重要,重要的是妳怎麼定義真相。快去!」

小安慌亂地點頭,轉身跑了出去。

房間裡重新安靜下來。化妝師拿著粉撲,尷尬地站在一旁,不知道該不該繼續。

「繼續吧。」蘇蔓閉上眼睛,「把黑眼圈遮好一點。今晚,我不能有一點瑕疵。」

她的手在絲絨長裙的布料下緊緊握成拳頭。這件墨綠色的禮服是她特意為了今晚挑選的,露背的設計性感而強勢,被媒體稱為「女王的戰袍」。但在這華麗的戰袍下,她貼了兩片暖暖包,卻依然覺得冷。

那是一種來自心底的寒意。

她突然很想念新竹。想念那間總是充滿了咖啡味和鍵盤聲的辦公室,想念那個總是穿著帽 T、不修邊幅,但只要她在就能解決所有問題的陸曉晨。

「曉晨,妳快點來。」她在心裡默唸,「這場秀,沒有妳我演不下去。」

***

下午三點半,陸曉晨終於出現在 W Hotel 的大廳。

她穿著那套蘇蔓準備的西裝。剪裁合身的黑色西裝外套,裡面是質地柔軟的白色絲綢襯衫,下身是俐落的西裝褲。雖然她堅持不穿高跟鞋,腳上還是那雙穿舊了的白色 Common Projects 休閒鞋,但在這身行頭的襯托下,竟然也有一種「科技新貴」的雅痞感。

只是她的表情臭得像剛吞了一隻蒼蠅。

「妳終於捨得出現了。」蘇蔓站在宴會廳門口,上下打量了她一番,眼神裡閃過一絲滿意,但嘴上依然不饒人,「我還以為妳會穿著拖鞋來。」

「高鐵商務艙很冷,這套西裝不夠保暖。」陸曉晨抱怨道,下意識地扯了扯領口,「而且這襯衫太滑了,感覺像沒穿衣服一樣。」

「那是義大利進口的真絲,一件要兩萬塊。」蘇蔓翻了個白眼,「還有,妳剛剛為什麼不接電話?」

「在隧道裡,沒訊號。」陸曉晨撒了個謊。其實她是不想接。她知道接了肯定沒好事,不是又要改需求,就是又要應付哪個白痴投資人。

「算了,現在不是吵架的時候。」蘇蔓把陸曉晨拉到角落,避開正在進場的媒體和嘉賓,「剛剛 Threads 上的事妳知道嗎?那個折價券 Bug。」

「知道。我在計程車上處理了。」陸曉晨平靜地說,「那不是 Bug,是行銷部設定參數的時候少打了一個零,把『限量 100 張』變成了『限量 10000000 張』。我已經從資料庫層級修正了,並且把溢出的請求都導向了一個靜態的『抱歉,您來晚了』頁面。」

蘇蔓愣了一下,隨即鬆了一口氣,臉上露出了一個真心的笑容。「我就知道妳靠得住。雖然妳人很難搞,但技術上從來沒讓我失望過。」

「那是行銷部的鍋,回去記得扣他們的績效。」陸曉晨面無表情地說。

「行行行,都聽妳的。」蘇蔓幫她整理了一下有點歪的領子,手指無意間碰到了陸曉晨的脖子。陸曉晨瑟縮了一下,皮膚上泛起一層細小的雞皮疙瘩。

兩人都僵了一下。那是一種微妙的電流,在兩人之間流竄。五年的並肩作戰,五年的相愛相殺,有些東西早就超越了單純的合夥人關係,但誰都沒有捅破那層窗戶紙。

「別動。」蘇蔓輕聲說,指尖在她的領口停留了兩秒,然後若無其事地收回,「待會上台,妳只要站在我旁邊微笑就好。其他的交給我。」

「我不上台行不行?我在後台監控數據……」

「不行。投資人想看這種『美女 CEO + 天才 CTO』的組合。這也是產品的一部分。」蘇蔓無情地拒絕了,「忍耐一下,只要兩個小時。結束後帶妳去吃信義區最好吃的拉麵。」

「我要加兩份叉燒。」

「加十份都行。」

***

晚間六點,發表會正式開始。

現場氣氛熱烈得近乎詭異。巨大的水晶吊燈折射出迷離的光線,香檳塔堆得像座小山,空氣中瀰漫著昂貴的香水味和金錢的味道。各種叫不出名字的網紅拿著自拍棒,對著鏡頭嘟嘴賣萌,大聲說著:「寶寶們,我們現在在星雲優選的發表會現場喔!聽說待會有驚喜!」

陸曉晨站在舞台側邊,覺得自己像是誤入異世界的愛麗絲,只不過這個仙境裡沒有兔子,只有穿著 PRADA 的惡魔。

蘇蔓在台上侃侃而談。她真的很擅長這個。她的聲音富有磁性,每一個手勢都經過精心設計,每一句「AI 賦能」、「顛覆體驗」都像是在念咒語,讓台下的觀眾聽得如癡如醉。

「接下來,就是我們今晚的重頭戲。」蘇蔓的聲音提高了一個八度,「為了慶祝星雲優選上線,我們準備了一千組『輝達聯名顯卡福袋』,原價 29,999,今晚首賣價……」

她故意停頓了一下,全場屏息。

「只要 2,999!」

歡呼聲幾乎掀翻了屋頂。

「但是,只有一千組。而且,必須通過我們的 AI 驗證,只有真正的玩家才能買到,黃牛全部退散!」蘇蔓自信地指著身後的大螢幕,「現在,請拿出手機,打開星雲 App,倒數計時……開始!」

大螢幕上跳出了巨大的數字:10,9,8……

陸曉晨手裡的平板顯示,即時流量曲線像是一條被激怒的眼鏡蛇,猛地昂起了頭,直衝天際。

十萬。五十萬。一百萬。

即時流量瞬間突破了歷史新高。這不正常。就算全台灣的顯卡玩家都來了,也不可能有這麼多。

「不對勁。」陸曉晨的瞳孔收縮。她看到日誌裡出現了大量的異常請求,User-Agent 顯示這些請求來自……越南和巴西?

是殭屍網路攻擊(DDoS)!

「3,2,1!」

隨著全場的倒數聲結束,蘇蔓按下了啟動按鈕。

本該出現的絢麗搶購畫面沒有出現。

大螢幕上卡住了。那個代表載入中的圈圈轉了兩圈,然後定格。

緊接著,一行白色的系統錯誤代碼赤裸裸地彈了出來,覆蓋了原本精美的 UI:

FATAL ERROR: Connection timed out
Redis: OOM command not allowed when used memory > 'maxmemory'.

Redis 記憶體爆了。

現場的歡呼聲像是被掐住脖子的鴨子,瞬間消失。取而代之的是一片錯愕的嗡嗡聲。

「怎麼回事?」
「當機了嗎?」
「我的 App 顯示伺服器維修中欸!」
「爛死了,還說什麼 AI 科技,連個搶購都扛不住。」

台上的蘇蔓,笑容僵在了臉上。那是陸曉晨這輩子見過最絕望的表情。那層完美的女王面具,在這一刻出現了裂痕,露出了下面那個驚慌失措的小女孩。

陸曉晨沒有猶豫。她扔下手中的平板,不顧一切地衝上了舞台。

在所有人的注視下,在無數閃光燈的聚焦下,她衝到了講台邊,一把推開了旁邊的操作員,雙手飛快地在控制台的鍵盤上敲擊起來。

「妳在幹什麼?」蘇蔓關掉麥克風,聲音顫抖地問。

「切換備援線路,開啟熔斷機制。」陸曉晨頭也不回,額頭上滲出了冷汗,「給我三十秒。妳繼續說話,隨便說什麼都好,別讓場子冷掉!」

蘇蔓深吸一口氣,強迫自己轉向觀眾,重新掛上那個搖搖欲墜的笑容。

「大家太熱情了!我們的 AI 正在全力篩選最優質的買家,這是為了公平起見,請大家稍安勿躁……」

而在她身後,陸曉晨正進行著一場無聲的戰爭。她的手指在鍵盤上飛舞,快得只能看到殘影。

重啟 Pod。清除快取。封鎖惡意 IP 段。擴展實例。

每一秒都像是一個世紀那麼漫長。

終於,螢幕上的紅字消失了。載入圈圈轉動了兩下,跳出了「搶購成功」的畫面。

台下有人喊道:「我買到了!」

歡呼聲重新響起,比剛才更加熱烈。

危機解除。

陸曉晨癱軟在椅子上,感覺全身的力氣都被抽乾了。她抬起頭,正好對上蘇蔓回過頭來的目光。

那一眼裡,包含了太多複雜的情緒:感激、後怕、埋怨,還有一絲不易察覺的依賴。

就在這時,陸曉晨的手機震動了一下。她拿起來一看,是 Threads 的推送。

陸曉晨看著那行「蘇蔓花瓶」,心裡突然湧起一股莫名的怒火。她抬頭看著台上那個依然在努力微笑、維持著完美的女人,心裡五味雜陳。

這場仗是打贏了,但有些東西,似乎已經回不去了。

慈雲路的風,終究還是吹到了信義區。而且,比想像中更冷。

Managed by Joker ❤️