日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【混沌工程】什么是混沌工程? 介绍、定义及更多

發(fā)布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【混沌工程】什么是混沌工程? 介绍、定义及更多 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

軟件和系統(tǒng)開發(fā)是創(chuàng)新和解決未知問題的練習。軟件和系統(tǒng)是容易出錯的,因為它們是由具有不同觀點和技能的人(很可能是多人)制作的。技術(shù)變得越來越分散和復(fù)雜,尤其是隨著微服務(wù)的推動。很少有人擁有完整的端到端知識 […]

軟件和系統(tǒng)開發(fā)是創(chuàng)新和解決未知問題的練習。軟件和系統(tǒng)是容易出錯的,因為它們是由具有不同觀點和技能的人(很可能是多人)制作的。技術(shù)變得越來越分散和復(fù)雜,尤其是隨著微服務(wù)的推動。很少有人擁有整個系統(tǒng)的全部端到端知識。

類似于圍繞態(tài)勢感知的軍事術(shù)語,戰(zhàn)爭迷霧,在現(xiàn)代發(fā)展中理解變化的總體影響可能很困難(發(fā)展迷霧)。再加上用戶對系統(tǒng)始終可用的期望,測試系統(tǒng)的穩(wěn)健性和對未知數(shù)的彈性可能只是:一個未知數(shù)。

混沌工程通過在整個應(yīng)用程序和基礎(chǔ)架構(gòu)堆棧中注入故障,然后允許工程師驗證行為并進行調(diào)整,從而使故障不會向用戶顯現(xiàn),從而幫助解決未知問題。再加上站點可靠性工程實踐的興起,混沌工程試圖計算不可能的影響。

混沌史


站點可靠性工程師的熱門讀物是 Nicholas Taleb 的《黑天鵝:極不可能的影響》(2007 年)。塔勒布在他的作品中介紹了黑天鵝的隱喻。塔勒布將黑天鵝事件分類,例如突然的自然災(zāi)害或在出版他的書時的商業(yè)活動,谷歌取得了驚人的空前成功。黑天鵝事件具有三個特征:不可預(yù)測,影響巨大,當它結(jié)束時,我們會設(shè)計一種解釋,讓黑天鵝看起來不那么隨機。

在處理發(fā)展的迷霧時,我們很容易陷入分布式計算的謬誤,這是計算機科學家 Peter Deutsch 提出的一組關(guān)鍵斷言。一些主要的謬誤是:網(wǎng)絡(luò)可靠,延遲為零,帶寬無限,并且只有一名管理員。消除謬誤,您的服務(wù)將始終如一,并且隨時可用。正如我們所知,系統(tǒng)和服務(wù)總是會起起落落——但是當涉及到開發(fā)未知的細節(jié)時,我們很容易忘記這一點。

例如,假設(shè)我們正在構(gòu)建一些依賴 Amazon S3 進行對象存儲的功能。如果我們正在為執(zhí)行復(fù)雜處理的服務(wù)構(gòu)建功能并且最終輸出是在 S3 中寫入或更新對象,我們作為工程師可能會假設(shè) S3 將在那里。我們上下測試我們的功能,并為 S3 部分提供不太復(fù)雜的測試覆蓋率。亞馬遜網(wǎng)絡(luò)服務(wù)在 2017 年發(fā)生了自己的黑天鵝事件,當時 S3 遭遇中斷。我們認為會存在的東西(即使性能/寫入 SLA 降低)也沒有,分布式計算的謬誤又回來咬我們。

S3 中斷確實有助于確保我們接觸到堆棧的所有部分,即使我們接觸的部分看起來并不明顯,這可能是由于我們對分布式計算的謬誤的看法/迷霧。混沌工程和混沌實驗帶來了可控的混沌,因此我們可以擺脫這些類型的事件。

什么是混沌工程?


