一至千萬的藝術──如何養成支撐網路巨量交易的伺服器艦隊
一至千萬的藝術──如何養成支撐網路巨量交易的伺服器艦隊

淘寶網近日創下天文數字的成交金額。除了震撼,許多人多少會好奇淘寶網如何完成海量資料的處理。筆者身為工程師,想從淺顯易懂的角度帶領讀者瞭解像這樣的電子商務網站,通常是如何從小規模,一步一步的演變至今天的驚人海量地步。
 

停機一天都受不了 

對於淘寶或 Amazon 這樣的大型網路,只要停機一下子所造成的損失可能都是以億計算。現今開發網路服務,必須考量三樣重要因素:可靠性(Reliability)、可得性(Availability)、擴展性(Scalability)。

可靠性是指一個服務運行期間出現錯誤的狀況。擴展性是指這一個網路服務,可以透過增加主機數量台提升整體的承載能力。

可得性是指服務保持在線上可以使用的狀態所佔的時間比例,一般常用幾個 9 來表示。例如一個網站在一個月裡有 1% 的時間發生當機的話,我們就稱它的可得性在這段期間是 99%。如果只有 0.1% 的時間離線,那它的可得性就是 99.9%。可得性每增加一個 9 的代價都十分昂貴,每多一個 9 的成本甚至是以指數的型式成長。知名程式開發協作平台 Github 的狀態頁面上就顯示了它在特定時間內的可得性和可靠性。

一個團隊的技術功力可以從可得性和擴展性看出端倪。這牽涉到了伺服器艦隊(fleet)的架構設計;好的設計師能設計良好的系統架構,達成高度擴展性和可得性。

以下我們從簡入繁,想像一個電子商務網站從剛出生時,隨著流量成長,如何透過伺服器的架構設計逐步承載越來越多的使用量。
 

艦隊的第一艘船 

一般網站在草創期間,使用量不大,基於成本考量往往會把網頁應用伺服器(Web Application Server)和資料庫伺服器(Database server)放置於同一台主機上,如下圖:

這種架構能勉強支撐十萬至數十萬等級的使用者。實際能承受的量依照機器硬體的等級而定。然而硬體的等級不管如何提升,終究有一定的上限。屆時,當承載量再次增加,問題就會顯露無遺。在專業術語上我們稱之為瓶頸(Bottleneck)。

這就像當台北捷運所有線路都交會於台北車站一個點時,台北車站就是瓶頸。整個捷運系統的承載量會因為這一個單點而受到限制。就像下面的「模擬都市」遊戲截圖所示,一條馬路不管有多少線道。當其中有一個窄口,整條馬路的流量都會受限於窄口。

另一個更嚴重的名詞叫失效單點(Single point of failure),也就是說當這一台機器故障就會造成整個服務停擺。目前的單一主機就是這樣的一個點。
 

各司其職 

當網頁伺服器和資料庫共用一台主機,等於在競爭同一台主機的資源。為了分散負荷,一般都會將網頁伺服器和資料庫獨立放到不同的主機上。

然而這只稍微爭取到了一點喘息的空間,當使用量一多,很快又會填滿單一台機器的承載限制
 

艦隊添購新船 

隨著使用量的增加,是時候擴充鑑隊規模了。為了讓網頁應用伺服器能夠處理大量請求,因此會增設多台網頁應用伺服器。但這產生了一個問題,因為使用者只認得一個網址,為了讓連線到同一個網址的請求分配到不同主機上,還得在前面擺一個「負載平衡器」(Load balancer)。

負載平衡器的運作原理就像大家平常去銀行或郵局,窗口一字排開。每個人進去先領一個號碼,當叫到自己號碼時就到對應窗口去,透過這種方式把用量平均散到所有的應用伺服器上。

當走到這一步,大約的承載能力大略可以突破百萬使用者。但從圖中相信讀者也可以看出,資料庫只有一台,因此成為了新的瓶頸。當這台伺服器來不及處理讀取或寫入資料的請求時,前端有再多的網頁應用伺服器也沒有用。
 

讀寫分離 

為了減輕資料庫的負擔,接著要引入一個概念 –「讀寫分離」。資料庫面對的有讀取和寫入兩種請求。當網頁應用程式要顯示商品資訊,它就得向資料庫送出讀取請求;當有使用者購買商品時,才需要寫入。

電子商務網站的使用者逛的次數遠大於買的次數,也就是讀取數量遠大於寫入。針對這個特性,我們可以增設多台只供讀取不供寫入的次要資料庫,它們的資料都從主要的資料庫複製而來。當網頁應用伺服器遇到商品資訊讀取時就向次要資料庫請求,當遇到購物等需要寫入時才向主要伺服器請求。如此一來最大宗的讀取壓力被分散到多台的次要資料庫身上,解決了瓶頸的問題。

走到這一步,大略的承載能力可能落在數百萬的數量級。


