在企業(yè)的運營中,遭遇一些失敗和困難是不可避免的,采用更新的復(fù)雜系統(tǒng)也會遇到無法預(yù)料的事件。而企業(yè)可以做的就是盡可能地減輕這些事件的損害。
災(zāi)難準(zhǔn)備的一個策略是事件響應(yīng)——建立程序以盡快解決事件并恢復(fù)服務(wù);另一個策略是通過減少單點失敗等策略來減少失敗的機(jī)會。以下將討論第三種策略:在出現(xiàn)嚴(yán)重問題時,使用備份系統(tǒng)和冗余來快速恢復(fù)功能。
擁有備份系統(tǒng)可以讓企業(yè)高枕無憂:無論出現(xiàn)什么問題,只需切換到備份系統(tǒng)一段時間,然后一切都將恢復(fù),是這樣嗎?而災(zāi)難來臨時,真的會這么順利嗎?本文將通過以下幾點幫助企業(yè)確保備份系統(tǒng)在最需要的時候能夠按預(yù)期運行:
進(jìn)行恢復(fù)訓(xùn)練的價值
許多企業(yè)對其數(shù)據(jù)和基礎(chǔ)設(shè)施都采取了備份措施,當(dāng)主系統(tǒng)出現(xiàn)故障時,他們可以切換到這些備份系統(tǒng)中。但這個切換“開關(guān)”究竟是什么?一位工程師講述了一個故事,他所在的公司數(shù)據(jù)庫被徹底清除,造成噩夢般的業(yè)務(wù)中斷。雖然有備份數(shù)據(jù)庫,但需要解壓才能使用。那需要多長時間?他們并不知道。
這名工程師所講述的故事屢見不鮮。很多人認(rèn)為對所有內(nèi)容都進(jìn)行備份就會感到安全,但他們實際上不能確定這些備份措施在災(zāi)難中立即可用。這個故事的另一個關(guān)鍵部分是缺乏資源:由于他們沒有內(nèi)部基礎(chǔ)設(shè)施團(tuán)隊,將不得不依靠沒有經(jīng)驗的工作人員遵循運行手冊進(jìn)行恢復(fù)。
解決這個問題的方法是定期進(jìn)行恢復(fù)訓(xùn)練,模擬從生產(chǎn)系統(tǒng)切換到備份的一切情況。這需要多長時間?現(xiàn)在遇到的障礙有哪些是可以消除的?需要依賴什么資源?是否向其他人征求意見?是否使用基礎(chǔ)設(shè)施運行手冊?如果這些人離職,或者基礎(chǔ)設(shè)施發(fā)生故障怎么辦?企業(yè)需要為這些可能性做好準(zhǔn)備。
在完成這些練習(xí)后,需要回顧可以改進(jìn)的地方。最重要的部分是安排下一次恢復(fù)訓(xùn)練。隨著代碼庫的變化和數(shù)據(jù)庫的增長,需要繼續(xù)確保備份恢復(fù)順利進(jìn)行。
不要滿足于未經(jīng)測試的備份。行業(yè)專家總結(jié)了這一點:當(dāng)涉及到備份策略時,如果沒有測試恢復(fù)過程,那么就無法確定其備份是有用的,如果不確定其備份很有用,那么它們很可能是沒用的。
對事件進(jìn)行整體和橫向思考
企業(yè)在運營業(yè)務(wù)時可能出現(xiàn)問題,例如服務(wù)器出現(xiàn)故障,代碼中的拼寫錯誤,高流量導(dǎo)致網(wǎng)絡(luò)延遲等。但實際上,大多數(shù)事件都會產(chǎn)生其他故障的多米諾骨牌效應(yīng)。企業(yè)在為失敗做準(zhǔn)備時,重要的是要考慮所有可能出錯的事情。
以下是一些需要考慮的事項:
·企業(yè)的原有溝通工具也會失效嗎?
·如果工具出現(xiàn)故障,運行手冊等資源是否可用?
·用于恢復(fù)備份的服務(wù)是否也會出現(xiàn)故障?
·如果發(fā)生重大中斷,能夠?qū)Υ隧憫?yīng)的人員是否會處理更主要的優(yōu)先事項?它們會出現(xiàn)嗎?
·工程團(tuán)隊是否會感到壓力過大、精疲力竭,并且無法按照正常標(biāo)準(zhǔn)執(zhí)行?
每個企業(yè)都有可能在事件發(fā)生時出現(xiàn)問題,因此需要從過去的事件獲得經(jīng)驗和教訓(xùn)。可以創(chuàng)建事件回顧以調(diào)查事件的原因和影響。影響因素分析等技術(shù)可幫助企業(yè)發(fā)現(xiàn)這些一致的問題。
在確定這些問題之后,需要確保其備份計劃能夠彌補(bǔ)這些問題。不要遺漏任何東西:考慮從技術(shù)到個人的每個因素。如果使用內(nèi)部工具來啟動新服務(wù)器,不要以為會擁有它。如果工程師在出現(xiàn)問題時不知所措,需要確保有明確的解決方案并且易于訪問。
企業(yè)需要跳出固有的思維模式,深入挖掘提出的解決方案,以發(fā)現(xiàn)可能出現(xiàn)的問題。例如,在遇到電力中斷時,依靠卡車運送的備用發(fā)電機(jī)來解決問題——但是如果卡車遇到交通堵塞或拋錨怎么辦?不要只滿足于一種解決方案。如果企業(yè)的解決方案出現(xiàn)問題,需要采用其他的解決方案,并提供備份措施。
通過想象和提前為 “黑天鵝”事件做準(zhǔn)備來增加彈性
“黑天鵝”事件是一個幾乎不可能預(yù)測甚至想象的事件,但會造成災(zāi)難性的破壞。回想起來,黑天鵝事件似乎是一種明顯的可能性。然而在它發(fā)生之前,這是不可想象的。
科技領(lǐng)域的黑天鵝事件的一個例子是Facebook公司最近發(fā)生的一次宕機(jī)事件。Facebook公司并沒有為他們的DNS服務(wù)器的徹底崩潰做好準(zhǔn)備,他們也沒有想到隨之而來出現(xiàn)的許多問題——例如由于疫情導(dǎo)致出行封鎖無法進(jìn)入他們的辦公室。如果一個普通事件產(chǎn)生了多米諾骨牌效應(yīng),那么黑天鵝事件就像打翻了紙牌屋。
那么如何為意想不到的事件做好準(zhǔn)備呢?一種策略是發(fā)揮創(chuàng)造力。例如谷歌公司的一個例子:假設(shè)谷歌公司的總部被流星擊中。在練習(xí)響應(yīng)過程中,需要每次嘗試聯(lián)系那里的工作人員、訪問那里托管的服務(wù)器,甚至依賴那里管理的帶寬時都要停止。
但是谷歌公司的總部真的會被流星從地圖上抹去嗎?幾乎是不可能。如果是這樣,谷歌分支機(jī)構(gòu)真的會恢復(fù)服務(wù)嗎?不,他們可能會有更大的顧慮。但是通過模擬這種最壞的情況,企業(yè)可以為其他無法想象的事件做好準(zhǔn)備。
行業(yè)專家強(qiáng)調(diào)了測試的重要性,不僅僅是為了想要測試的東西進(jìn)行測試。災(zāi)難備份的重點是發(fā)現(xiàn)漏洞并推動系統(tǒng)性變革。而他將這個想法描述為區(qū)分穩(wěn)健性(對可能出錯的一切進(jìn)行測試)和彈性(對于不需要知道的事情進(jìn)行測試),一般來說,發(fā)現(xiàn)企業(yè)在穩(wěn)健性方面非常出色,而在彈性方面則非常糟糕。
通過對未知的測試來構(gòu)建彈性是一種需要迭代和反思的實踐。沒有一種正確的方法可以做到這一點。重要的是徹底記錄其恢復(fù)的過程和結(jié)果。然后分析哪些類型的實驗正在產(chǎn)生見解,并圍繞它們構(gòu)建未來的測試。堅持練習(xí),確保在最后一個實驗結(jié)束后安排下一個實驗。
但是對于世界末日的場景,將采用什么解決方案呢?行業(yè)專家提出了一個觀點,乍一看似乎有悖直覺。在通常情況下,企業(yè)走向成熟和成長的途徑首先是依賴第三方工具,然后在內(nèi)部構(gòu)建越來越多的工具和基礎(chǔ)設(shè)施。大型企業(yè)可能會構(gòu)建自己的通信、警報和跟蹤工具。
然而,黑天鵝事件表明,可能還有一個更為成熟的階段:將第三方工具作為備份。如果企業(yè)不能使用工具來解決問題,那么應(yīng)該準(zhǔn)備好其他一些工具。當(dāng)然,與任何備份系統(tǒng)一樣,需要進(jìn)行演練以確保交換機(jī)的實際恢復(fù)功能。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。