混沌工程是故意將故障注入系統(tǒng)以衡量彈性的科學。與任何科學方法一樣,混沌工程專注于實驗/假設(shè),然后將結(jié)果與對照(穩(wěn)態(tài))進行比較。分布式系統(tǒng)中典型的混沌工程示例是關(guān)閉隨機服務(wù),以查看項目如何響應(yīng)以及對用戶旅程的損害表現(xiàn)在哪些方面。

如果您對應(yīng)用程序需要運行的內(nèi)容(計算、存儲、網(wǎng)絡(luò)和應(yīng)用程序基礎(chǔ)設(shè)施)進行橫截面分析,則將故障或動蕩條件注入該堆棧的任何部分都是有效的混沌工程實驗。網(wǎng)絡(luò)飽和或存儲突然變得不穩(wěn)定/滿負荷是技術(shù)行業(yè)已知的故障,但混沌工程允許對這些故障進行更可控的測試,等等。由于可能會影響廣泛的基礎(chǔ)設(shè)施,混沌工程的用戶和從業(yè)者幾乎可以是支持應(yīng)用程序/基礎(chǔ)設(shè)施堆棧的任何人。

誰使用混沌工程?


由于混沌工程涉及廣泛的技術(shù)和決策,混沌工程實驗可能有多個利益相關(guān)者。爆炸半徑越大(受測試和實驗影響的范圍),參與的利益相關(guān)者就越多。

根據(jù)應(yīng)用程序堆棧的領(lǐng)域(計算、網(wǎng)絡(luò)、存儲和應(yīng)用程序基礎(chǔ)架構(gòu))以及目標基礎(chǔ)架構(gòu)所在的位置,這些團隊的利益相關(guān)者可以參與其中。

如果爆炸半徑很小并且可以在運行的容器中進行測試,那么應(yīng)用程序開發(fā)團隊可以進行測試,而不必擔心突破容器。如果工作負載或基礎(chǔ)設(shè)施的影響范圍更廣(例如,測試 Kubernetes 基礎(chǔ)設(shè)施),平臺工程團隊很可能會參與其中。為未知提供覆蓋是運行 Chaos 測試和尋找弱點的核心原因。

為什么要進行混沌測試?


開發(fā)的迷霧是非常真實的,尤其是對于更大的分布式系統(tǒng)、復(fù)雜系統(tǒng)和微服務(wù)實現(xiàn)。從應(yīng)用程序的角度來看,每個單獨的微服務(wù)都可以單獨測試并確定按設(shè)計工作。正常的監(jiān)控技術(shù)可以認為單個服務(wù)是健康的。

使用微服務(wù)模式,單個請求可以遍歷多個服務(wù)以獲得聚合響應(yīng)來滿足用戶或其他服務(wù)的請求。服務(wù)之間的每個遠程請求都在遍歷額外的基礎(chǔ)設(shè)施并跨越不同的應(yīng)用程序邊界,所有這些都可能失敗。

如果一項瑣碎或非瑣碎的服務(wù)或基礎(chǔ)設(shè)施在服務(wù)水平協(xié)議 (SLA) 范圍內(nèi)沒有響應(yīng),系統(tǒng)的功能和用戶旅程將受到怎樣的影響?這正是混沌工程正在解決的問題。混沌工程實驗的結(jié)果隨后被用于創(chuàng)建一個更具彈性的系統(tǒng)。

混沌工程原理


《混沌工程原理》是一篇出色的宣言,描述了混沌工程的主要目標和原則。混沌工程原理進一步分解了四種類似于科學方法的實踐。但是,與科學方法不同的是,假設(shè)系統(tǒng)是穩(wěn)定的,然后尋找方差。越難中斷穩(wěn)態(tài),系統(tǒng)的信心和穩(wěn)健性就越高。

從定義基線開始(穩(wěn)態(tài))


了解什么是正常/穩(wěn)定對于檢測偏差/回歸至關(guān)重要。根據(jù)您要測試的內(nèi)容,擁有一個良好的指標,例如響應(yīng)時間或更高級別的目標,例如在特定時間內(nèi)完成用戶旅程的能力,是衡量正常性的良好指標。實驗中的穩(wěn)態(tài)是對照組。

