2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。
盡管我們盡最大努力避免它們,但IT事件是這項工作不可避免的一部分 - 并且試圖保持領(lǐng)先于業(yè)務(wù)影響的停機時間只會變得更加棘手。今天的系統(tǒng)緊密耦合,越來越復(fù)雜,更多的移動部件帶來更多出錯的機會。
這就是為什么越來越多的組織轉(zhuǎn)向微服務(wù)以提高服務(wù)可用性和更好地恢復(fù)故障的原因之一。雖然這些是破壞單片應(yīng)用程序的重要前提,但它們也可能增加失敗的風(fēng)險 - 除非明確考慮到彈性設(shè)計。
準備失敗
鑒于分布式系統(tǒng)固有的混亂特性,應(yīng)該開發(fā)服務(wù),不僅要預(yù)測故障,還要在發(fā)生故障時自動恢復(fù)。這意味著定期發(fā)生故障,以確保您的系統(tǒng)能夠處理混亂而不會中斷對最終客戶的服務(wù)。為了實現(xiàn)這一目標,您需要能夠在測試環(huán)境中模擬類似生產(chǎn)的流量。
當(dāng)然,在更改生產(chǎn)之前測試彈性是個好主意。如果您不這樣做,您將無法驗證您的服務(wù)是否支持平均和峰值負載。事實上,最安全的選擇是確保您的產(chǎn)品能夠處理峰值量的兩倍而無需擴大規(guī)模。
在彈性測試方面,正確的工具不應(yīng)過于關(guān)注請求的處理方式,只要他們最終能夠產(chǎn)生正確的影響。請記住,在某些情況下,輸入服務(wù)可能無法將請求移交給系統(tǒng)的其余部分,但不會報告失敗。通過確保實際上正在進行端到端驗證,不要冒險在監(jiān)控雷達下飛行的問題。
下一步
在了解服務(wù)如何在負載下運行之后,是時候開始介紹故障事件了。與所有軟件測試一樣,最好使用自動化工具,以便您輕松快速地重現(xiàn)場景,以便您可以協(xié)調(diào)影響不同基礎(chǔ)架構(gòu)技術(shù)的復(fù)雜事件。除了驗證修復(fù)和服務(wù)更改的能力之外,這還允許您在任何環(huán)境和計劃中運行隨機故障方案。
有意義的失敗事件在很大程度上取決于您的服務(wù)布局,您可以通過詢問與您相關(guān)的特定問題來制定它們。例如,當(dāng)數(shù)據(jù)庫在一段時間內(nèi)無法訪問時,使用前端的人員會受到什么影響?這些用戶是否仍可以在Web UI中導(dǎo)航?他們是否仍然可以對其信息進行更新,并且當(dāng)數(shù)據(jù)庫再次可以訪問時,是否可以正確處理這些更新?
如果您運行多個微服務(wù),則可以詢問是否存在全局中斷,如果任何單個服務(wù)崩潰。或者,如果您有一個緩沖服務(wù)之間通信的排隊機制,當(dāng)消費者服務(wù)(或服務(wù))停止工作時會發(fā)生什么?用戶是否仍然可以使用您的應(yīng)用程序?并且考慮到平均負載,在隊列溢出并開始丟失消息之前你有多長時間?
一旦定義了有關(guān)基礎(chǔ)架構(gòu)的幾個關(guān)鍵問題,就可以開始列出模擬這些失敗的不同方法。停止特定服務(wù)或數(shù)據(jù)庫服務(wù)器可能就足夠了。您可能希望阻止服務(wù)的主線程來模擬死鎖,而其容器仍然響應(yīng)并運行。您可能決定在網(wǎng)絡(luò)中引入規(guī)則以阻止特定服務(wù)之間的流量。在Linux環(huán)境中,您可以使用“tc”等工具來模擬網(wǎng)絡(luò)情況,如高延遲,丟失,損壞或重復(fù)的數(shù)據(jù)包。
通過演練學(xué)習(xí)和提高
創(chuàng)建故障場景最有價值的方面之一是它們可以暴露系統(tǒng)可能失敗的所有潛在方式,從而為自我修復(fù)邏輯奠定了基礎(chǔ)。您的團隊將完成手動恢復(fù)服務(wù)的步驟 - 順便說一下,確保他們能夠在SLA中執(zhí)行此操作??梢允褂么嘶謴?fù)過程的自動化,但與此同時,您可以輕松了解您的團隊已經(jīng)完成了使服務(wù)重回正軌的過程。通過使故障情景隨機且有規(guī)律并且不公開運行的完整細節(jié),您還可以包括對演習(xí)的發(fā)現(xiàn)和診斷 - 畢竟這是SLA的關(guān)鍵部分。
混沌工程的核心是將系統(tǒng)的復(fù)雜性作為給定,通過模擬新的和古怪的條件來測試它,并觀察系統(tǒng)如何響應(yīng)。這是數(shù)據(jù)工程團隊需要重新設(shè)計和重新配置系統(tǒng)以實現(xiàn)更高的彈性。學(xué)習(xí)新的有用的東西有很多機會。例如,您可能會發(fā)現(xiàn)下游服務(wù)發(fā)生更改時服務(wù)未獲得更新的實例,或者完全缺少監(jiān)視的區(qū)域。有一些令人興奮的方法可以讓您的產(chǎn)品更具彈性和穩(wěn)健性!
2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。