1. 程式人生 > >簡要分析《XXX需求征集系統》采用的可用性和可修改性戰術

簡要分析《XXX需求征集系統》采用的可用性和可修改性戰術

切換 公式 情況下 服務層 自身 獨立 dea body 計時

網站的頁面能完整呈現在最終用戶面前,需要經過很多個環節,人一個環節出了問題,都可能導致網站不可訪問。DNS會被劫持,網卡會送掉,程序有Bug等等,要保證一個網紮很難永遠完全可用幾乎是一件不可能完成的使命。

1.了解網站可用性的度量與考核。

度量

1. 業界通常用多少個9來衡量網站可用性。

2. 網站不可用也稱網站故障。

3. 網站不可用時間公式:網站不可用時間(故障時間)= 故障修復時間點-故障發現(報告)時間點

4. 網站年度可用性指標公式:網站年度可用性指標 =(1-網站不可用時間/年度總時間)×100%

考核

1. 故障分:對網站故障進行分類加權計算故障責任的方法。

2. 網站故障分類權重表(示例)

3. 故障分公式:故障分=故障時間(分鐘)×故障權重

4. 考核過程:年初或考核季度開始時,根據網站產品可用性指標計算總的故障分,然後根據團隊和個人職責角色分攤故障分,這個可用性指標和故障分是管理預期;故障發生後,根據故障分類和責任劃分給故障產生的故障分分配給責任者承擔;年末或考核季度末時,個人及團隊實際承擔的故障分如果超過年度分攤的故障分,績效考核受到影響。

網站架構高可用

1. 以《XXX需求征集系統》為例。

a) 應用層:需求征集系統。

b) 服務層:應用層產品依賴共同的復用業務,這些業務服務各自部署集群。

c) 數據層:各自部署集群。

2. 實現高可用架構主要手段:數據和服務的冗余備份及失效轉移。

3. 應用層高可用:通過負載均衡設備將一組服務器組成一個集群對外處理高並發請求,負載均衡設備通過心跳檢測等手段監控到應用服務器不可用時,將其從集群列表剔除,請求分發到集群其他可用服務器上。

4. 服務層高可用:也是通過集群實現高可用。服務層被應用層通過分布式服務調用框架訪問,分布式服務調用框架在應用層客戶端中實現負載均衡,服務註冊中心獲取服務層服務器心跳檢測,發現不可用服務器,立即通知客戶端修改服務層訪問列表,剔除不可用服務器。

5. 數據層高可用:數據寫入時同步復制數據到多臺服務器上,實現數據冗余備份;數據服務器宕機時,數據訪問切換到備份數據服務器上。

6. 網站升級發布可能引起故障。

可用性戰術:

1、錯誤檢測:命令/響應;心跳(dead man 計時器);異常;

2、錯誤恢復-檢測和修復:表決;主動冗余(熱重啟);被動冗余(暖重啟/雙冗余/三冗余);備件;

3、錯誤恢復-重新引入:shadow操作;狀態再同步;檢查點/回滾

4、錯誤預防:從服務中刪除;事務;進程監視器

很多時候,隨著時間的變化,或者用戶提出了更高的實用要求,我們需要更快速地對系統進行更新優化,同時也要控制實現、測試和部署變更的時間和成本

2.可修改性戰術

擴展性與伸縮性

以《XXX需求征集系統》為例。

伸縮性:將獨立的模塊分別部署,如填報,需求征集,需求審核,需求瀏覽等等模塊進行分層分割,形成各自獨立的功能模塊,在對單獨模塊功能進行調整的時候,通過增加(減少)自身資源規模的方式增強(減少)自己計算處理事務的能力。

擴展性:需求征集系統在對現有系統影響最小的情況下,系統功能可持續擴展或提升的能力。系統可添加相對應的需求功能,如報表查看,分類瀏覽等等功能。

構建可擴展的網站架構

1. 設計網站可擴展架構的核心思想是模塊化,並在此基礎上降低模塊間的耦合性,提高模塊復用性。

2. 模塊化的重要手段:分層和分割,分層、分割為若幹個低耦合的獨立組件模塊(模塊可分布式部署,從物理上分離模塊間耦合),各模塊以消息傳遞及依賴調用方式聚合成完整系統。

可修改性戰術

控制可修改性的戰術,其目標是控制實現、測試和部署變更的時間和成本。

1、局部化變更:維持語義的一致性;預期期望的變更;泛化該模塊;限制可能的選擇;抽象通用服務;

2、防止連鎖反應:信息隱藏;維持現有的接口;限制通信路徑;仲裁者的使用;

3、推遲綁定時間:運行時註冊;配置文件;多態;組件更換;遵守已定義的協議;

簡要分析《XXX需求征集系統》采用的可用性和可修改性戰術