專欄文章

Chaos engineering 混沌工程亂中有序

2017年5月27號英國航空因 IT 出現問題導致旗下航班2天無法恢復正常飛行,後續統計此事件總共影響了75,000名乘客,並且對公司造成了至少8000萬英鎊的損失。根據調查,此事件起源於該公司位於英國的資料中心因供電異常及其不良的 Data Recovery(DR) 設計,導致系統遲遲無法順利恢復。2021年10月4號 Facebook 因員工對其 DNS 進行設定時的疏忽,導致旗下的 Facebook/WhatsApp 持續封鎖了5個小時,此事件不只影響了用戶,同時臉書內部許多系統的驗證機制的主機也都因 DNS 無法解析導致無法使用,其結果就是員工被鎖在公司系統外,甚至連門禁都無法通過,總共花費5個小時才順利讓系統部分恢復。設備異常並非什麼新鮮事,然而當異常發生時,企業能否順利持續運行,或是將面臨巨額損失,兩者的區別往往只有一線之隔。 

“Everything fails all the time” Werner Vogels, AWS CTO

優劣的 IT 設計差別就在於當異常發生時,系統是否能夠以最小的影響持續運行,也就是我們通稱的 Disaster Recovery (DR) 。混沌工程就是能幫助企業達成此目標的最佳利器。混沌工程是針對測試及生產環境的資源製造具有破壞性的事件,例如強制關閉 server、提高網路延遲等動作,並藉此觀察整體系統的反應是否如設計者的預期。透過有規劃並可控的人為破壞行為得以驗證 DR plan 是否如設想的一樣,能有效的對事件做出妥善的對應,而在驗證後也可以從獲得的實際數據來改良現有的 DR plan。透過將資源部署在雲端上,使用者可以輕易透過遠端連線來針對資源進行混沌工程所使用的破壞性動作。透過完善的自動化部署,企業甚至能達到將混沌工程自動化後,不定時對特定資源群裡的不特定資源進行破壞並產出整體系統所受影響程度的事件報告。
 

混沌測試步驟
首先測試者必須先理解並定義系統穩定時,各種資源相對應的指標和狀態,例如:正常運行下的 CPU 使用率、網路延遲等。在測試者有了基準點後,便可以開始探索哪些部份可能會出現「異常」狀況及其相對應的假設,例如當資料庫異常時,是否有備用方案或自動 FAILOVER 的機制存在;FAILOVER 時,系統會受到什麼影響。建立好假設後,測試者便能將上階段之理論進行實際演練 (先從小地方開始慢慢擴大影響範圍),並觀察實際情形是否跟理論有出入,並以此為基準修正或重新設計 DR plan。



為什麼企業需要混沌工程
就如同日常生活中存在的消防演習一樣,混沌工程的用意在於透過可控的演練方式來使企業獲得對抗危機的肌肉記憶,並能更加有效率地針對事件作出適當的回應。混沌工程帶給企業的優勢在於能讓企業對於自身的整體營運系統有更加深刻的理解,透過控制由小至大的破壞範圍,能使各種未知的弊端逐漸被發現,而後相關人員才能針對問題做出具體的修正方法讓日常營運和危機處理都能非常平順。

破除企業迷思
我的企業已經夠”亂”了,根本就不需要混沌工程。事實上恰恰相反,前者反而是最需要透過混沌工程來找出自身問題所在並修復的,企業之所以會亂,正是因為太多問題而不知從何下手。透過混沌工程抽絲剝繭班的發現問題並解決流程,能讓企業從混亂的狀態趨於穩定。

AWS Fault Injection Simulator (FIS) 是一套統整過的 Chaos Engineering 工具,供使用者在雲端上進行混沌工程操作。FIS 為 AWS 的管理工具,不須額外安裝就可有系統地對不同資源進行破壞操作,並且包含了可以輕鬆 ROLL BACK 的功能,能隨時中斷測驗。FIS 並不是單純的模擬,而是會針對雲端上的各種資源實際執行破壞指令來造成實質上的破壞。透過實踐的方式,供使用者驗證當事件發生在生產環境時,將可能造成的衝擊,而不再只是紙上談兵。

 


結論
系統的穩定性於現在網路普及和使用者集中力降低的時代是不可或缺的。對於企業來說,數十分鐘的系統異常都可能造成巨額的損失。銓鍇國際 CKmates 擁有數十年的雲端產業經驗,並對各類型雲端服務都能熟練掌握、提供客戶最恰當的解決方案。不論企業是採取混合雲或是原生雲端的營運模式,銓鍇國際 CKmates 都能協助企業進行混沌工程設計,同時提供完善的資源監控服務,協助企業審視自身的營運模式,以達成一套可靠穩固、將事件的影響降到最低的 IT 架構。

 

最新文章

加入 Line 好友 加入 Line 好友 歡迎來聊聊 寄信給我們 訂閱電子報
joinline