混沌工程是什麼 什麼是混沌猴子? 混沌工程解釋

2021-10-07 23:37:54 字數 3205 閱讀 3965

混沌工程是什麼

根據最初關於該主題的netflix部落格文章 ,該文章由當時的雲和系統基礎架構總監yury izrailevsky和流**公司的雲解決方案總監ariel tseitlin於2023年7月發布,chaos monkey旨在隨機禁用以下產品的生產例項:其amazon web services基礎架構,從而暴露出netflix工程師可以通過構建更好的自動恢復機制來消除的弱點。

[ 什麼是sre?

站點可靠性工程師的重要角色 ]

部落格文章源於這個吸引人的名字,其思想是「在資料中心(或雲區域)釋放乙隻野猴,並帶著**,以隨機擊落例項並通過電纜咀嚼,而與此同時,我們將繼續為客戶提供服務而不會中斷」狀態。

在實踐中,這將涉及乙個簡單的應用程式:「從每個群集中隨機選擇乙個例項,並在營業時間的某個時間點將其關閉,而不會發出警告。 這將在每個工作日完成,」前netflix工程師nora jones和casey rosenthal在由o'reilly media發行的有關該主題的綜合書籍「 混沌工程

」中詳細介紹了這一點。

想法是,通過了解您最薄弱的地方,工程師可以設定自動觸發器來解決問題,如果出現問題,可以在半夜為他們儲存呼叫。 從此,混沌猴子在混沌工程學的旗幟下發展成為一整套混沌原理。

chaos monkey源自2023年左右在netflix進行的工程工作,當時格雷格·奧澤爾(greg orzell)(現在在微軟擁有的github工作)受命為公司新的基於雲的體系結構建立彈性。

orzell告訴infoworld:「我對chaos monkey的看法並不是工程學的主要成就。」 「它帶來的價值是改變觀念,這在我們從運送***到通過網際網路流式傳輸的過程中至關重要。」

早期,netflix工程師使用「 四面軍 」的開放源**工具向系統中引入了一系列中斷和問題,每種工具都解決了某些型別的故障,從chaos monkey移除aws集群開始。

最初的軍隊( 現在大部分已退休 ,轉而使用新工具)包括諸如latency monkey之類的東西,它們會導致restful客戶端-伺服器通訊層的人為延遲,而monkey doctor則會參與對每個例項執行的執行狀況檢查,並監視其他外部健康狀況(例如cpu負載)以檢測不正常的例項,並在需要時將其從服務中刪除。

通過模擬整個aws可用性區域的中斷, chaos kong將chaos monkey提公升到乙個新的水平。 2023年netflix部落格文章概述了「 aws區域不可用的情況非常罕見,但確實如此。」

「通過定期執行模擬區域中斷的實驗,我們能夠及早發現任何系統性弱點並加以修復,」該帖子繼續說道。 「當us-east-1實際上不可用時,我們的系統已經足夠強大,可以處理流量故障轉移。」

正如瓊斯和羅森塔爾在書中概述的那樣,讓混亂的香港在基礎設施上鬆懈是「乙個白手起家的事,裝配了乙個'作戰室'來監視流**服務的各個方面,並且持續了幾個小時。」

兩年後,即2023年7月, netflix推出了

chap ,即chaos automation platform,它「查詢使用者指定服務的部署管道。 然後,它將啟動該服務的實驗和控制群集,並將少量流量路由到每個服務。

[ 同樣在infoworld上:什麼是ci / cd?

持續整合和持續交付的解釋

]基本的混沌猴子的做法已經swift發展 ,通過混沌崗越來越大的部署,後來被正式稱為混沌工程 。 netflix直到2023年才組建自己的正式混亂工程團隊。該團隊由現任stitch fix工程總監bruce wong領導。

混沌工程學的原理已經由「混沌猴子」的一些原始作者正式整理 ,將實踐定義為:「在系統上進行實驗的學科,以便建立對系統抵禦生產環境中動盪條件能力的信心。」

實際上,這採用四步過程的形式:

定義系統的「穩定狀態」以設定正常行為的基準。

假設在對照組和實驗組中這種穩態都將持續。

