ChaosConf 2018:混沌實驗的演變
在美國舊金山舉行的首屆ofollow,noindex" target="_blank">ChaosConf 大會上,Kolton Andrus做了一個有關混沌實驗在過去八年中如何演變的演講。他認為,與處理故障有關的人力和組織方面的內容不應該被忽略,並建議工具應該支援應用程式和請求級別的故障注入測試,以便最小化潛在的故障影響範圍。
Andrus是Gremlin的執行長,他通過談論混沌實驗在行業內的演變拉開了活動的帷幕。他將“level 0”實驗視為為雲端的主機故障做準備。這需要較低的成熟度,而且通常需要使用諸如Netflix/chaosmonkey" rel="nofollow,noindex" target="_blank">Chaos Monkey 之類的工具將主機故障隨機地注入到系統中。隨著實踐的成熟,“level 1”和“level 1.5”實驗的實現變得訓練有素,並且將額外的重點放在試驗網路故障上。這需要網路專業知識和更高階的運營成熟度。
與處理故障有關的人力和組織方面的內容也成為level 1.5的一個焦點。這裡的實驗通常是通過“遊戲日”來實現的,這些遊戲日提供了訓練機會,並模擬故障,以便觀察人們在真實情況下的反應。Andrus警告說,並非所有組織都認識到發展組織應對故障能力和對員工進行適當訓練的價值:
我工作過的很多公司在進行輪班待命訓練時,擺出一副“這裡是你的尋呼機和儀表盤——祝你好運”的姿態。這是不可接受的。
接下來,Andrus表示,主機測試和基於OSI Layer 3和Layer 4 的網路測試對於很多想要執行混沌實驗的組織來說是不夠的,因為需要更精細的粒度來限制影響並安全地測試應用程式。他說,“運營人員通常考慮的是請求級別的東西 ”,為了使用請求級別的資料和元資料來選擇性地控制測試和實驗,工具需要知道應用級別(Layer 7 )的東西。
在這個時候,Andrus宣佈了Gremlin的新應用級故障注入(ALFI)產品。ALFI支援“level 2”的實驗。這是通過在系統中指定“座標 ”並匹配針對一組目標執行的實驗來實現的。座標包括應用程式的關注點,例如使用者識別符號或A/B測試,以及平臺的關注點,例如服務或地理區域。工程師還可以使用自定義實現來定義自己的座標。
在演講結束時,Andrus總結說,有針對性的座標可以用來最小化實驗的潛在影響範圍,並且可以在不干擾整個系統的情況下重現生產環境的中斷。應該以迭代的方式安全地擴充套件實驗:
- 使用測試使用者或裝置驗證使用者體驗;
- 執行1%的流量,對影響進行評估;
- 執行10%的流量;
- 擴充套件到25%、50%、100%。
也可以使用類似的模式來重現中斷:
- 發生中斷時,請假設一個原因;
- 建立一個針對單個測試使用者的實驗;
- 以測試使用者身份登入並載入頁面或應用程式;
- 找到日誌或證據並驗證假設;
- 建立拉取請求以修復問題。
有關首屆ChaosConf 的詳細資訊可以在大會網站上找到,演講的錄影可以在Gremlin的YouTube頻道“ChaosConf 2018 ”中找到。
檢視英文原文:An Evolution of Chaos Experimentation: Kolton Andrus at ChaosConf 2018