假設(shè)穩(wěn)態(tài)將持續(xù)


與科學方法背道而馳,假設(shè)一個假設(shè)一直都是真的不會留下太多的余地。混沌工程旨在針對強大而穩(wěn)定的系統(tǒng)運行,試圖找出應(yīng)用程序故障或基礎(chǔ)設(shè)施故障等故障。對不穩(wěn)定的系統(tǒng)運行混沌工程并沒有提供太多價值,因為這些系統(tǒng)已經(jīng)不可靠并且不穩(wěn)定性是已知的。

引入變量/實驗


與任何科學實驗一樣,混沌工程在實驗中引入變量以查看系統(tǒng)如何響應(yīng)。這些實驗代表了影響應(yīng)用程序四大支柱中的一個或多個的真實故障場景:計算、網(wǎng)絡(luò)、存儲和應(yīng)用程序基礎(chǔ)設(shè)施。例如,故障可能是硬件故障或網(wǎng)絡(luò)中斷。

嘗試反駁假設(shè)


如果假設(shè)是針對穩(wěn)態(tài)的,則穩(wěn)態(tài)的任何方差或中斷(對照組和實驗組之間的差異)都反駁了穩(wěn)定性假設(shè)。現(xiàn)在有了一個可以關(guān)注的領(lǐng)域,可以進行修復(fù)或設(shè)計更改,以使系統(tǒng)更加健壯和穩(wěn)定。

在實施混沌工程實驗時,實施混沌工程的原則會導致一些設(shè)計注意事項和最佳實踐。

混沌工程最佳實踐


在實施混沌工程或任何測試時,有三個支柱。第一個是提供足夠的覆蓋范圍,第二個是確保經(jīng)常運行實驗并在生產(chǎn)中模擬/運行,第三個是最小化爆炸半徑。

為估計的故障頻率/影響提供覆蓋范圍


在軟件中,您永遠不會達到 100% 的測試覆蓋率。建立覆蓋需要時間,而考慮每個特定場景是一個白日夢。覆蓋范圍致力于使最有影響力的測試。在混沌工程中,這將測試會產(chǎn)生嚴重影響的項目,例如存儲不可用或可能發(fā)生很多的項目,例如網(wǎng)絡(luò)飽和或網(wǎng)絡(luò)故障。

在您的管道中連續(xù)運行實驗


軟件、系統(tǒng)和基礎(chǔ)設(shè)施確實會發(fā)生變化——每個人的狀況/健康狀況都可能會迅速發(fā)生變化。運行實驗的好地方是在 CI/CD 管道中。CI/CD 管道在進行更改時執(zhí)行。衡量變革的潛在影響的最佳時機莫過于變革開始在管道中建立信心的旅程。

在生產(chǎn)中運行實驗


正如在生產(chǎn)中進行測試的可怕想法一樣,生產(chǎn)是用戶所處的環(huán)境,流量峰值/負載是真實的。為了全面測試生產(chǎn)系統(tǒng)的穩(wěn)健性/彈性,在生產(chǎn)環(huán)境中運行混沌工程實驗將提供所需的見解。

最小化爆炸半徑


因為你不能以科學的名義降低生產(chǎn),所以限制混沌工程實驗的爆炸半徑是一種負責任的做法。專注于小實驗,這些實驗會告訴你你想要識別什么。專注于范圍和測試。例如,兩個特定服務(wù)之間的網(wǎng)絡(luò)延遲。比賽日計劃可以幫助計算爆炸半徑和重點。

有了這些最佳實踐,混沌工程是一門不同于負載測試的學科。

混沌工程和負載測試有什么區(qū)別?


當然,負載本身會帶來混亂。我們通常將我們的系統(tǒng)設(shè)計為在多個部分中具有彈性(啟動額外的計算、網(wǎng)絡(luò)、持久性和/或應(yīng)用程序節(jié)點以應(yīng)對負載)。那是假設(shè)一切都在同一/適當?shù)臅r間出現(xiàn),因此我們可以領(lǐng)先于負載。

