核心概念,單一服務器到更強的服務器
垂直伸縮
- 通過使用RAID增加I/O吞吐能力
- 通過切換SSD改善I/O訪問速度
- 通過增加內存減少I/O操作(意味着文件系統有更多的緩存空間,應用程序有更多的工作內存)
- 通過升級/增加網絡接口提高網絡吞吐能力
- 更新服務器獲得更多處理器或者更多虛擬核
- 主要制約:成本,當越過某個點後,垂直伸縮會變得格外昂貴;CPU速度;每臺服務器的虛擬核數目;硬盤速度。
服務分離
- 不同的物理機上安裝不同的服務類型,比如FTP,DNS,緩存,等。
- 功能分割:將整個Web應用切分成一組不同的功能模塊,將他們獨立部署。
內容分發網絡(CDN)
CDN 緩存靜態文件。用戶將從最近的CDN服務器獲取靜態內容,進而加速頁面加載時間。
分散訪問流量:水平伸縮
通過增加服務器提升計算能力。
服務全球用戶的伸縮性架構。
- 使用GeoDNS服務:基於客戶地理位置進行ip地址解析的DNS服務。用戶會訪問到離他最近的一個Web服務器,將網絡延遲減到最小。
- 邊緣緩存(edge-cache)服務器:邊緣緩存是一種距離用戶較勁的HTTP緩存服務器,便於部分緩存用戶的HTTP流量。
分層架構
- 將不同功能劃分到不同層次的架構。
- 低層的組件暴露一組API給高層組件調用。
- 每一層都消費其低層提供的服務,但是低層永遠不會消費上層提供的服務。
- 分層可以強制結構化並減少耦合,低層組件變得更簡單和系統。越底層穩定性越強。
支持技術
- Web周邊,通常用一些第三方軟件技術實現,比如消息隊列,應用緩存,主數據存儲,搜索引擎等。
- 這些應該是一種即插即用的擴展組件,保證在組件進行更換時,整個架構不受影響。
軟件設計原則
— 更新中