1.系統特點
- 漸進式發展
- 海量數據
- 多用戶,網絡複雜
- 高性能
- 高可用
- 高擴展
- 迭代快
- 高伸縮
- 安全
2.演進歷程
3.演化的價值觀
核心價值
隨着網站所需靈活應對,而非劇烈的變動;
驅動技術發展的主要動力:業務需求。
4.架構設計誤區
- 一味追隨大公司
- 爲了技術而技術
- 企圖用技術解決所有問題
5.架構模式
- 分層
- 分割
- 分佈式
- 集羣
- 緩存
- 異步
- 冗餘
- 自動化
- 安全
6.架構核心要素
架構
最高層次的規劃,不可輕易動搖的決定
軟件架構
有關軟件整體結構和組件之間的抽象描述,用於指導軟件設計的各個方面
6.1性能
指標
TPS、QPS、系統性能計數器
優化思路
瀏覽器端、中間傳輸層、應用服務層、數據庫、異步、集羣、代碼層面
考驗
長時間不均勻的併發訪問
6.2可用性
衡量標準
考慮在各種條件下,系統是否依然可用
必然前提
服務器必然宕機
解決手段
冗餘
冗餘 + 負載均衡 => 集羣
前提:應用服務的無狀態化
6.3伸縮性
衡量標準
是否可集羣、是否易伸縮、是否無差別、是否無限量
應用服務器
需要做到無狀態
緩存服務器
需要合理設計緩存方案,路由算法,避免出現大規模miss
關係型數據庫
需要在業務層進行伸縮設計
6.4擴展性
關注點是功能
主要目的是快速響應需求變化
衡量標準
對現有產品無影響
不同產品間耦合少
主要手段
事件驅動框架
分佈式服務
要考慮未來平臺開放的可能
6.5安全
略