在計算機科學領(lǐng)域,Thundering Herd 問題(驚群問題)并不新鮮,但隨著我們向更加分布式的架構(gòu)邁進,它會更加普遍地表現(xiàn)出來。例如,Thundering Herd 問題可能在機器級別,因為大量進程被啟動,另一個進程成為瓶頸(處理一個且僅一個新進程的能力)。在分布式架構(gòu)中,Thundering Herd 可能是您的消息系統(tǒng)能夠一次攝取大量消息/事件,但處理/持久化這些消息可能會成為瓶頸。如果您收到消息過多,您好 Thundering Herd。

負載測試肯定會幫助我們?yōu)槔坐Q群做準備,這是一種壓力,但是如果系統(tǒng)的一部分甚至不存在,或者游戲遲到了怎么辦?這就是混沌工程的用武之地。如果沒有混沌工程,一個非常難以測試的項目將是級聯(lián)故障。歷史上更等同于電網(wǎng),級聯(lián)故障是一個部分的故障可以觸發(fā)其他部分的故障。在分布式系統(tǒng)領(lǐng)域,這是我們試圖找到單點故障并確保我們的應(yīng)用程序/基礎(chǔ)設(shè)施足夠健壯以處理故障。

今天,不乏工具和平臺來幫助您實現(xiàn)混沌工程目標。

混沌工程工具


圍繞混沌工程有很多進步和工具。很棒的資源列表是 Awesome Chaos Engineering 列表。此列表向構(gòu)建 Chaos Engineering 的混沌測試工具致敬,向使 Chaos Engineering 更易于使用的新平臺致敬。

混沌猴(Chaos Monkey)


Chaos Monkey 被公認為最早的混沌工程工具之一,由 Netflix 開發(fā)。最初的 Chaos Monkey 會隨機禁用生產(chǎn)實例。最終,混沌猴成為了猿猴軍團(Simian Army)的一員。盡管今天 Chaos Monkey 是一個獨立的項目。

四面軍(The Simian Army)


受原始 Chaos Monkey 成功的啟發(fā),Simian Army 是一系列工具(例如 Janitor Monkey、Latency Monkey、Security Monkey 和 Doctor Monkey),專注于引入不同類型的故障。今天,四面軍退役了。

Gremlin 平臺(Gremlin Platform)


Gremlin 是最早的 SaaS 混沌工程平臺之一。Gremlin 能夠協(xié)調(diào)和測量打包在 SaaS 平臺中的混沌工程實驗。如果這是您第一次涉足混沌工程,Gremlin 提供了很多很棒的資源。

AWS 故障注入模擬器(AWS Fault Injection Simulator)


最近專注于 AWS 服務(wù),AWS 提供了故障注入模擬器。如果您完全使用 AWS 平臺并希望將混沌工程實驗引入您的 AWS 環(huán)境,AWS FIS 是一個不錯的選擇。了解有關(guān)故障注入測試及其優(yōu)勢的更多信息。

無論您選擇哪種工具,您的 CI/CD 管道都是運行和編排混沌工程實驗的好地方。

試驗?zāi)?CI/CD 管道


隨著在系統(tǒng)中建立信心的新方法開始受到關(guān)注,CI/CD 管道是協(xié)調(diào)建立信心步驟的好地方。混沌工程實驗非常適合在 CI/CD 管道中運行。最近,Harness 和 Gremlin 創(chuàng)建了一個演示,展示了 CI/CD 管道和 Gremlin Experiments 之間的集成。

可能的藝術(shù)是讓混沌工程實驗的結(jié)果影響部署,或者如果部署到較低的環(huán)境,讓 Harness 作為混沌工程實驗和其他自動化測試的協(xié)調(diào)器。如需完整示例,請前往 Harness 社區(qū)了解更多信息。

線束(Harness )在這里提供幫助