介紹反映真實事件的變數,例如崩潰的伺服器,發生故障的硬碟驅動器或斷開的網路連線。

試圖通過尋找對照組和實驗組之間的差異來反駁這一假設。

如果穩定狀態難以破壞,那麼您將擁有乙個強大的系統。 如果存在弱點,那麼您還有一些要解決的問題。

瓊斯和羅森塔爾觀察到:「自從《原理》發布以來的五年中,我們已經看到混亂的工程技術不斷發展,以應對新行業中的新挑戰。」 「隨著採用範圍遍及軟體行業並進入新的垂直領域,該實踐的原理和基礎必將繼續發展。」

要執行chaos monkey的開源版本,您的系統將必須滿足github上概述的一組前提條件。

chaos monkey不能作為服務執行,因此您必須按照github頁面上的說明設定cron作業,然後該頁面每週工作一次致電chaos monkey以建立終止時間表。

要使用此版本的chaos monkey,您必須使用netflix自己的開源連續交付平台spinnaker ,這可能會限制某些組織採用該方法的能力。 chaos monkey還需要與mysql相容的資料庫,版本5.6或更高版本。

服務所有者通過spinnaker設定其chaos monkey配置。 chaos monkey通過spinnaker來獲取有關服務部署方式的資訊,並以您指定的頻率和時間表隨機終止例項(虛擬機器或容器)。

當然,實施chaos monkey只是解決系統彈性問題的艱鉅和複雜任務的開始。 混沌猴子只是揭示了系統中的弱點。 然後,由開發人員或系統工程團隊確定原因並提出解決方案。

「工具本身並不昂貴,但是您必須對工具做出react的投資卻是,」 orzell指出。 致力於混亂的工程還需要將資源從構建新功能轉移到增強彈性。 他補充說:「每項業務在該頻譜上處於不同的位置,他們每個人都必須決定在該空間中要撥多少錢。」

瓊斯(jones)和羅森塔爾(rosenthal)說,在早期,netflix的工程師「特別是從金融機構那裡得到了很多回擊。」

儘管銀行的風險更高,但它們仍然遭受停電的影響,因此,許多組織通過謹慎地實施「諸如混沌工程學這樣的主動戰略來理解風險,以防止產生大的,不受控制的結果」,但許多組織改變了想法,最早採用了capital one。採納者,如本書中所述。

[ 也在infoworld上:站點可靠性工程遇上發展難題的地方

]同樣,關於該主題的最新權威書籍是前netflix工程師nora jones和casey rosenthal於2023年4月出版的《 混沌工程》

,該書借鑑了這些作者和其他人在2023年《 混沌工程》

一書中彙編的許多作品。 。 有關更實用的概述,請參閱russ miles的《 學習混沌工程》

。 netflix在github上提供了有關該主題的大量資源,包括教程 ,大量文件,錯誤計數器,中斷檢查器和解密器工具。

翻譯自:

混沌工程是什麼

什麼是SAAS 是什麼 什麼叫 是什麼意思

什麼是saas saas是software as a service 軟體即服務 的簡稱,它是一種通過internet提供軟體的模式,使用者不用再購買軟體,而改用向提供商租用基於web的軟體,來管理企業經營活動,且無需對軟體進行維護,服務提供商會全權管理和維護軟體,對於許多小型企業來說,saas是採...

什麼是HTTP,URI,URL,URN又是什麼?

那麼在傳輸過程中,http是如何區分這些不同型別的資源呢?答案是給每個要傳輸的物件打上名為mime型別的資料格式標籤 multipurpose internet mail extension,多用途網際網路郵件擴充套件 咋一看我是震驚的,這不是管郵件的嗎?怎麼變成了http區分不同型別資源的關鍵了呢...

什麼是什麼是跨域?

跨域是指跨網域名稱的訪問 網域名稱不同,網域名稱相同,埠不同。二級網域名稱不同都屬於跨域。如果網域名稱和埠都相同但是請求路徑不同不屬於跨域。跨域不一定有跨域問題,跨域問題是針對ajax的一種限制 解決跨域問題方案 1.jsonp 利用script標籤可以跨域的原理實現 限制 需要服務的支援 只能發起...