什麼是可靠、可擴展、可維護的系統?

一,可靠性的挑戰

1,人爲故障是線上系統故障的首要原因,應該怎麼避免

 1.1簡化設計,易於測試

 1.2充分測試,覆蓋場景

 1.3快速回滾,降低損失

 1.4完善監控

 1.5規範流程,這點最重要

2,軟件故障

 2.1簡單架構,降低複雜度帶來的不可控

 2.2選擇穩定的軟件,包括開源

 2.3要有自動恢復機制,比如限流,進程自動拉起

3,硬件故障

 3.1多機服務,但會帶來數據複製和一致性問題

 

二,可擴展性

1,響應時間定義:客戶端發起請求,收到結果的時間

2,時延定義:服務處理請求的時長

3,如何描述性能

 3.1通常性能是指吞吐量和時延

 3.2時延應關注95line,99line,99.9line,平均時延會掩蓋問題

4,無狀態服務擴展相對容易,有狀態服務從單個節點擴展到分佈式多機系統複雜性會大大增加

5,很難有一種通用的架構,背後取捨因素包括數據讀取量、寫入量、待存儲的數據量、數據的複雜程度、響應時間要求等等

 

三,可維護性

1,可運維性,自動化與規範流程

2,簡單性,新接手的工程師易理解,消除意外複雜性的最好手段之一是抽象

3,可演化性,易於改變,比如兼容性

 

參考《數據密集型應用系統設計》

 

原文出自:https://blog.csdn.net/daiyudong2020/article/details/104453426

 

 

end

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