5月27日、28日,支付寶和攜程雙雙出現(xiàn)用戶無法正常使用的問題,盡管事故原因并不相同,卻也為互聯(lián)網(wǎng)企業(yè)的運行安全敲響了警鐘。之前并不怎么被人提起的容災能力建設,也重新回到人們的視野。
連續(xù)兩天兩起事故
“說起來也真是夠寸的,平時很少發(fā)生的事故這回一下就是兩起,而且連續(xù)兩天發(fā)生,應該是很小概率的情況。”一位互聯(lián)網(wǎng)業(yè)內(nèi)人士感慨道,他所說的小概率事件,就是上周支付寶和攜程連續(xù)發(fā)生的嚴重事故。
5月27日下午,支付寶出現(xiàn)大規(guī)模癱瘓,國內(nèi)很多支付寶用戶在PC端和移動端均無法轉(zhuǎn)賬付款,這一事故持續(xù)了差不多兩小時。支付寶方面對外表示,造成此次事故的原因,是由于市政施工使得杭州市蕭山區(qū)某地光纜被挖斷,進而導致支付寶一個主要機房受影響。
無獨有偶,第二天,攜程又出事了。從當天中午開始,攜程官方網(wǎng)站及APP出現(xiàn)了無法正常使用的情況,更為嚴重的是,這一事故持續(xù)了12個小時才被修復,這也引發(fā)了外界對攜程的種種猜測。最終攜程方面給出的解釋是,由于員工錯誤操作,刪除了生產(chǎn)服務器上的執(zhí)行代碼。
中國領(lǐng)先的CDN服務提供商藍汛通信的技術(shù)專家表示,像支付寶和攜程這么嚴重的事故確實很少見,連續(xù)兩天發(fā)生更是罕見。該專家介紹,互聯(lián)網(wǎng)企業(yè)發(fā)生事故,可以分為機器級和機房級兩類,前者主要原因是系統(tǒng)架構(gòu)不是很好,遇到訪問量過多會帶來“宕機”;后者則主要是外部攻擊造成的,會造成機房的癱瘓。“機器級的故障主要是實力較弱的互聯(lián)網(wǎng)企業(yè)會遇到,像支付寶、攜程這樣的大企業(yè),這一類問題應該不會發(fā)生在他們身上了。能夠給這樣的企業(yè)帶來威脅的,一般就是機房級的故障了。”
機房級事故之前也是偶有發(fā)生。例如,2013年7月,由于上海一條光纜被挖斷,就導致微信在很多地區(qū)無法正常使用,時間長達7小時;2014年10月,也是因為上海機房出現(xiàn)故障,導致微信全國大面積故障2小時。
容災建設不容忽視
“雖然這一次的兩起事故看似很偶然,可也能反映出互聯(lián)網(wǎng)企業(yè)在容災能力上的漏洞,而漏洞的存在,又使得事故遲早會發(fā)生。”藍汛方面表示。容災是指企業(yè)對于可能發(fā)生的系統(tǒng)故障的防范性準備,比較準確的解釋是“建立兩套或多套功能相同的IT系統(tǒng),當一處系統(tǒng)停止工作時,整個應用系統(tǒng)可以切換到另一處,使得該系統(tǒng)功能可以繼續(xù)正常工作。”
據(jù)業(yè)內(nèi)人士向記者介紹,根據(jù)容災系統(tǒng)對災難的抵抗程度,可分為數(shù)據(jù)容災和應用容災。數(shù)據(jù)容災是指建立一個異地的數(shù)據(jù)系統(tǒng),對關(guān)鍵的數(shù)據(jù)進行備份存儲,當故障造成本地數(shù)據(jù)丟失時,可以通過備份找回;應用容災層次更高,即在異地建立一套完整的、與本地數(shù)據(jù)系統(tǒng)相當?shù)膫浞輵孟到y(tǒng),在災難出現(xiàn)后,遠程應用系統(tǒng)迅速接管或承擔本地應用系統(tǒng)的業(yè)務運行。業(yè)內(nèi)人士稱,現(xiàn)在對于數(shù)據(jù)安全的重要性,多數(shù)互聯(lián)網(wǎng)企業(yè)都有清楚的認識,數(shù)據(jù)的備份都做得比較完備,這方面出問題的可能性不大,可能會出現(xiàn)問題的,還主要是在應用容災上。
藍汛技術(shù)專家介紹,容災企業(yè)建設主要有三種方式,一種是冷備份,也就是備份服務器平時并不運行,只有發(fā)生事故后才開機啟動,這種備份方式由于需要啟動,系統(tǒng)恢復的時間會比較長;一種是熱備份,備份站點也和主站一樣處于運行狀態(tài),但只備份數(shù)據(jù),不承擔業(yè)務,只有當出現(xiàn)意外情況時,備份站點才接替主站點的業(yè)務,這種備份方式也會存在一定的時延;另外一種就是異地雙活的容災方式,也就是在相隔較遠的地方分別建立兩個機房,且都處于工作狀態(tài),共同承擔日常運行工作,一旦其中一個出現(xiàn)意外,則另一個承擔起全部工作。直觀地說,異地雙活的方式,就好比一個人可以完成的工作,在日常卻安排兩個人來同時完成,當其中一個人有事不能工作時,另一個人可以獨立完成。相比其他方式,異地雙活的容災,對意外情況的響應幾乎可以做到零時延,可能用戶根本就不會感覺到就實現(xiàn)切換了。
■分析
事故背后的容災漏洞
“這次的兩件事原因完全不同,支付寶的事故可以說是天災,攜程就完全是人禍了。”有多年災備工作經(jīng)驗的某公司信息安全部總監(jiān)劉小雄對記者分析,支付寶的事故偶然因素更大,提前預防的難度也更大,而攜程的事故則完全是內(nèi)部問題。不過,這兩起事故都反映出兩家企業(yè)在容災工作上的不足和漏洞。
支付寶 機房建設或存在不足
支付寶此次的事故,根源是機房光纜被挖斷,從這個角度講,有一定“不可抗力”的因素,但是也不能說支付寶本身就不存在任何問題。
藍汛技術(shù)專家認為,支付寶對外宣稱自己的容災方式是“異地雙活”,但是從實際處理來看,用戶受到影響的時間還是長達2小時,如果是真正做到了“異地雙活”,就不應該有這2個小時的服務中斷,由此可以推斷,支付寶的容災系統(tǒng)可能并沒有真正做到異地雙活。不過他也表示,支付寶與其他互聯(lián)網(wǎng)企業(yè)不同,它的業(yè)務是交易類的,實時的數(shù)據(jù)交互量非常龐大,想要做到異地雙活,技術(shù)難度非常大。“說實話,以阿里的實力,如果支付寶都做不到,那其他互聯(lián)網(wǎng)企業(yè)就更不用說了。”
這位技術(shù)專家還指出,從支付寶的故障進行倒推,其在機房的建設上也可能存在著不足。按照施工規(guī)范,連接兩個機房之間起碼要有兩條獨立的鏈路,而且兩條鏈路要走不同的路線,當其中的一條被挖斷時,就不會影響到兩個機房間的數(shù)據(jù)傳輸。
攜程 缺乏應急預案和演練
對于攜程遇到的事故,容災方面的專家認為,其原因更多的是攜程本身應對的問題,如果應對得當,事故影響是可以降低的。
劉小雄認為,從攜程此次事故的細節(jié)判斷,攜程給出的解釋似乎不大能站得住腳。“單純的誤操作很難帶來這么大的影響,它說是一些執(zhí)行代碼被誤刪除了,可線上和源頭同時被刪除的可能性是非常低的。”劉小雄判斷,攜程出問題的真正原因應該是遭遇到了網(wǎng)絡攻擊,或者是在應對攻擊時維護人員出現(xiàn)了重大失誤,或者是純粹的外界攻擊對它造成了破壞,“不管怎么說,我覺得網(wǎng)絡攻擊都是造成其嚴重事故的主因。”
他表示,網(wǎng)絡公司如果發(fā)現(xiàn)及時應對得當,是可以抵御或者降低危害的,可攜程的問題說明,他們或者沒有及時發(fā)現(xiàn)惡意攻擊,或者是安全防護人員能力較差,才會造成如此后果。
藍汛相關(guān)人士也認為,從攜程的應對來看,其明顯缺乏對此類情況的處置預案,似乎沒有做過相應的演練,否則按照預案與日常演練進行處理,不會用12個小時才恢復正常。“對緊急情況缺乏預案和演練的互聯(lián)網(wǎng)企業(yè)應該不在少數(shù)。”
■追訪
防范風險容災建設要合規(guī)
“出了事的認倒霉,沒出事的看熱鬧。”劉小雄稱,這是不少互聯(lián)網(wǎng)企業(yè)之前對于嚴重事故的態(tài)度,出過事的可能會對原有流程和設備進行完善,而沒有出過事的可能還抱著僥幸心理不加重視。不過,在支付寶和攜程的事故之后,多數(shù)互聯(lián)網(wǎng)企業(yè)還是應該會有所觸動的。“不只是企業(yè)自身,今后國家可能也會向企業(yè)提出更高的安全要求。”
劉小雄表示,想要避免出現(xiàn)嚴重的安全事故,企業(yè)對容災的重視程度和相關(guān)制度的合規(guī)非常重要。他介紹,在一些大型互聯(lián)網(wǎng)公司,主要業(yè)務部門必須有災備方案,還必須接受對災備預案和演練情況的審核。此外,公司本身也有對于容災的嚴格規(guī)定。“比如我們內(nèi)部的容災分為三個步驟,第一是明確哪些業(yè)務需要進行容災;第二是按照業(yè)務的實際情況每半年或者一年進行一次容災演練;第三就是當突發(fā)情況真的發(fā)生時,按照預案和演練進行操作就可以了。”
他認為,一些企業(yè)存在誤解,認為容災會增加成本,實際上如果容災沒有做好,出現(xiàn)事故,所帶來的損失要遠大于容災的投入。