資料庫碎片 

事情似乎很美好。但不幸的是當購物量也不停增加時,主要的資料庫還是很快會成為瓶頸。除此之外,若主要資料庫一旦當機,也會造成購物無法進行,形成了失效單點。

為了解決此問題,在此時一般會引入資料庫的碎片(Shrading)技術。簡單的來說,將大量的資料分成一小群一小群,分別塞到不同的資料庫主機裡,當要查詢或寫入時,再看這一筆資料落在哪一台機器裡。

當走到這一步,整體艦隊的承載能力已經可以達到千萬等級了。

然而資料庫碎片雖然可以分散承載量到不同的機器,卻也增加了應用程式的難度與複雜度。有些企業會用 NoSQL 而非用碎片來解決這類問題,例如CassandraHBase;也有人自行發展技術來處理這部份的問題。
 

冰山一角 

講到這裡,這趟旅程其實離走完還有一段很長的路。

上述的過程雖然未必精準的描述了淘寶網或類似網站的架構成長,但相信至少在讀者心中建立一個網站一步步提升承載能力的概念與想像。當然這過程省略、簡化了許多細節,例如負載平衡器本身也是一個瓶頸,可以使用 DNS 負載平衡器來解決;或是細部上可透過 CDN(Content Deliever Network)來分佈靜態資源檔,降低艦隊的壓力;伺服器出錯、甚至資料中心出狀況也還沒詳細考量進來;以及使用快取伺服器(Cache server)取代資料庫等手法。

上述所列的是主流解法,遇到不同類形的需求得想出不同的對應方法。有時改變商務流程也不失為解決方法之一。網站的成長並非只在承載量,服務的數量與複雜程度也會隨時間成長,要如何將不同的服務獨立出來也並不簡單。同時,當架構改變,如何將對使用者的衝擊過降至最小也是一門藝術。

當承載需求再提昇,除了使用現成的解決方案,可能還要自行研發一整套針對某個問題的解決方案,例如淘寶網就大方的開源分享了其中一些專案。這些其實體現了現今兩岸網路軟體界技術能量的差距。對淘寶網的發展歷史有進一步興趣的讀者可以參考以下一系列文章:

淘宝技术发展(引言)

淘宝技术发展(个人网站)

淘宝技术发展(Oracle/支付宝/旺旺)

淘宝技术发展(Java时代:脱胎换骨)

淘宝技术发展(Java时代:坚若磐石)

或是這一篇

淘寶的起源故事、技術發展之路 – 2013

有趣的是,淘寶在增加負載量的過程中同時採用了硬體和商業的解決方案。後來雖然提升了承載能力一段時間,旦很快的發現這些昂貴的硬體和商用資料庫反而變成繼續擴展的瓶頸,因此最後轉向純軟體的開源解決方案,顯示了業界從商業用軟硬體的解決方案轉向純軟體解決方案的風向。

除此之外讀者也可以參考美國歐巴馬在 2012 年競選總統時,其背後規模宏大的伺服器艦隊架構圖

