每個系統, 不管簡單或複雜, 只要運行的時間夠長, 都會受到不可預期的事件影響.
 
要能徹底阻止各種威脅是不太可能, 但是我們可以盡可能減輕這些威脅的影響. 
 
image
 
這裡我們需要做些實驗, 注入一些事件來看系統受到怎樣的影響. 我們在挑選事件時, 需要考量以下面向
(1) 事件發生的頻率
(2) 事件發生後的影響範圍
(3) 引入這事件的成本
(4) 引入這事件的複雜度
 
在 Netflix 中他們選擇引入關閉節點這個事件, 是因為
(1) 在現實生活中發生機率很高
(2) 促發這個事件的成本和難度很低
 
至於區域故障, 雖然引入的成本很高, 並且過程很複雜. 但是還是要做, 這是因為發生這事件的影響範圍很大. 除非 Netflix 已經有足狗的彈性來應付, 否則他們是需要引入這事件來多多檢查.
 
文化因素也是一種成本. 在傳統的數據中心, 很強調穩定性重於一切, 任何變更需要勁過嚴格的檢視過程. 因此這種混沌工程對他們來說是一種大矛盾, 很難會接受這種做法. 
 
我們不需要窮舉所有可能對系統造成影響的事件, 我們只需要關注發生頻率高, 或是影響較大的事件.
 
另外, 注入的事件一定你認為系統可能處理的. 並且是真實世界會發生的. 
 
發生的事件不僅僅是硬體或軟體, 人的因素也可能會造成故障, 因此也需要把人的因素放到可能的事件中.
 
 
資料來源
 
arrow
arrow
    文章標籤
    dev devops chaos engineering
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()