大型網站架構演進的經驗已沉澱為開源專案與設計原則,為開發者提供寶貴指引。本文聚焦 Web 系統(亦適用於通用分布式系統),系統梳理核心設計原則、基礎建設模塊,並以圖片託管應用為例實戰演示。
設計大型 Web 服務前,必須權衡以下原則,它們相互制約、相互依賴:
權衡藝術:例如單純增加伺服器提升擴展性,卻犧牲了易管理性與成本。架構師的核心價值在於在業務階段做最優取捨。
所有大型 Web 應用的骨架皆由以下四塊拼裝:
深謀遠慮的早期設計,能為未來節省大量重構成本。
用戶上傳圖片至中央伺服器,經由網路或 API 請求獲取,類似 Flickr/Picasa。核心功能:上傳(寫)、檢索(讀)。追求高效上傳、低延遲讀取、數據永不丟失、易維護、高性價比。

(圖示展示:用戶 → LB → 上傳服務 → 存儲集群;讀取路徑:用戶 → CDN → 緩存層 → 存儲集群)
架構設計無銀彈,只有在特定業務約束下的最優解。掌握原則、熟悉模塊、善用開源組件,並在實戰中不斷迭代,方能構建經得起時間考驗的高可擴系統。