iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
DevOps

PM 的 30 日 DevOps 養成計畫 系列 第 20

混沌工程(Chaos Engineering)- 建立更有韌性的系統

  • 分享至 

  • xImage
  •  

昨天剛好聽了測試相關的演講,講者說到做測試就是為了驗證產品有問題,因為沒有發現問題的產品等於沒有人用,並沒有完美無缺的服務,只有還沒被發現漏洞的產品。

所以這代表了出錯其實是必然的,但怎麼在出錯後可以即時修復,其中一個方法就是事前演練,也就是混沌工程(Chaos Engineering)的存在的原因。

從字面來看,渾沌工程直白的意思就是主動的製造混亂,目的是要測試團隊的應變流程是否有效,會做的事情就像是直接在正式環境上關掉一台伺服器、模擬資料庫故障等線上問題發生。

當問題發生時,可以測試服務集團隊的應變狀況,並確認復原服務需要多少時間,也可以增加團隊彼此之間的信任感。

渾沌工程實際案例

最有名的實際案例,也在分享中的前幾篇提到,就是 Netflix 的 Chaos Monkey,這個自動化工具會隨機的在正式環境中關掉伺服器或服務,來測試使用者是否在這樣的狀況下還可以順利的觀看影片。

過程中,工程師們會觀察系統會不會將流量導向其他正常運行的機器、監控系統有沒有自動告警、團隊處理的 SOP 流程是否流暢,像這樣的演練讓之後系統在真正遇到問題時,可以更有系統的處理緊急事件。

Amazon 的做法是定期舉辦「遊戲日」(Game Days)的活動,這種當然不是真的要玩遊戲,更像是一種挑戰賽,去模擬系統崩潰或延遲的情境,讓團隊可以實戰演練,去測試當線上問題發生的時候大家的合作狀況。

像這樣模擬失敗的例子,除了可以找出目前還缺漏的地方,更可以主動為團隊做足裝備,在面對未來可能發生的事件做出防護。


上一篇
DevSecOps 與安全左移的核心思維
下一篇
降低上線風險 - 藍綠部署與金絲雀部署
系列文
PM 的 30 日 DevOps 養成計畫 22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言