基於chaosblade的故障注入平臺小試

安大叔發表於2020-11-24

當今社會網際網路應用越來越廣泛,使用者量日益劇增。在人們對網際網路服務的依賴性增大的同時,也對服務的可用性和體驗感有了更高的要求。那麼如何保障服務在運營過程中能一直給使用者提供穩定的、不間斷的、可靠可信的服務呢?

例如一個教育或者加金融系統產品,如果線上出現了故障,那麼可能帶來巨大的損失。由於金融產品或者教育類系統架構和業務邏輯是相當複雜和鏈條廠,因此我們測試工程師通過單元測試、介面測試、整合測試、效能測試等來驗證服務的穩定性。但儘管如此,也是遠遠不夠的,因為錯誤可以在任何時間以任何形式發生,尤其是對分散式系統。所以現在很多公司開始引入混沌工程(餛飩工程國內最佳實踐公司目前是阿里,大家有興趣可以去網上看下阿里混沌工程相關實踐經驗),由於混沌工程需要不斷的投入和積累,所以我們測試部門為了模仿和預防線上故障演練,可以先進行故障注入演練,這樣成本最小,收益也最大化。

阿里按照優先分析P1和P2故障,按照IaaS、PaaS、SaaS層的角度繪製了故障畫像,如下圖:

 

 

 目前業內模擬故障的工具比較多樣化,支援的功能和場景也各有優劣。通過對比來看,chaosblade支援功能和場景比較豐富,同時社群也是比較活躍的,我們可以選擇這個嘗試一下

 

 

 

chaosblade 所支援的場景,可以參考文件:

https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/

 

 

 

下面進行簡單的故障模擬

下載路徑:

https://github.com/chaosblade-io/chaosblade/releases

解壓即用,無需安裝

tar -zxvf chaosblade-0.9.0.linux-amd64.tar.gz

CPU壓力注入:

 

 

 結果如下:

 

 

 記憶體壓力注入:

 

 

效果如下:

 

 

 磁碟壓力注入:

 

 

 效果如下:

 

 

 網路卡故障注入:

 

 

 觀察介面的話,能看到介面響應時間明顯變長:

 

 

 以上只是chaosblade最基本的故障注入演示,其他演練大家可以自行嘗試,特別是服務層的故障注入演練作為我們測試同學是應該重點去關注和優先去嘗試的,再次強烈建議大家在公司內部嘗試服務層故障注入演練~

大家如果對故障演練有什麼疑問或者研究的可以新增管理員微信,一起交流探討。

 

 

相關文章