您的位置: 首頁 >科技 >

現(xiàn)代系統(tǒng)必須能夠處理混亂以避免停機(jī)

2022-08-26 03:18:10 編輯:賀榮伯 來源:
導(dǎo)讀 盡管我們盡最大努力避免它們,但I(xiàn)T事件是這項(xiàng)工作不可避免的一部分 - 并且試圖保持領(lǐng)先于業(yè)務(wù)影響的停機(jī)時(shí)間只會變得更加棘手。今天的系...

盡管我們盡最大努力避免它們,但I(xiàn)T事件是這項(xiàng)工作不可避免的一部分 - 并且試圖保持領(lǐng)先于業(yè)務(wù)影響的停機(jī)時(shí)間只會變得更加棘手。今天的系統(tǒng)緊密耦合,越來越復(fù)雜,更多的移動部件帶來更多出錯(cuò)的機(jī)會。

這就是為什么越來越多的組織轉(zhuǎn)向微服務(wù)以提高服務(wù)可用性和更好地恢復(fù)故障的原因之一。雖然這些是破壞單片應(yīng)用程序的重要前提,但它們也可能增加失敗的風(fēng)險(xiǎn) - 除非明確考慮到彈性設(shè)計(jì)。

準(zhǔn)備失敗

鑒于分布式系統(tǒng)固有的混亂特性,應(yīng)該開發(fā)服務(wù),不僅要預(yù)測故障,還要在發(fā)生故障時(shí)自動恢復(fù)。這意味著定期發(fā)生故障,以確保您的系統(tǒng)能夠處理混亂而不會中斷對最終客戶的服務(wù)。為了實(shí)現(xiàn)這一目標(biāo),您需要能夠在測試環(huán)境中模擬類似生產(chǎn)的流量。

當(dāng)然,在更改生產(chǎn)之前測試彈性是個(gè)好主意。如果您不這樣做,您將無法驗(yàn)證您的服務(wù)是否支持平均和峰值負(fù)載。事實(shí)上,最安全的選擇是確保您的產(chǎn)品能夠處理峰值量的兩倍而無需擴(kuò)大規(guī)模。

在彈性測試方面,正確的工具不應(yīng)過于關(guān)注請求的處理方式,只要他們最終能夠產(chǎn)生正確的影響。請記住,在某些情況下,輸入服務(wù)可能無法將請求移交給系統(tǒng)的其余部分,但不會報(bào)告失敗。通過確保實(shí)際上正在進(jìn)行端到端驗(yàn)證,不要冒險(xiǎn)在監(jiān)控雷達(dá)下飛行的問題。

下一步

在了解服務(wù)如何在負(fù)載下運(yùn)行之后,是時(shí)候開始介紹故障事件了。與所有軟件測試一樣,最好使用自動化工具,以便您輕松快速地重現(xiàn)場景,以便您可以協(xié)調(diào)影響不同基礎(chǔ)架構(gòu)技術(shù)的復(fù)雜事件。除了驗(yàn)證修復(fù)和服務(wù)更改的能力之外,這還允許您在任何環(huán)境和計(jì)劃中運(yùn)行隨機(jī)故障方案。

有意義的失敗事件在很大程度上取決于您的服務(wù)布局,您可以通過詢問與您相關(guān)的特定問題來制定它們。例如,當(dāng)數(shù)據(jù)庫在一段時(shí)間內(nèi)無法訪問時(shí),使用前端的人員會受到什么影響?這些用戶是否仍可以在Web UI中導(dǎo)航?他們是否仍然可以對其信息進(jìn)行更新,并且當(dāng)數(shù)據(jù)庫再次可以訪問時(shí),是否可以正確處理這些更新?

如果您運(yùn)行多個(gè)微服務(wù),則可以詢問是否存在全局中斷,如果任何單個(gè)服務(wù)崩潰?;蛘?,如果您有一個(gè)緩沖服務(wù)之間通信的排隊(duì)機(jī)制,當(dāng)消費(fèi)者服務(wù)(或服務(wù))停止工作時(shí)會發(fā)生什么?用戶是否仍然可以使用您的應(yīng)用程序?并且考慮到平均負(fù)載,在隊(duì)列溢出并開始丟失消息之前你有多長時(shí)間?

一旦定義了有關(guān)基礎(chǔ)架構(gòu)的幾個(gè)關(guān)鍵問題,就可以開始列出模擬這些失敗的不同方法。停止特定服務(wù)或數(shù)據(jù)庫服務(wù)器可能就足夠了。您可能希望阻止服務(wù)的主線程來模擬死鎖,而其容器仍然響應(yīng)并運(yùn)行。您可能決定在網(wǎng)絡(luò)中引入規(guī)則以阻止特定服務(wù)之間的流量。在Linux環(huán)境中,您可以使用“tc”等工具來模擬網(wǎng)絡(luò)情況,如高延遲,丟失,損壞或重復(fù)的數(shù)據(jù)包。

通過演練學(xué)習(xí)和提高

創(chuàng)建故障場景最有價(jià)值的方面之一是它們可以暴露系統(tǒng)可能失敗的所有潛在方式,從而為自我修復(fù)邏輯奠定了基礎(chǔ)。您的團(tuán)隊(duì)將完成手動恢復(fù)服務(wù)的步驟 - 順便說一下,確保他們能夠在SLA中執(zhí)行此操作??梢允褂么嘶謴?fù)過程的自動化,但與此同時(shí),您可以輕松了解您的團(tuán)隊(duì)已經(jīng)完成了使服務(wù)重回正軌的過程。通過使故障情景隨機(jī)且有規(guī)律并且不公開運(yùn)行的完整細(xì)節(jié),您還可以包括對演習(xí)的發(fā)現(xiàn)和診斷 - 畢竟這是SLA的關(guān)鍵部分。

混沌工程的核心是將系統(tǒng)的復(fù)雜性作為給定,通過模擬新的和古怪的條件來測試它,并觀察系統(tǒng)如何響應(yīng)。這是數(shù)據(jù)工程團(tuán)隊(duì)需要重新設(shè)計(jì)和重新配置系統(tǒng)以實(shí)現(xiàn)更高的彈性。學(xué)習(xí)新的有用的東西有很多機(jī)會。例如,您可能會發(fā)現(xiàn)下游服務(wù)發(fā)生更改時(shí)服務(wù)未獲得更新的實(shí)例,或者完全缺少監(jiān)視的區(qū)域。有一些令人興奮的方法可以讓您的產(chǎn)品更具彈性和穩(wěn)健性!


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。