我們僱傭了乙隻大猴子

2021-09-19 18:58:26 字數 2119 閱讀 5057

我們「僱傭」了乙隻大猴子,只為「搞破壞」,不開玩笑。

從程式設計師的視角來看,提高系統穩定性的方法無外乎三種:

這只猴子就是我們雇來做破壞,進行故障演練的隊友。(瘋起來,我們連自己都打)

netflix的流**服務最初由netflix工程師在microsoft軟體之上構建的,並位於垂直擴充套件的伺服器機架中。然而,這一單一故障點在2023年8月受到攻擊,當時乙個主要的資料庫損壞導致了三天的停機時間,在此期間***無法傳送給客戶。

在此之後,netflix工程師開始將整個netflix堆疊從單片架構遷移到分布式雲架構中。

但是,這種向數百個微服務的分布式架構的重大轉變帶來了大量額外的複雜性。分布式系統中的這種複雜性和相互關聯性創造了一些難以處理的東西,並且需要一種新的方法來防止看似隨機的中斷。netflix向水平擴充套件軟體堆疊的轉變需要更可靠和容錯的系統。

最重要的經驗教訓之一是 「避免失敗的最佳方法是不斷失敗。」

2023年,netflix eng tools團隊開發出了chaos monkey,用來測試系統。netflix的這個猴子軍團可以在隨機殺死例項,或是讓某台機器的請求或返回變慢,還有就是搞掛乙個機房,巨集觀驗證業務容災和恢復的能力。

2023年

阿里巴巴開始做強弱依賴的治理和建設,希望提前發現因為依賴問題導致的系統故障,系統的代號是eos(出處是古希臘神話中的黎明女神,語意是能夠把紛亂的依賴關係梳理清楚)

2023年

完成交易的同城雙活後,我們就啟動了同城容災演練,也叫斷網演練。驗證核心系統的同城乙個機房掛掉的情況下,是否還可以正常工作。

2023年

因為一次宕機事故,公司內部得出乙個結論:任何基礎設施、生產系統、任何流程都可能出現問題,沒有經過重大災難驗證的容災設施都是耍流氓。 啟動了代號為虎虎虎的生產突襲專案,用來驗證異地多活的質量。

2023年

故障演練專案立項(goc+中介軟體),重新設計架構和產品流程,確定產品名為monkeyking,在交易和中介軟體鏈路嘗試演練。monkeyking是中國美猴王的意思,看重的是孫悟空高強的本領(火眼精金、七十二變)和極具反叛的精神來,希望用一種創新的思路來保證穩定性。

**於 qcon·北京

阿里巴巴因為其多元化的業務場景和日益複雜的技術架構,會遇到各式各樣的故障,故障治理的難度相比流**服務故障治理,難度是也增量了幾個台階。

前面介紹過的強弱依賴和容災演練只能覆蓋到部分故障。如果對故障整體做初步畫像,故障整體可以分為iaas層、paas層、saas層的故障,每一層都可能有很多故障出發原因和表現。

**於 qcon·北京

故障如此之多,讓人摸不著頭腦,我們試著把維度降低一下,換乙個視角來看故障:

任何故障都可以套入到這個故障模型中。有了這個模型,我們就可以開始來設計模擬故障的演練系統了。

**於 qcon·北京

通過上面的方式,基本上就把技術型故障的模型就cover全了。

方式一:

2023年,chaos monkey(netflix的猴子名稱)進行開源,但自2023年11月發布第三個版本,未再發布新版本。

方式二:

2023年9月,monkeyking(阿里的猴子名稱)以免費服務的方式向阿里雲公有雲客戶進行輸出,產品名稱是應用高可用服務 ahas,目前已支援k8s集群接入。

我們僱傭了乙隻大猴子

為什麼80 的碼農都做不了架構師?我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 這只猴子就是我們雇來做破壞,進行故障演練的隊友。瘋起來,我們連自己都打 netflix的流 服務最初由netflix工程師在microsoft軟體之上構建的,並...

我們僱傭了乙隻大猴子

我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。這只猴子是用來做什麼的?從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 通過各種技術手段,例如在容器和排程 微服務 訊息 軟負載和配置中心等緯度提高系統和架構的健壯性 提公升監控的廣度和深度,生產中一旦出現問題,能快速定位,給出解決方案 生產...

見鬼了!!!打到乙隻鬼!!!

printf duration d s,file size d bytes,overall bit rate d kb s n ctx duration 1000000,ctx file size,ctx bit rate 1000 printf duration d s n ctx duratio...