讀書筆記-互聯網創業核心技術(構建可伸縮的Web應用)

核心概念,單一服務器到更強的服務器

垂直伸縮

  • 通過使用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周邊,通常用一些第三方軟件技術實現,比如消息隊列,應用緩存,主數據存儲,搜索引擎等。
  • 這些應該是一種即插即用的擴展組件,保證在組件進行更換時,整個架構不受影響。

軟件設計原則

— 更新中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章