創(chuàng)作聲明:本文為虛構(gòu)創(chuàng)作,請(qǐng)勿與現(xiàn)實(shí)關(guān)聯(lián)
“樊總,系統(tǒng)又報(bào)警了,這次比昨天更嚴(yán)重。”
“慌什么慌,不就是個(gè)報(bào)警嗎?找技術(shù)部的人看看。”
“可是...可是交易量太大了,系統(tǒng)快撐不住了。”
“撐不住?我們花了35萬(wàn)請(qǐng)的專家團(tuán)隊(duì)呢,他們不是說(shuō)48小時(shí)搞定嗎?”
“樊總,要不...要不還是聯(lián)系一下慕晴雨?”
“絕對(duì)不行!我就不信了,離了她我們就不會(huì)干活了?”
電話那頭傳來(lái)系統(tǒng)崩潰的警報(bào)聲,樊總的臉色瞬間變得煞白...
01
三月的春風(fēng)還帶著絲絲涼意,慕晴雨正在客廳里給剛滿三個(gè)月的寶寶換尿布。手機(jī)突然亮了一下,她以為是工作群里又有什么緊急情況,習(xí)慣性地點(diǎn)開微信。
“咦?怎么回事?”
慕晴雨皺著眉頭,發(fā)現(xiàn)自己的微信群列表里少了好幾個(gè)熟悉的群聊。核心技術(shù)群、項(xiàng)目群、架構(gòu)師群...一個(gè)都沒(méi)了。
“不會(huì)是手機(jī)出問(wèn)題了吧?”她嘀咕著,重新刷新了一遍,結(jié)果還是一樣。
慕晴雨心里咯噔一下,立刻打開VPN準(zhǔn)備登錄公司系統(tǒng)查看情況,結(jié)果彈出了一個(gè)令她不敢置信的提示:權(quán)限不足,無(wú)法連接。
“這什么意思?”她的聲音有些顫抖。
寶寶似乎感受到了媽媽情緒的變化,開始哭鬧起來(lái)。慕晴雨趕緊先哄孩子,心里卻亂成一團(tuán)。
等孩子安靜下來(lái),她立刻撥通了直屬領(lǐng)導(dǎo)樊總的電話。
“喂,樊總,我想問(wèn)一下,為什么我被踢出工作群了?還有VPN權(quán)限也...”
“哎呀,晴雨啊,”樊總的聲音聽起來(lái)格外和氣,“你現(xiàn)在不是在休產(chǎn)假嗎?我們這是為了讓你安心養(yǎng)娃,不被工作的事情打擾。你知道的,新媽媽最需要休息了。”
“可是我并沒(méi)有要求...”
“好了好了,公司的事你別操心了,專心帶孩子。有什么重要的事情我會(huì)直接聯(lián)系你的。”樊總不等她說(shuō)完就掛了電話。
慕晴雨愣愣地看著手機(jī),心里五味雜陳。她在公司干了五年,從一個(gè)普通程序員做到核心系統(tǒng)架構(gòu)師,負(fù)責(zé)的風(fēng)控系統(tǒng)是公司的生命線。現(xiàn)在突然被完全隔離,這明顯不正常。
“老公,你說(shuō)樊總這是什么意思?”等老公下班回來(lái),慕晴雨把今天的事情說(shuō)了一遍。
“估計(jì)是想證明沒(méi)有你他們也能干活吧,”老公邊脫外套邊說(shuō),“你也別太在意,反正你現(xiàn)在確實(shí)需要休息。”
“可是我設(shè)計(jì)的那套風(fēng)控系統(tǒng)...”慕晴雨欲言又止。
她心里清楚,那套系統(tǒng)的核心邏輯只有她完全掌握,雖然留了文檔,但很多細(xì)節(jié)和設(shè)計(jì)思路并沒(méi)有詳細(xì)記錄。不是她故意要藏私,而是有些經(jīng)驗(yàn)性的東西很難用文字完全表達(dá)清楚。
第二天,慕晴雨忍不住給老同事宗岳發(fā)了個(gè)微信。
“岳哥,最近公司怎么樣?我被踢出群了,有點(diǎn)擔(dān)心。”
過(guò)了半個(gè)小時(shí),宗岳才回復(fù):“別提了,樊總現(xiàn)在天天在會(huì)上說(shuō)'系統(tǒng)架構(gòu)其實(shí)很簡(jiǎn)單,換誰(shuí)都能維護(hù)',還說(shuō)什么'某些人不在,我們反而更團(tuán)結(jié)高效'。”
慕晴雨看到這條消息,氣得手都在發(fā)抖。
“他還說(shuō)什么了?”
“他讓新來(lái)的那個(gè)顏修在重新梳理系統(tǒng)架構(gòu),說(shuō)要'優(yōu)化冗余代碼,提高系統(tǒng)效率'。我看那小子天天加班到很晚,但看起來(lái)挺吃力的。”
慕晴雨冷笑了一聲。她對(duì)這個(gè)顏修有印象,名校畢業(yè),簡(jiǎn)歷很漂亮,但都是做一些相對(duì)簡(jiǎn)單的業(yè)務(wù)系統(tǒng),對(duì)金融風(fēng)控系統(tǒng)的復(fù)雜性根本沒(méi)有概念。
“那個(gè)系統(tǒng)可不是看起來(lái)那么簡(jiǎn)單,”慕晴雨在心里暗想,“等著瞧吧。”
02
一個(gè)月后,宗岳又發(fā)來(lái)消息:“晴雨,告訴你個(gè)大消息,公司接了個(gè)超級(jí)大單!”
“多大?”
“3.2億!給恒泰投資基金做交易系統(tǒng),老板高興壞了。”
慕晴雨倒吸一口涼氣。3.2億的項(xiàng)目,這在他們公司歷史上絕對(duì)是頭一次。
“客戶要求怎么樣?”
“嚴(yán)格得要命,系統(tǒng)崩潰一分鐘賠償50萬(wàn),延期交付每天違約金200萬(wàn)。不過(guò)樊總信心滿滿,說(shuō)肯定沒(méi)問(wèn)題。”
慕晴雨心里咯噔一下。以她對(duì)系統(tǒng)的了解,如果顏修真的按照樊總說(shuō)的去“優(yōu)化”代碼,刪除那些看似“冗余”的部分,那在高并發(fā)的情況下系統(tǒng)很可能出問(wèn)題。
她想了想,還是給宗岳發(fā)了個(gè)提醒:“岳哥,你跟顏修說(shuō)一聲,風(fēng)控模塊里的那些多重驗(yàn)證機(jī)制千萬(wàn)別動(dòng),那些不是冗余代碼。”
“我試試吧,不過(guò)現(xiàn)在樊總盯得很緊,我們也不好說(shuō)什么。”
一周后,公司開全員大會(huì),慕晴雨在家也能通過(guò)內(nèi)部直播看到。
樊總站在臺(tái)上,意氣風(fēng)發(fā)地說(shuō):“這次3.2億的大項(xiàng)目,是對(duì)我們技術(shù)實(shí)力的考驗(yàn)。我相信,我們的團(tuán)隊(duì)完全有能力勝任。有些人可能覺(jué)得某些核心系統(tǒng)離不開某個(gè)人,但我要告訴大家,沒(méi)有誰(shuí)是不可替代的。相反,某些人不在,我們反而更團(tuán)結(jié),更高效!”
臺(tái)下響起熱烈的掌聲。
慕晴雨看著屏幕里樊總得意的表情,對(duì)老公說(shuō):“等著看好戲吧。”
“你這么確定會(huì)出問(wèn)題?”
“我設(shè)計(jì)那套系統(tǒng)的時(shí)候,考慮的就是極端情況。那些看似冗余的代碼,實(shí)際上是多重保險(xiǎn)。一旦遇到突發(fā)的高并發(fā),沒(méi)有這些機(jī)制,系統(tǒng)肯定撐不住。”
慕晴雨的預(yù)感很快就得到了驗(yàn)證。項(xiàng)目啟動(dòng)后,顏修果然按照樊總的要求開始“優(yōu)化”系統(tǒng)。
宗岳偷偷告訴她:“顏修把你那套多重驗(yàn)證機(jī)制給簡(jiǎn)化了,說(shuō)什么'現(xiàn)在的硬件性能這么好,不需要這么復(fù)雜的邏輯'。樊總還夸他思路清晰,有創(chuàng)新精神。”
慕晴雨聽了直搖頭:“他們根本不懂金融風(fēng)控系統(tǒng)的特點(diǎn)。股票交易不是普通的電商系統(tǒng),一旦出現(xiàn)異常波動(dòng),交易量會(huì)在短時(shí)間內(nèi)暴增幾十倍。沒(méi)有足夠的緩沖機(jī)制,系統(tǒng)必然崩潰。”
“那你要不要提醒一下?”
“我現(xiàn)在說(shuō)什么他們也不會(huì)聽,反而會(huì)覺(jué)得我是在故意搗亂。算了,讓他們自己體驗(yàn)一下吧。”
慕晴雨心里其實(shí)挺復(fù)雜的。一方面,她對(duì)樊總的做法很憤怒,憑什么把她踢出群,還說(shuō)那些難聽的話?但另一方面,她也擔(dān)心真的出了大問(wèn)題,會(huì)影響到公司和同事們。
不過(guò)她也知道,以樊總現(xiàn)在的態(tài)度,就算她主動(dòng)聯(lián)系,對(duì)方也不會(huì)聽的。只能走一步看一步了。
03
項(xiàng)目上線的前幾天還算順利,交易量正常,系統(tǒng)運(yùn)行穩(wěn)定。樊總在群里得意洋洋地說(shuō):“看見沒(méi)?什么核心架構(gòu)師,不過(guò)如此。系統(tǒng)不是照樣跑得好好的?”
但是,第五天的情況徹底改變了一切。
那天早上,國(guó)際市場(chǎng)傳來(lái)一個(gè)重大消息,全球股市瞬間震蕩。國(guó)內(nèi)市場(chǎng)開盤后,交易量暴增,各大投資機(jī)構(gòu)都在瘋狂調(diào)整倉(cāng)位。
恒泰投資基金的交易系統(tǒng)承受著前所未有的壓力。
上午十點(diǎn),第一次報(bào)警。
“系統(tǒng)響應(yīng)時(shí)間超過(guò)閾值,當(dāng)前延遲3秒。”
顏修看到報(bào)警,覺(jué)得問(wèn)題不大,調(diào)整了一下數(shù)據(jù)庫(kù)連接池參數(shù)。
十點(diǎn)半,第二次報(bào)警。
“并發(fā)連接數(shù)超過(guò)預(yù)設(shè)值,系統(tǒng)負(fù)載過(guò)高。”
顏修開始緊張了,趕緊聯(lián)系運(yùn)維團(tuán)隊(duì)增加服務(wù)器資源。
十一點(diǎn),災(zāi)難來(lái)臨。
“系統(tǒng)響應(yīng)超時(shí),多個(gè)模塊失效,交易服務(wù)不可用。”
所有的交易界面都顯示“系統(tǒng)維護(hù)中”,上千萬(wàn)資金被鎖定在半空中,無(wú)法正常提取或轉(zhuǎn)移。
恒泰基金的負(fù)責(zé)人電話直接打到了CEO辦公室:“你們這是什么破系統(tǒng)?我們的資金全部被鎖死了!現(xiàn)在市場(chǎng)變化這么快,一分鐘的損失都是幾百萬(wàn)!”
CEO臉色鐵青,立刻召集所有技術(shù)負(fù)責(zé)人開緊急會(huì)議。
“怎么回事?系統(tǒng)為什么會(huì)在這個(gè)時(shí)候崩潰?”CEO的聲音幾乎是在吼。
樊總滿頭大汗:“可能...可能是交易量太大了,超出了預(yù)期。”
“預(yù)期?你們不是說(shuō)系統(tǒng)經(jīng)過(guò)全面優(yōu)化,完全可以應(yīng)對(duì)高并發(fā)嗎?”
顏修在旁邊小聲說(shuō):“我...我可能刪除了一些保護(hù)機(jī)制,以為那些是冗余代碼...”
“什么叫可能?到底刪了什么?”
“就是...就是一些多重驗(yàn)證和緩沖機(jī)制,我覺(jué)得會(huì)影響系統(tǒng)性能...”
CEO徹底怒了:“現(xiàn)在立刻恢復(fù)!馬上!”
“可是...可是我不太確定具體的邏輯,當(dāng)時(shí)的文檔記錄得不夠詳細(xì)...”顏修的聲音越來(lái)越小。
這時(shí)候,有人提議:“要不聯(lián)系一下慕晴雨?她最了解這套系統(tǒng)。”
樊總立刻反對(duì):“絕對(duì)不行!絕不能讓她看我們的笑話!再說(shuō)了,系統(tǒng)是我們團(tuán)隊(duì)開發(fā)維護(hù)的,沒(méi)理由找一個(gè)休產(chǎn)假的人來(lái)救場(chǎng)。”
“那你說(shuō)怎么辦?客戶那邊已經(jīng)在準(zhǔn)備起訴了,每分鐘損失都是天文數(shù)字!”
樊總咬咬牙:“給我48小時(shí),我一定把系統(tǒng)修好!”
但是,48小時(shí)過(guò)去了,系統(tǒng)依然癱瘓。顏修和整個(gè)技術(shù)團(tuán)隊(duì)連續(xù)兩天兩夜沒(méi)合眼,嘗試了各種方法,但系統(tǒng)就是起不來(lái)。
更可怕的是,每次嘗試修復(fù),都會(huì)引發(fā)新的問(wèn)題。數(shù)據(jù)一致性開始出現(xiàn)異常,部分交易記錄丟失,情況越來(lái)越糟糕。
CEO再次召開緊急會(huì)議,這次語(yǔ)氣更加嚴(yán)厲:“樊總,你還有什么辦法?客戶已經(jīng)發(fā)了律師函,要求賠償違約金。按照合同,每天200萬(wàn),現(xiàn)在已經(jīng)兩天了!”
樊總臉色煞白,聲音都在顫抖:“我...我再想想辦法。”
“還想什么辦法?現(xiàn)在立刻聯(lián)系慕晴雨!”
“不...不行,這會(huì)讓公司很沒(méi)面子的...”
“沒(méi)面子?現(xiàn)在是面子的問(wèn)題嗎?再拖下去公司就要破產(chǎn)了!”
就在這時(shí),樊總想到了一個(gè)“絕妙”的主意。
04
“我有辦法了!”樊總突然站起來(lái),眼中閃爍著某種光芒。
“什么辦法?”CEO急切地問(wèn)。
“我們找外包公司!找那種專門做金融系統(tǒng)的頂級(jí)團(tuán)隊(duì),肯定比我們自己摸索要快得多。”
“外包?靠譜嗎?”
“當(dāng)然靠譜!我知道一家叫云峰科技的公司,專門做金融風(fēng)控系統(tǒng),團(tuán)隊(duì)都是業(yè)內(nèi)頂尖的架構(gòu)師。雖然價(jià)格可能高一點(diǎn),但這種緊急情況下,花點(diǎn)錢是應(yīng)該的。”
CEO想了想,點(diǎn)點(diǎn)頭:“行,你去聯(lián)系。但是有個(gè)前提,必須48小時(shí)內(nèi)搞定!”
樊總立刻撥通了云峰科技的電話。
“喂,你好,我是晟達(dá)科技的技術(shù)總監(jiān)。我們有個(gè)緊急項(xiàng)目需要支援...”
“金融風(fēng)控系統(tǒng)?交易系統(tǒng)崩潰?”電話那頭的聲音很專業(yè),“這種緊急修復(fù)項(xiàng)目我們接過(guò)不少,不過(guò)價(jià)格不便宜。”
“多少錢?”
“35萬(wàn),48小時(shí)內(nèi)保證修復(fù)。我們團(tuán)隊(duì)都是業(yè)內(nèi)頂尖的架構(gòu)師,有多年金融系統(tǒng)開發(fā)經(jīng)驗(yàn),這點(diǎn)問(wèn)題對(duì)我們來(lái)說(shuō)不算什么。”
樊總咬咬牙:“好!成交!”
掛了電話,樊總長(zhǎng)出一口氣。35萬(wàn)雖然不少,但比起天價(jià)違約金,這點(diǎn)錢算什么?最關(guān)鍵的是,這樣他就不用去求慕晴雨了。
第二天上午,云峰科技的5人專家團(tuán)隊(duì)到達(dá)公司。領(lǐng)隊(duì)是一個(gè)叫陳棟的技術(shù)總監(jiān),40多歲,戴著金絲眼鏡,看起來(lái)很有權(quán)威感。
“樊總您好,我們是云峰科技的應(yīng)急響應(yīng)團(tuán)隊(duì)。能先看看系統(tǒng)的具體情況嗎?”
樊總親自陪同他們來(lái)到技術(shù)部,顏修已經(jīng)準(zhǔn)備好了所有的資料。
“這是系統(tǒng)架構(gòu)圖,這是數(shù)據(jù)庫(kù)設(shè)計(jì)文檔,這是...”顏修一股腦地把資料全部拿出來(lái)。
陳棟接過(guò)資料,快速翻閱了幾頁(yè),眉頭逐漸皺了起來(lái)。
“這個(gè)系統(tǒng)...設(shè)計(jì)得挺復(fù)雜的啊。這個(gè)多重驗(yàn)證機(jī)制是誰(shuí)設(shè)計(jì)的?”
“是我們之前的一個(gè)架構(gòu)師,不過(guò)她現(xiàn)在休產(chǎn)假了。”顏修解釋道。
“她的聯(lián)系方式有嗎?有些設(shè)計(jì)思路我需要確認(rèn)一下。”
樊總立刻插話:“不用聯(lián)系她,你們不是說(shuō)48小時(shí)能搞定嗎?我們相信你們的專業(yè)能力。”
陳棟看了樊總一眼,沒(méi)再說(shuō)什么,開始和團(tuán)隊(duì)成員研究代碼。
但是,隨著深入了解,云峰科技的團(tuán)隊(duì)越來(lái)越沉默。
這套系統(tǒng)的復(fù)雜程度遠(yuǎn)超他們的想象。代碼層層嵌套,邏輯環(huán)環(huán)相扣,很多關(guān)鍵算法的注釋極其簡(jiǎn)單,根本看不懂設(shè)計(jì)原理。
更可怕的是,系統(tǒng)崩潰后的現(xiàn)場(chǎng)已經(jīng)被顏修的多次修復(fù)嘗試搞得一團(tuán)糟,到處都是臨時(shí)補(bǔ)丁,根本分不清哪些是原始代碼,哪些是后來(lái)添加的。
下午,陳棟私下找到樊總。
“樊總,我們需要更多時(shí)間。這個(gè)系統(tǒng)的設(shè)計(jì)者水平很高,代碼架構(gòu)非常復(fù)雜,我們需要仔細(xì)研究才能找到問(wèn)題根源。”
樊總急了:“可是我們說(shuō)好48小時(shí)的!35萬(wàn)不是白花的!”