最近幾個星期以來,我們已經(jīng)陸續(xù)聽到了不少關于數(shù)據(jù)中心中斷事故影響到一些具有較高知名度的美國企業(yè)的報道,包括華爾街日報、紐約證券交易所和美國聯(lián)合航空公司在一周內均受到不同程度的影響。盡管想要百分百的防止每一次停機中斷事件的發(fā)生是不可能的,但這些被媒體高度宣傳的問題可能會花費大量的資金成本,并會顯著影響到客戶如何看待一家企業(yè),進而影響到企業(yè)形象和聲譽。為此,我們特地采訪了業(yè)界的專家們,向他們咨詢了一系列的問題:包括企業(yè)應該做些什么工作,以便能夠維持高水平的正常運行時間?導致停機中斷的原因都包括了哪些常見的錯誤?以及客戶對于數(shù)據(jù)中心的安全性和彈性的平均期望如何?或者說偶爾的停機中斷事故是企業(yè)正常運維的現(xiàn)實?
密爾沃基地區(qū)技術學院Brian Kirsch
可用性和其他一切之間的平衡是IT的基石之一。我們都希望我們的系統(tǒng)在我們需要時均能夠保持正常運行,為我們所用。而當您需要在系統(tǒng)的可用性與需要做哪些工作以獲得這種可用性之間進行平衡時,問題就出現(xiàn)了。您所需關注的問題不僅僅是簡單的只是成本方面的問題,其復雜性和測試才是促使一切協(xié)同工作的關鍵。僅僅由某一款單一的硬件或軟件產(chǎn)品就能夠提供可用能力的理念在今天已經(jīng)不存在了。雖然我們今天所使用的備份和災難恢復產(chǎn)品已經(jīng)變得更加廣泛且有效,但相應的應用程序也已經(jīng)變得更加復雜了。
這種應用程序及其可用性之間的不斷競爭,會在當企業(yè)所使用的災難恢復產(chǎn)品無法跟上的應用程序的需求和設計時,造成大范圍的停機中斷事故。
然而,硬件和軟件也僅僅只是停機中斷事故難題的一小部分。許多停機中斷的發(fā)生是由于系統(tǒng)故障和變化所造成的。我們通過設計以防止發(fā)生故障失。晃覀兊陌踩到y(tǒng)防止未經(jīng)授權的變化。然而,所有這一切在前端的努力都不能百分百的防止每一次停機中斷的發(fā)生。我們仍要積極探索和尋找處理災難恢復和停機中斷的新方法。讓我們秉承著企業(yè)必將發(fā)生停機中斷,而不是試圖簡單地阻止他們的理念來設計我們的系統(tǒng)。積極的面對故障和運行失敗能夠給我們真正的應用程序彈性,因為故障保護不再僅僅是表面的事情了。然后,我們可以測試并證明我們有能力處理故障失敗。
在這方面,沒有比Netflix及其Chaos Monkey工程團隊更明顯的了。Netflix面臨大規(guī)模的亞馬遜EC2云重新啟動,同時還需要保持其在線服務的正常運轉。對于許多公司來說,EC2云的重啟會為他們帶來一些他們認為永遠不會看到且很少有針對性的進行計劃以防止出現(xiàn)停機中斷的東西。另一方面,Netflix及其獨特命名的Chaos Monkey工程團隊則有一項計劃。在Netflix,Chaos Monkey的作用是定期反復針對故障失敗進行測試鍛煉。通過不斷的測試、和在問題造成大規(guī)模停機中斷事故之前對其進行修正,Netflix公司已經(jīng)創(chuàng)建了一項專門處理故障運行失敗的服務設計,來確?捎眯。
LogicNow公司戴夫·索貝爾
對于像紐約證券交易所、華爾街日報和美國航空公司這樣的企業(yè)和機構而言,出現(xiàn)任何形式的停機中斷事故幾乎都可以說是一種恥辱。停機中斷事故所造成的成本損失可能是極其昂貴的,而鑒于計算資源又相對低廉,先進的規(guī)劃則可以確保將停機中斷事故發(fā)生的幾率降低到最低限度。對于那些有關鍵需求的企業(yè)而言,他們現(xiàn)在可以很容易地在云中建立備份系統(tǒng),而且只有在緊急情況下使用。例如,微軟的Windows Azure,僅針對活躍計算負載收取費用,這意味著整個備份網(wǎng)絡可以在冷待機等待處理問題。熱備份也可以設置最小的使用水平,確保為故障轉移做好準備。監(jiān)控和管理軟件則應該始終被使用,繼續(xù)獲得更先進的預測分析,以預測分析可能的停機事故。
但是,溝通是緩解停機中斷事故影響的最重要的部分。對于一名因美國聯(lián)合航空公司發(fā)生停機中斷事故而被滯留的乘客來說,最令人沮喪的無疑是缺乏透明有效的信息。企業(yè)不得主動不承認相關問題,然后再根據(jù)承諾進行交付。在社交媒體保持沉默和員工之間缺乏信息溝通可能是造成客戶服務體驗最糟糕的原因之一。
Volanto公司吉姆·奧賴利
安全系統(tǒng)怎么會發(fā)生運行失敗?這看起來似乎是一種矛盾,但對于美國聯(lián)合航空公司、紐約證券交易所和其他企業(yè)而言,最近都紛紛出現(xiàn)了狀況。他們的IT基礎設施到底有什么問題?
不斷增強的復雜性肯定是問題原因的一部分。通常,企業(yè)已經(jīng)有一些被修補和擴展過多次的舊系統(tǒng)。這導致了硬件和軟件的漏洞。美國聯(lián)合航空公司的問題則要歸咎于一個路由器的運行失敗,但這有引出了一個高度冗余的系統(tǒng)如何會有一個單點故障的問題。
當然,通信問題并不是美國航空公司所獨有。云計算巨頭亞馬遜網(wǎng)絡服務(AWS)在當一款路由器的軟件被錯誤的更新時,也失去了幾個區(qū)。這樣的故障失敗往往是由糟糕的操作程序,缺乏制衡的配置或糟糕的安裝所造成的。
像AWS一樣,在混亂的紐約證券交易所發(fā)生停機中斷,起因于一個糟糕的軟件更新——在這種情況下,“匹配引擎”將連接買賣交易指令。
盡管硬件或軟件方面的原因已倍受指責,但所有這些問題的真正的罪魁禍首是人為錯誤。在高度進化的系統(tǒng)中,故障是可以預料的,管理員必須進行相應的改變,以處理不同的平臺和應用程序的方法。糟糕的網(wǎng)絡拓撲,未經(jīng)測試的更新,更新被誤用都是可以避免的錯誤。現(xiàn)在的問題是如何避免它們,同時也不會產(chǎn)生其他惡果。
自動化操作是解決更新問題的答案。任何使用Windows的人都熟悉其升級方法。有時它是在后臺自動進行的,有時也需要用戶回答一些問題,但大部分的工作和任何重新配置的新代碼都是由軟件處理的。
另一方面,Linux在最好的傳統(tǒng)命令行界面,通常需要系統(tǒng)管理員輸入驚人的速率來執(zhí)行更新。其腳本被認為是最先進的。不過,腳本總是需要調整才能正常工作。
高水平的人工交互系統(tǒng)本身故障頻發(fā),AWS和紐約證券交易所的事件是典型的結果。聯(lián)合航空公司則有著不同的問題。顯然是一個單一的故障點造成的。防止這種故障不是研究火箭般的高精尖科學。僅僅只需對路由結構進行人工審查應該就能夠確定一個路由器可以使系統(tǒng)癱瘓的問題的癥所在。坦白說,當應用程序套件的拓撲結構和底層平臺總是在不斷變化時,人工檢查是不容易的。
一些軟件將能夠在系統(tǒng)中檢測問題點時發(fā)揮其價值。企業(yè)傾向于通過連續(xù)性軟件解決配置問題。大數(shù)據(jù)分析的方法可能會增加方法的復雜性。
即便如此,糟糕的應用程序設計,特別是彈性較小的傳統(tǒng)遺留系統(tǒng)仍然是一個問題,將繼續(xù)困擾我們。解決這一類問題的答案是“沙箱測試”和“更嚴格的測試”。
無停機中斷故障的數(shù)據(jù)中心究竟是否能夠存在?答案是,我們距離實現(xiàn)這一理想還很遠,但我們可以做得更好。