架構知識體系
架構演進
- 初始階段:LAMP,部署在一臺服務器
- 應用服務器和數據服務器分離
- 使用緩存改善性能
- 使用集羣改善併發
- 數據庫地讀寫分離
- 使用反向代理和cdn加速
- 使用分佈式文件和分佈式數據庫
- 業務拆分
- 分佈式服務
架構模式
- 分層:橫向分層:應用層,服務層,數據層
- 分割:縱向分割:拆分功能和服務
- 分佈式
- 分佈式應用和服務
- 分佈式靜態資源
- 分佈式數據和存儲
- 分佈式計算
- 集羣:提高併發和可用性
- 緩存:優化系統性能
- cdn
- 方向代理訪問資源
- 本地緩存
- 分佈式緩存
- 異步:降低系統的耦合性
- 提供系統的可用性
- 加快響應速度
- 冗餘:冷備和熱備,保證系統的可用性
- 自動化:發佈,測試,部署,監控,報警,失效轉移,故障恢復
- 安全:
架構核心要素
- 高性能:網站的靈魂
- 性能測試
- 前端優化
- 應用優化
- 數據庫優化
- 可用性:保證服務器不宕機,一般通過冗餘部署備份服務器來完成
- 負載均衡
- 數據備份
- 自動發佈
- 灰度發佈
- 監控報警
- 伸縮性:建集羣,是否快速應對大規模增長的流量,容易添加新的機器
- 集羣
- 負載均衡
- 緩存負載均衡
- 可擴展性:主要關注功能需求,應對業務的擴展,快速響應業務的變化。是否做法開閉原則,系統耦合依賴
- 分佈式消息
- 服務化
- 安全性:網站的各種攻擊,各種漏洞是否堵住,架構是否可以做到限流作用,防止ddos攻擊。
- xss攻擊
- sql注入
- csr攻擊
- web防火牆漏洞
- 安全漏洞
- ssl