大型網站技術架構筆記

1.系統特點

  • 漸進式發展
  • 海量數據
  • 多用戶,網絡複雜
  • 高性能
  • 高可用
  • 高擴展
  • 迭代快
  • 高伸縮
  • 安全

2.演進歷程

減輕資源競爭,分開部署底層基礎應用,提升性能
提升後端讀併發,減輕讀寫負擔
提升業務併發,避免單點故障
分離讀寫負擔
CDN和反向代理通過緩存降低前置響應時間
提升讀寫能力,存儲上限等
提升檢索能力
方便開發,運維,發佈
複用服務,提升併發,限制數據庫連接
加快地域響應,容災備份
吸引形成生態圈
LAMP
水平分割
緩存
集羣
讀寫分離
網站代理
分佈式底層系統
NoSQL和搜索引擎
垂直分割
分佈式服務
數據中心
開放平臺,解決方案

3.演化的價值觀

核心價值

隨着網站所需靈活應對,而非劇烈的變動;
驅動技術發展的主要動力:業務需求。

4.架構設計誤區

  • 一味追隨大公司
  • 爲了技術而技術
  • 企圖用技術解決所有問題

5.架構模式

  • 分層
  • 分割
  • 分佈式
  • 集羣
  • 緩存
  • 異步
  • 冗餘
  • 自動化
  • 安全

6.架構核心要素

架構

最高層次的規劃,不可輕易動搖的決定

軟件架構

有關軟件整體結構和組件之間的抽象描述,用於指導軟件設計的各個方面

6.1性能

指標

TPS、QPS、系統性能計數器

優化思路

瀏覽器端、中間傳輸層、應用服務層、數據庫、異步、集羣、代碼層面

考驗

長時間不均勻的併發訪問

6.2可用性

衡量標準

考慮在各種條件下,系統是否依然可用

必然前提

服務器必然宕機

解決手段

冗餘
冗餘 + 負載均衡 => 集羣
前提:應用服務的無狀態化

6.3伸縮性

衡量標準

是否可集羣、是否易伸縮、是否無差別、是否無限量

應用服務器

需要做到無狀態

緩存服務器

需要合理設計緩存方案,路由算法,避免出現大規模miss

關係型數據庫

需要在業務層進行伸縮設計

6.4擴展性

關注點是功能
主要目的是快速響應需求變化

衡量標準

對現有產品無影響
不同產品間耦合少

主要手段

事件驅動框架
分佈式服務

要考慮未來平臺開放的可能

6.5安全

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