前言
現今的互聯網產品越來越注重可靠性,尤其是在生產環境中使用的系統,對高可用性都有一定的要求。而作為產品的提供方,在交付產品之前,也會對高可用進行驗收測試。近期跟進過兩個產品曾有高可用測試的需求,在此簡單的總結分享下。
在介紹產品之前,先簡單的介紹下高可用和高可用測試:
高可用:指的是系統如何保證比較高的服務可用率。在系統的某個部分因為各種原因而失效時,能保證系統整體的服務正常運行。
高可用測試:通過模擬系統出現異常的情況,驗證系統是否能正常提供服務(或降級提供服務),并驗證系統在異;謴秃,能否恢復至異常出現之前的運行狀態。
產品A:云計算PAAS層組件
產品A為云計算的PAAS層組件,各服務部署在云主機以及物理機上,大致架構如下:
從產品架構來看,對A產品做高可用測試,需要分別確保LVS集群和Tengine集群的高可用。因此,需要根據LVS集群和Tengine集群的原理以及運行特性,分別制定高可用測試方案
LVS運行物理機上,OSPF協議實現多節點互備,因此設計高可用測試方案如下:
從網絡方面驗證高可用,配置iptables規則實現端口丟包,模擬網絡不可用的情況
在進程方面驗證高可用,分別使用stop、kill -9、kill -19模擬進程停止、崩潰、假死時的情況
在機器方面驗證高可用,通過關機、重啟模擬物理機宕機時的情況
Tengine運行在云主機上,通過LVS的健康檢查實現服務保證,因此設計高可用測試方案如下:
產品B:數據可視化產品
產品B為數據可視化產品,采用物理機+docker容易進行私有化部署,大致架構如下:
從產品架構來看,對B產品做高可用測試,主要分為功能容器不可用、基礎設施容器不可用、節點網絡異常、機器異常情況下的高可用:
由于功能容器無狀態,因此對功能容器做高可用測試時只需要模擬容器不可用的情況即可。
而基礎設施容器和功能容器不同,其中mysql等容器涉及到數據寫入,因此在做高可用測試時需要考慮異常發生時的主從切換,以及異;謴秃蟮闹鲝耐。
節點網絡異常和物理機異常會影響到節點上的所有服務,因此也要驗證節點出現網絡異常和物理機異常以及異;謴秃蟮臄祿恢滦。
本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理