第213章 項目安排

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

  九點整,辦公室門被敲響。菲奧娜探頭進來:「老闆,要咖啡嗎?」

  「兩杯,黑咖啡。」凌雲說。

  菲奧娜端進來兩個白色馬克杯,放下後離開,帶上了門。

  凌雲端起咖啡喝了一口,沒加糖也沒加奶。艾瑞克也喝了一口,然後繼續翻看技術文件。

  「開發階段分三期,」凌雲走到白板前,指著右邊那張空白日程表,「第一期,三個月,出核心框架。支持基本的HTTP請求處理,靜態文件服務,達到一萬並發目標。」

  他在日程表上寫下:

  Phase 1 (12/15-3/15): 核心框架

  - 事件驅動模型

  - 基礎HTTP解析

  - 靜態文件模塊

  - 1萬並發達標

  「第二期,」凌雲繼續寫,「兩個月,完善功能。加反向代理、負載均衡、日誌模塊,達到五萬並發。」

  Phase 2 (3/16-5/15): 功能完善

  - 反向代理

  - 負載均衡

  - 訪問日誌

  - 5萬並發達標

  「第三期,一個月,優化和穩定。壓測,調優,文檔,準備發布。」

  Phase 3 (5/16-6/15): 優化發布

  - 性能調優

  - 穩定性測試

  - 文檔編寫

  - 正式發布

  艾瑞克看著日程表,眉頭微皺:「時間很緊,尤其是第一期,三個月要從零搭出框架,還要達到一萬並發。光事件驅動模型和HTTP解析,就至少需要兩個月。」

  「所以需要抓緊時間。」凌雲說,「項目組實行彈性工作制,但核心期晚上和周末可能要搭進去,獎金和期權會體現。」

  艾瑞克在筆記本上計算了一下:「如果按每天十小時,每周六天算……技術上可能,但人會很累。」

  「累就累三個月。」凌雲說,「做成了,這個產品能定義未來十年的Web伺服器市場。做不成,我們可能錯過一個關鍵機會窗口。」

  艾瑞克沒再反駁。他在日程表旁邊寫下幾個關鍵日期:12/20 團隊組建完成、1/15 原型演示、2/28 一期驗收。

  「團隊組成,」凌雲回到辦公桌,打開筆記本電腦,調出一張組織結構圖,「總共十人。你負責整體架構和核心模塊。下面分四個小組。」

  投影儀亮起,屏幕上顯示:

  Nexus 項目組 (20人)

  ├── 架構設計 (艾瑞克 + 1)

  ├── 事件與網絡組 (8人)

  ├── HTTP與模塊組 (8人)

  ├── 測試與工具組 (2人)

  「事件與網絡組負責事件驅動模型、TCP連接管理、內存池。」凌雲用雷射筆點著屏幕,「HTTP組負責協議解析、模塊接口、反向代理。測試組寫壓測腳本、做性能分析、輔助調試。」

  艾瑞克盯著屏幕看了會兒:「人員分配你有建議嗎?」

  「有。」凌雲切換幻燈片,顯示每個人名和背景,「事件組建議讓戴維手下那個俄羅斯工程師負責,安德烈。他寫過底層網絡庫。HTTP組從星語團隊調一個,熟悉協議。測試組新招。」

  「戴維會放人嗎?」

  「已經談過了。」凌雲說,「安德烈下周轉過來。」

  艾瑞克在筆記本上寫下人名,並在旁邊標註分組。寫完他抬頭:「開發環境呢?用什麼工具鏈?」

  「統一用GCC,C語言,」凌雲說,「代碼風格參照Linux內核,4空格縮進,K&R風格。版本控制用CVS,每天自動構建。測試伺服器已經訂了,下周到貨,雙CPU,4G內存,夠初期用了。」

  「文檔標準?」

  「每個模塊必須有設計文檔,注釋率不低於30%。接口文檔用Doxygen生成。用戶手冊單獨寫,要能讓運維看懂。」

  艾瑞克記下。他翻到筆記本新的一頁,畫了一個簡單的甘特圖,把三個階段的起止日期填進去,然後標出幾個關鍵里程碑。


  「風險點,」他邊畫邊說,「事件驅動模型的穩定性是最大的。如果事件循環出bug,整個伺服器會掛。需要大量測試。」

  「所以測試組要儘早介入,」凌雲說,「讓他們寫自動化測試,覆蓋邊界情況。特別是高並發下的內存泄漏和文件描述符耗盡。」

  「性能調優怎麼做?」

  「用oprofile採樣,找熱點函數。網絡I/O用tcpdump抓包分析。關鍵路徑的彙編代碼要審查。」

  艾瑞克點頭,在甘特圖上標記了幾個性能測試的時間點。

  辦公室安靜下來,只有艾瑞克寫字的沙沙聲,和窗外偶爾傳來的汽車聲。

  九點三十分,菲奧娜再次敲門:「老闆,十點你有會,和暴雪的電話會議。」

  「知道了。」凌雲說。

  艾瑞克合上筆記本,站起來:「我下午出詳細的任務分解,明早發給你。」

  「好。」凌雲也站起來,從桌上拿起一個U盤遞給艾瑞克,「這裡面有更詳細的設計文檔,還有我收集的一些論文,關於事件驅動和高並發架構。你有空看看。」

  艾瑞克接過U盤,插進口袋。

  「另外,」凌雲說,「下周三開項目啟動會,全體成員參加。你準備一下技術宣講。」

  「明白。」

  艾瑞克走到門口,手放在門把上,又停住,回頭:「老闆。」

  凌雲抬頭。

  「這個項目,」艾瑞克說,「如果做成了,星辰系統在伺服器市場就有了一席之地。但如果失敗了……」

  「不會失敗。」凌雲打斷他。

  艾瑞克看著他,幾秒鐘後,點了點頭,拉開門走了出去。

  辦公室重新安靜。凌雲走到白板前,看著那張日程表。他拿起紅筆,在「正式發布」旁邊畫了一個小小的星號。

  然後他擦掉白板上所有的字跡,只留下那個星號。

  窗外的陽光完全照進來了,在橡木地板上投出明亮的光斑。

  十點的電話會議,要跟暴雪談戰網擴容。他們等不了六個月,可能要求先用臨時方案。

  臨時方案……也許可以先做一個簡化版,只處理長連接,撐過這幾個月。

  他走回辦公桌,打開筆記本,新建一個文檔。標題:「Nexus Lite – 臨時方案」。

  手指放在鍵盤上,停頓片刻,然後開始敲擊。他想起後世那個叫Nginx的伺服器。1997年,它還沒誕生。它的作者,伊戈爾·賽索耶夫,現在可能還在俄羅斯某家公司寫代碼。

  但等不到2004年了。網際網路的發展速度比記憶中更快,需求已經冒頭。誰先解決,誰就占住這個關鍵位置。

  他轉身走回白板前,看著那六條開發目標。然後拿起紅筆,在「高並發處理能力」下面劃了兩道橫線。

  五萬並發,只是開始。

  未來的網際網路,會有千萬人在線同時搶購,會有億級並發的消息推送,會有實時互動的全球直播。那個世界需要新的基礎設施。

  而星辰要做的,就是提前把它建好。

  他擦掉白板上的所有字跡,收拾好自己的東西,離開會議室。

  走廊里,幾個工程師正圍在一起討論星際爭霸的戰術,看到他,停下來打招呼。

  「凌總。」

  凌雲點頭,走過時停了一步:「艾瑞克在辦公室嗎?」

  「在,剛回來。」

  「讓他半小時後到我辦公室。帶上內核組和網絡組的人。」

  「好的。」

  凌雲繼續往前走,經過星語團隊的區域時,他聽見有人在抱怨:「Apache又崩了,上午高峰期,掉了兩百個連接。」

  「日誌報什麼?」

  「內存不足,fork失敗。」

  「得重啟了。」

  「正在重啟。」

  需求就在那裡,真實,而且很迫切。

  現在,就要去解決了。

章節目錄