
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
- 推薦指數:??????????
- 作者:Martin Kleppmann,譯者 :趙軍平、李三平、呂云松
- 內容簡介:駕馭處理資料和存盤資料的相關技術,探索經典資料系統的設計之道,梳理核心演算法、設計理念、權衡之道,以便重新審視系統架構,在實際應用場景中選擇最佳工具搭配,
- 資料密集型(data-intensive)應用基本模塊
- 資料庫:存盤資料,應用可多次訪問
- 高速快取:快取操作復雜或代價高昂的結果,加速訪問速度
- 索引:支持關鍵字搜索與各種過濾
- 流處理:持續處理資料,并將結果發送至另一行程
- 批處理:定期處理大量累積資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449118.html
標籤:架構設計
