1 可靠性Reliability 容忍硬體故障、軟體失效、人為錯誤即使發生了錯誤,系統仍可用。針對可消除影響的故障類型。 硬體故障:硬體增加冗餘;軟體容錯容忍多機失效; 軟體失效: 特點:長期引而不發,特定條件觸發。 方案:全面考慮,充分測試,反覆評估,及時響應。 人為錯誤:簡化人為操作;分離易錯場 ...
1 可靠性Reliability
容忍硬體故障、軟體失效、人為錯誤即使發生了錯誤,系統仍可用。針對可消除影響的故障類型。
- 硬體故障:硬體增加冗餘;軟體容錯容忍多機失效;
- 軟體失效:
- 特點:長期引而不發,特定條件觸發。
- 方案:全面考慮,充分測試,反覆評估,及時響應。
- 人為錯誤:簡化人為操作;分離易錯場景;充分測試;快速恢復機制;監控系統,及時報警;流程化與培訓;
2 可擴展性Scalability
處理負載與性能、延遲概率、吞吐量系統應對負載增加的能力
- 描述負載:用負載參數的數字來描述,參數取決於系統的體系架構。例如:每秒處理請求數、資料庫寫入比例、同時線上用戶數、緩存命中率
- 描述性能:
- 吞吐量throughput:每秒處理記錄數或作業運行時間;
- 服務響應時間response time:客戶端發送請求到收到響應的時間差,是一種數值分佈;
- SLO服務質量目標Service Level Objective;
- SLA服務質量協議Service Level Agreements;
- 應對負載:
- 增加垂直擴展:升級到更高配的機器;
- 水平擴展:將負載平均分不到多個低配機器,無狀態服務易採用此擴展;
- 彈性擴縮容方式,適用於負載高且不可預測,手動擴縮容可減少意外情況超大規模場景需進行定製化處理,難以形成通用方案
3 可維護性Maintainability
可操作性、簡單性、可演化性
- 可操作性Operability(可運維性)讓日常維護工作儘量簡單,使運營團隊專註於高附加值任務。數據系統設計階段需考慮:
- 系統行為與內部邏輯可觀測性(方便監控)
- 自動化、避免綁定特定機器或人員
- 完善文檔
- 友好預設配置
- 自我修複
- 行為可預測
- 簡單性Simplicity抽象,消除意外複雜性設計好的抽象,大型系統可拆分為定義明確、可重用的組件;
- 可演化性Evolvability,提高敏捷性,使其方便適應不斷變化的需求,簡單易懂的高抽象化系統更容易進行修改;
書籍基本信息:
- 《數據密集型應用系統設計》,英文名稱是《Designing Data-Intensive Application》 ,也被簡稱為 DDIA
- 推薦指數: