天天看點

高可用之故障演練

随着業務的發展以及網際網路技術的更新疊代,企業的資訊系統規模越來越大,架構越來越複雜。海量資料、高并發請求和與日俱增的系統複雜度一起出現,很有可能是預料之中或預料之外的各種故障。不管我們是否願意接受,故障總是無法完全避免的。

高可用之故障演練

故障演練是一種遵循混沌工程實驗原理的解決方案,提供豐富的故障場景模拟[如CPU負載過高、網絡延遲、丢包、磁盤寫滿、I/O飙高、記憶體溢出(Out OfMemory,OOM)等],能夠幫助分布式系統提升容錯性和可恢複性。故障演練建立了一套标準的演練流程,包含準備階段、執行階段、檢查階段和恢複階段,通過4個階段的流程,覆寫使用者從計劃到還原的完整演練過程,并通過可視化的方式清晰地呈現給使用者。

高可用之故障演練

線上上環境隔離真實流量的情況下,提前模拟産生任何可能發生的故障,來觀察系統的反應,判斷系統的可靠性和容錯能力,驗證各種預期政策。故障演練是應用高可用能力測評的核心。總體來說,故障演練主要有以下目标:

  • 確定系統按我們預想的方式應對故障。
  • 發現系統中未預料到的短闆和弱點。
  • 提高系統的健壯性以降低事故實際發生時對業務的影響。

故障演練的目的在于演練常态化、故障标類化、演練智能化。用常态化的演練驅動穩定性提升,而不是大促前進行補習;豐富故障場景,定義好最小故障場景和處理手段;基于架構和業務分析的智能化演練,根據應用架構智能推薦故障演練場景,沉澱行業故障演練解決方案。故障演練主要應用在如下場景:

1)預案有效性:過去的預案測試時,線上沒有問題,是以就算測試結果符合預期,也有可能是意外,但是現象被掩藏了。

2)PaaS層是否健壯:通過模拟上層資源負載,驗證排程系統的有效性;模拟依賴的分布式存儲不可用,驗證系統的容錯能力;模拟排程節點不可用,測試排程任務是否自動遷移到可用節點;模拟主備節點故障,測試主備切換是否正常。

3)監控告警:通過對系統注入故障,驗證監控名額是否準确,監控次元是否完善,告警門檻值是否合理,告警是否快速,告警接收人是否正确,通知管道是否可用等,提升監控告警的準确性和時效性。

4)故障複現:故障的後續行為是否真的有效,完成品質如何。隻有真實重制和驗證,才能完成閉環。發生過的故障也應該時常拉出來演練,看是否有劣化趨勢。

5)架構容災測試:主備切換、負載均衡、流量排程等為了容災而存在的手段的時效性和效果,容災手段本身的健壯性如何。

6)參數調優:限流的政策調優、告警的門檻值、逾時值設定等。

繼續閱讀