[![](http://yowureport.com/wp-content/uploads/2013/11/Obama_for_America_on_AWS_01.jpg)](http://yowureport.com/wp-content/uploads/2013/11/Obama_for_America_on_AWS_01.jpg)**2008 歐巴馬選總統時的伺服器艦隊的一部分**。圖片來源:[awsofa](http://awsofa.info/)

 

紮穩馬步,再戰十年 

身為一個技術人員我懂得不多,但是我看到了問題,並且有一點想法與心得。軟體的開發就像紮馬步,在全世界的所有產業都被軟體和網路所劇烈改變的當下,需要把基本功練好才能應戰。

轉自有物報告/VICTOR LIN

關鍵字: #淘寶 #電子商務
往下滑看下一篇文章
AI 智慧代理人時代來臨!三大導入階段, AI 落地企業不卡關
AI 智慧代理人時代來臨!三大導入階段, AI 落地企業不卡關

生成式 AI 帶動企業數位轉型浪潮持續升溫,各界不再滿足單一任務型的 AI 應用,而是期盼 AI 能真正成為具備主動決策與多工能力的「智慧代理人」(Agentic AI),在最少人為干預的情況下,自主推進工作流程、完成複雜任務。

但企業導入AI並非一蹴可幾,而是需要對AI有正確認識,並制訂循序漸進的導入流程,才能真正發揮AI功效。在2025台灣人工智慧年會中,cacaFly 聖洋科技技術副總吳振和提出三大導入關鍵階段,深入剖析企業如何從概念驗證(PoC)階段,逐步推進到實際上線(Production),並分享實務經驗與觀察。

延伸閱讀:生成式AI可以怎麼用?cacaFly現身說法,助企業應用GCP服務智慧轉型

解鎖 Agentic AI,企業邁向多任務智慧代理

「很多公司會問,One AI 要做什麼事?但實際上,若要讓 AI 回答公司內部政策或新法條的相關問題,僅靠基礎模型並不足夠。」吳振和指出,要讓 AI 真正成為能「做事」的智慧代理人,前提是它必須理解企業內部的脈絡與知識,並即時掌握外部變動的資訊。

企業必須先釐清內部規範是否與最新法規相符,這意味著系統必須具備持續爬取與解析最新資料的能力。為此,企業必須先截取與整理內容,再建構成專屬的知識庫(Knowledge Base),確保資料品質達到可用標準後,再透過檢索增強生成(Retrieval-Augmented Generation, RAG)技術,使 AI 能夠即時動態查詢並生成符合企業語境的回答。

延伸閱讀:從資料清洗到 RAG,大型語言模型的必需品,做出專屬企業的 AI 知識庫!

吳振和強調,這是一個動態循環的過程:從資料蒐集、品質控管、知識庫建構到生成應用,每一環節都息息相關,任何一處鬆動都會影響最終產出的準確性與可信度。

cacaFly 聖洋科技技術副總吳振和
圖/ cacaFly

破除「一次到位」迷思,從驗證到落地的三大關鍵階段

許多企業對 AI 寄予厚望,因此常將 PoC 視為年度計畫的重點,希望能「一次到位」做出具體成果。但吳振和提醒,若缺乏清楚的系統工程思維,PoC 容易淪為「概念展示」,難以真正走入組織的日常營運。

他將導入 Agentic 系統工程的歷程,分為三個關鍵階段:

1.第一階段:可行性評估(Feasibility Study)
企業必須在投入資源前,先明確界定「最需要被 AI 解決的關鍵問題」是什麼,並進一步設計可量化的驗證指標。這不僅包括評估技術實作的可行性,更要從商業目標出發,釐清導入 AI 的具體使用情境、預期成效與風險邊界,如此才能確保後續模型選型與資料蒐集方向正確對齊業務需求。

2.第二階段:系統設計與驗證(Design & PoC)
在確定導入方向後,必須規劃清楚資料蒐集與整理流程,確保知識庫的內容具備正確性、完整性與時效性。吳振和特別強調,這個階段不能只追求展示效果,而應以「產品化思維」來構築 PoC,使其具備可擴充性、可維護性及安全性,才能為後續上線打下基礎。

3.第三階段:產品化與營運(Production & Operation)
當 PoC 驗證完成後,進入正式上線階段,挑戰也隨之而來。除了需要整合企業內部系統與流程,還必須建立持續監控與維運機制,確保模型表現隨時間演進不會劣化,並能快速回應法規變動或資料更新的需求。吳振和指出,這往往是最容易被低估、但也是最考驗企業組織能力的關鍵環節。

cacaFly 聖洋科技技術副總吳振和
圖/ cacaFly

建立模型優化根基,打造高品質的黃金資料集

吳振和特別強調,要讓 Agentic 系統工程真正發揮效益,企業必須先建立一套高品質的「黃金資料集」(Golden Dataset),作為模型評估與優化根基。他指出,黃金資料集的價值在於能為模型選擇與前測提供客觀依據,讓團隊能針對不同任務挑選最適合的模型,避免導入初期就誤踩方向。

同時,黃金資料集也能協助團隊辨識模型的常見錯誤與脆弱點,進而快速回應「模型飄移」(Model Drift)的風險。吳振和說明,所謂模型飄移,指的是即使模型本身未經改版,效能也可能隨著環境與資料變動而突然下降,導致原本表現良好的模型出現偏差。透過持續比對模型預測與黃金資料集結果,團隊才能即時察覺效能衰退,並進行迭代更新,確保系統長期穩定運作。

從小規模應用起步,漸進擴展至核心業務

吳振和分享,在實際輔導企業導入 AI 的經驗中,最常見的挑戰來自於「期待落差」。許多企業誤認為概念驗證(PoC)階段即可呈現完整的產品原型,然而實際情況顯示,若企業未能建立完善的資料架構與流程基礎設施,即使短期內展現亮眼成效,也難以確保長期營運的穩定性與可持續性。

也因此他建議企業在規劃 AI 導入時,應採取漸進式策略,從小規模應用場景著手,逐步擴展至核心業務領域。企業應將 PoC 定位為整體產品開發生命週期的重要環節,而非獨立的一次性專案。

AI 的導入不僅是一場技術升級,更是企業組織文化與決策流程的轉型工程。唯有從資料治理、流程優化到人才培訓同步布局,才能確保 AI 能在企業內部真正「落地生根」,創造長期商業價值,成為真正的智慧代理人。

登入數位時代會員

開啟專屬自己的主題內容,

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

我還不是會員, 註冊去!
追蹤我們
一次搞懂Vibe Coding
© 2025 Business Next Media Corp. All Rights Reserved. 本網站內容未經允許,不得轉載。
106 台北市大安區光復南路102號9樓