Harness 軟件交付平臺是一個非常強大的平臺,專門用于協(xié)調(diào)建立信任的步驟。就像在任何實驗中一樣,混沌工程的一個支柱是有一個基線。想象一下,您是一個團隊的新手,例如 SRE 團隊,該團隊涵蓋了數(shù)十個不是您自己編寫的應(yīng)用程序。首次運行混沌工程測試將需要隔離或啟動應(yīng)用程序和相關(guān)基礎(chǔ)設(shè)施的新發(fā)行版,以進行試驗,而不會對生產(chǎn)產(chǎn)生影響。

如果您的應(yīng)用程序不是通過強大的管道部署的,那么創(chuàng)建另一個隔離部署可能與正常部署應(yīng)用程序的正常潮起潮落一樣痛苦。沿著混沌工程成熟之旅前進,因為混沌工程測試被視為強制覆蓋,按照慣例,將它們集成到用于判斷調(diào)用或故障策略的 Harness 工作流中很簡單。

本文:什么是混沌工程? 介紹、定義及更多

總結(jié)

以上是生活随笔為你收集整理的【混沌工程】什么是混沌工程? 介绍、定义及更多的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠干狠狠干 | 女人18毛片毛片毛片毛片区二 | 亚洲国产剧情 | 欧美8888| 美国少妇在线观看免费 | 日韩在线影院 | 成人精品一区二区三区中文字幕 | 亚洲AV无码国产精品午夜字幕 | 国产在线一区视频 | 成人黄色a级片 | 亚洲精品欧洲精品 | 久久久精品久久久久 | 中文字幕国产亚洲 | 中文字幕欧美色图 | 91夜色| 69精品人人人人 | 啪啪网站视频 | 夜夜夜夜爽 | 本田岬av| 婷婷人体 | 无码精品一区二区三区在线 | 999精品一区| 成人在线观看网址 | 国产成人久久久 | 国产三级大片 | 午夜影视剧场 | 久久色在线观看 | 中文字幕一区二区三区人妻四季 | 亚欧中文字幕 | 日操操 | 久久中文字幕一区 | 把高贵美妇调教成玩物 | 中文字幕精品视频 | ww久久| 久久不卡视频 | 中文字幕在线日韩 | 长腿校花无力呻吟娇喘的视频 | 51精品国产人成在线观看 | 中国极品少妇xxxx | 日韩一级理论片 | 朝鲜美女黑毛bbw | 日韩av无码中文字幕 | 欧美另类高清videos的特点 | 99精品影视 | 国产精品乱 | 国产亚洲精品久久久久久无几年桃 | 亚洲综合伊人 | 亚洲高清无码久久久 | 国产 日韩 欧美在线 | 日韩欧美极品 | jizz视频 | 日韩精品一区二区三区久久 | 亚洲一区免费视频 | 新婚夫妇白天啪啪自拍 | 全部免费毛片在线播放一个 | 狠狠干天天操 | 精品国产精品网麻豆系列 | 两性午夜视频 | 国产在线二区 | 亚洲天堂美女视频 | 四虎国产精品免费 | 3级av| 欧美色图首页 | 成人毛片基地 | 夜夜操网址 | 欧美毛片基地 | 91精品久久久久久粉嫩 | 天堂av2020 | 日韩欧美激情在线 | 亚洲 欧美 变态 另类 综合 | 中文在线最新版天堂8 | 久草成人在线 | 久久精品视频在线免费观看 | 麻豆成人精品国产免费 | 奇米视频在线 | 欧美性受xxx黑人xyx性爽 | 国产成人网 | 男人天堂综合网 | 黑人操亚洲女人 | 国产精品视频无码 | 国产伦理一区 | 黄色片aaa| 永久免费看mv网站入口亚洲 | 绿帽在线 | 亚洲综合视频网 | 成人毛片一级 | 一级免费黄色大片 | 蜜桃成熟时李丽珍在线观看 | 少妇av片| 翔田千里一区二区 | 无遮挡在线观看 | 中文字幕av久久爽 | 免费看麻豆 | 色香蕉网 | 俺来也av | 少妇无套内谢免费视频 | 国产97超碰 | 日韩三级国产精品 | 欧美一级片免费在线观看 |