如果說馬來西亞子公司上線切換作為全公司參與級彆(各業務部門同時參加)的“渡河”第一戰。
那在真正意義上渡河戰役之前的前哨戰則是係統開發,這是獨屬於華興it的獨角戲。
四周前的2016年10月21日,淩晨1點17分。
華興阪田總部g1大樓23層作戰指揮中心,空調出風口不停噴出新風。
此刻窗外的城市燈火也開始逐漸熄滅。
李峰的手指在鍵盤上敲出急促的鼓點,眼睛死死盯著屏幕上滾動的代碼日誌。
作為自研er項目的項目經理,他已經30個小時沒合眼。
眼下泛著青黑,頭發亂糟糟的,關鍵是臉上的油感覺比電腦還亮幾分。
作戰室中央的巨幕上,200+個監控指標正在進行最後的基線校驗。
紅色預警燈每隔三分鐘就會閃爍一次,像某種機械生物的呼吸。
“供應鏈模塊初始化失敗。”負責配置管理的趙宏明聲音特彆大,他是從蓉城過來支持項目,“自研數據庫的存儲過程和舊係統的兼容性測試通過了七輪,怎麼一到生產環境就報錯?”
自從被陳默喂飯升職以後,趙宏明就成了他的鐵杆擁護者。
本來這次支援是不需要他這個主管過來的,他愣是帶上幾個核心骨乾工程師直接飛過來。
說是這馬上產品迭代開發的第一個版本就要上線了,想要儘一些綿薄之力。
會議桌上擺著三十多份夜宵套餐,從潮汕牛肉丸到麻辣香鍋,熱氣混著鍵盤清潔劑的味道在空氣中遊蕩。
陳默靠在牆角,手中杯子裡的茶已經涼透,目光卻始終停留在巨幕右下角的倒計時:
距離代碼凍結還有2小時13分鐘。
作為項目領導小組主要負責人之一,他這會兒儘量在角落裡麵看著,免得下屬們緊張。
“把存儲過程的執行計劃調出來。” 李峰的聲音帶著沙啞,手指在觸控屏上快速滑動,“第三十七行的事務鎖參數沒對齊,舊係統用的是oracle的行級鎖,咱們的高斯數據庫默認是表級鎖,得手動添加鎖粒度聲明。”
他突然轉頭看向坐在斜後方的數據庫組負責人劉洋,“上周不是說兼容性方案裡加了自動轉換層嗎?”
劉洋推了推滑到鼻尖的眼鏡,麵前的三台顯示器分彆顯示著數據庫日誌、架構圖和代碼比對界麵:“轉換層在測試環境沒問題,但生產環境的負載均衡策略裡,第三節點的讀寫分離配置漏了鎖機製的關聯參數。”
他調出配置文件,“現在有兩個選擇:要麼回退到舊鎖策略,要麼現場修改負載均衡配置。”
作戰室裡響起此起彼伏的吸氣聲。
回退意味著前三天的聯調成果作廢,而現場修改則要承擔配置失誤導致係統崩潰的風險。
李峰的手指懸在鍵盤上方,遲遲沒有落下。
他清楚,這個決策不僅關係到今晚的上線,更會影響整個渡河項目的節奏。
渡河er的第一個可運行版本必須在11月13日前完成技術驗證,這是陳默在月度例會上拍板的死線。
但他不甘心,他一直都是奔著提前完成項目進度的目標去的。
陳默看李峰有些猶豫,終於開口,聲音平穩卻帶著不容置疑的力度:“按新鎖策略改。”
他向前走了兩步,帶起的風讓桌上的文件輕輕翻動,“上周在蓉城研究所的壓力測試裡,新鎖策略的吞吐量比舊方案高出不少,現在回退就是給後續的業務適配埋雷。劉洋,你帶兩個人去現場調負載均衡,需要求助的話找馮亦如。李峰同步準備應急預案,一旦第三節點掛掉,立刻切到備用集群。”
“收到。” 劉洋抓起工牌就往外跑。
“趙宏明,把第三節點的配置權限給我開放到最高級;王磊,準備好數據庫切換腳本,我數到三就執行預演流程。”陳默的聲音卻出奇的冷靜。
時間在鍵盤敲擊聲和對講機的電流聲中緩慢流逝。
陳默走到茶水間,給自己換了杯熱茶,目光掃過作戰指揮室。
it運維支撐部下屬的三個四級部門負責人此刻全都在這裡。
胡笳盯著桌麵雲的資源調度曲線,張福全在和基礎架構團隊確認服務器負載,徐雙龍和李峰在討論彈性域遷移問題。
這算什麼?自己把自己一鍋端了?
他忽然意識到,這個曾經被質疑 “搞運維的不懂研發” 的團隊,此刻加入到了創造華興曆史上最複雜的係統工程中。
淩晨2點45分,巨幕上的紅色預警燈終於熄滅,200+監控指標全部轉為綠色。
李峰癱在椅子上,看著係統日誌裡的 “初始化完成” 提示,突然笑出聲來。
他大聲的喊了一聲,“兄弟們,冒煙測試通過了。”
作戰室裡響起稀稀拉拉的掌聲,有人開始狼吞虎咽地扒拉已經涼了的夜宵,有人靠在椅背上閉目養神。
隻有鍵盤敲擊聲依舊密集,後續的功能驗證需要覆蓋137個核心業務場景,每個場景都要在測試環境裡跑三輪。
陳默走到李峰身邊,遞過去一瓶礦泉水:“供應鏈模塊的庫存同步邏輯,明天上午讓趙坤的解決方案部來做業務校驗。”
他指了指屏幕上的數據流圖,“渡河er的第一個版本不需要完美,隻要證明技術路線可行。記得儘快把係統性能數據同步給徐董,也算是報喜了。”
他清楚這個版本的上線意味著什麼:不是終點,而是殘酷戰場的。
自研er要取代oracle,不僅要過技術關,更要過業務關。
那些在舊係統裡浸淫十年的業務部門,才是真正需要攻破的“堡壘”。
淩晨3點12分,測試環境的功能驗證開始。
陳默看著測試工程師在模擬界麵上創建采購訂單,數據流沿著自研的中間件層層傳遞,最終在自研數據庫裡生成對應的庫存扣減記錄。
這個在舊係統裡再普通不過的操作,此刻卻讓整個作戰室的同事們都屏住了呼吸。
“訂單創建成功,庫存同步延遲08秒。”開發組leader辛嘉豪的聲音帶著顫抖,“比舊係統快了12秒!”
掌聲終於響亮起來,有人吹起了口哨,更多人是長出一口氣。
手機震動,彈出徐總的消息:“聽說冒煙測試過了?黎明前最黑,但你們已經摸到了天亮的脈搏。”
陳默笑了笑,今天第一版上線注定是不眠夜,徐總也在等結果。
他思考了一會兒,才回複道:“第一仗打完了,第二仗馬上開始。”
渡河er真正的挑戰其實不是技術上線,而是讓業務部門接受這個“新生兒”,後麵馬來西亞子公司封測和試運行才是真正的硬仗。
清晨6點,第一縷陽光爬上玻璃幕牆,作戰室裡的燈依然關著。
李峰趴在桌上打盹,手機屏幕還亮著,上麵是淩晨4點多他老婆發的消息,問他第一版上線是否順利。
陳默輕輕蓋上他的筆記本電腦,目光落在作戰室牆上的白板。
上麵是他剛剛用紅筆寫著的後續計劃:
11月1日,業務部門首輪適配會議;
11月15日,海外子公司試點準備;
12月31日,核心財務模塊聯調完成。
早上7點,作戰室的門被推開,食堂的工作人員送來早餐。
李峰揉著眼睛站起來,放下心事的他看著熱氣騰騰的豆漿和油條胃口大開,突然大聲說道:“放開那些油條,我要打十個。”
眾人哄笑,疲憊的臉上終於有了血色。
陳默拿起一個包子,咬下的瞬間,嘗到了久違的煙火氣。
窗外的城市已經蘇醒,寫字樓的燈光又開始次第亮起。