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