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