現今的互聯網產品愈來愈注重可靠性,尤爲是在生產環境中使用的系統,對高可用性都有必定的要求。而做爲產品的提供方,在交付產品以前,也會對高可用進行驗收測試。近期跟進過兩個產品曾有高可用測試的需求,在此簡單的總結分享下。mysql
在介紹產品以前,先簡單的介紹下高可用和高可用測試:sql
產品A爲雲計算的PAAS層組件,各服務部署在雲主機以及物理機上,大體架構以下:docker
從產品架構來看,對A產品作高可用測試,須要分別確保LVS集羣和Tengine集羣的高可用。所以,須要根據LVS集羣和Tengine集羣的原理以及運行特性,分別制定高可用測試方案網絡
LVS運行物理機上,OSPF協議實現多節點互備,所以設計高可用測試方案以下:架構
Tengine運行在雲主機上,經過LVS的健康檢查實現服務保證,所以設計高可用測試方案以下:測試
產品B爲數據可視化產品,採用物理機+docker容易進行私有化部署,大體架構以下:雲計算
從產品架構來看,對B產品作高可用測試,主要分爲功能容器不可用、基礎設施容器不可用、節點網絡異常、機器異常狀況下的高可用:設計