透過網(wǎng)絡(luò)故障看冗余準(zhǔn)備的重要性
譯文【51CTO.com快譯】冗余性不僅僅對(duì)應(yīng)用程序和內(nèi)部服務(wù)來說很重要,對(duì)基礎(chǔ)設(shè)施和第三方提供商來說也很重要。
隨著互聯(lián)網(wǎng)應(yīng)用的深入,人們對(duì)互聯(lián)網(wǎng)的依賴也越來越重:對(duì)于互聯(lián)網(wǎng)公司而言,如果因?yàn)楣收蠈?dǎo)致用戶無法使用Web服務(wù),那么每一分鐘的經(jīng)濟(jì)損失都會(huì)讓公司難以承受;如果員工無法訪問工作用途的Web應(yīng)用程序,那么工作效率也隨之大大下降……
似乎在無形中人們因互聯(lián)網(wǎng)故障加深了一種認(rèn)知:不能把任何真正重要的東西托付給互聯(lián)網(wǎng)。
看一下去年發(fā)生的幾起互聯(lián)網(wǎng)故障,就會(huì)發(fā)現(xiàn),雖然改用基于云的架構(gòu)和應(yīng)用程序已降低了IT基礎(chǔ)設(shè)施的復(fù)雜性,但這是以犧牲彈性(resiliency)為代價(jià)。IT部門不得不經(jīng)常兼顧冗余性與復(fù)雜性(冗余性增強(qiáng)了彈性),最近的故障表明冗余性老是被人遺忘。網(wǎng)絡(luò)基礎(chǔ)設(shè)施監(jiān)控公司ThousandEyes的高級(jí)主管尼克·凱普哈特(Nick Kephart)說:“IT部門需要為關(guān)鍵服務(wù)方面的冗余性作好規(guī)劃。”
注重冗余性
冗余性是一條基準(zhǔn)的IT準(zhǔn)則。無論是運(yùn)行同一Web應(yīng)用程序的多臺(tái)后端服務(wù)器,還是構(gòu)建組成RAID陣列的磁盤驅(qū)動(dòng)器,IT部門都要定期確??捎眯?,即便在出現(xiàn)故障的情況下也是如此。不過,針對(duì)域名系統(tǒng)(DNS)服務(wù)提供商Dyn發(fā)動(dòng)的大規(guī)模DDoS攻擊表明,許多企業(yè)組織并沒有認(rèn)真考慮關(guān)鍵基礎(chǔ)設(shè)施方面的冗余性。
那次攻擊發(fā)送了足夠多的垃圾郵件,讓Dyn的服務(wù)器招架不住,以至于合法的DNS請(qǐng)求再也無法得到響應(yīng)。依賴Dyn將流量轉(zhuǎn)發(fā)到其服務(wù)器的其他網(wǎng)站認(rèn)識(shí)到?jīng)]有備用DNS提供商意味著實(shí)際上在此期間與互聯(lián)網(wǎng)的其余系統(tǒng)斷開來,可惜為時(shí)太晚。
那些對(duì)DNS域名服務(wù)器進(jìn)行負(fù)載均衡,將負(fù)載分布到多家提供商上的網(wǎng)絡(luò)公司,比如亞馬遜(同時(shí)使用Ultra DNS和Dyn),能夠在故障期間切換,并保持不受到影響。
互聯(lián)網(wǎng)通常正常運(yùn)轉(zhuǎn),沒有任何重大問題,但是DDoS的強(qiáng)度越來越大、頻次越來越高,這證明了需要把DNS當(dāng)成關(guān)鍵互聯(lián)網(wǎng)基礎(chǔ)設(shè)施來對(duì)待,并采取相應(yīng)級(jí)別的措施來保護(hù)。針對(duì)DNS的攻擊并非反常之事――基于云的DNS提供商N(yùn)S1在去年初遭到了攻擊,還有6月攻擊全部13臺(tái)DNS根服務(wù)器的那次攻擊。網(wǎng)絡(luò)基礎(chǔ)設(shè)施監(jiān)控公司ThousandEyes的經(jīng)理阿查納·凱薩凡(Archana Kesavan)說:“那是針對(duì)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施最關(guān)鍵的部分發(fā)動(dòng)的大規(guī)模攻擊,導(dǎo)致出現(xiàn)大約三個(gè)小時(shí)的性能問題。”
對(duì)于許多企業(yè)來說,Dyn似乎是為DNS服務(wù)確保冗余性的合理選擇,因?yàn)镈yn已經(jīng)提供一種分布式架構(gòu)。IT團(tuán)隊(duì)之所以不想要多家DNS提供商,是因?yàn)槟菢訒?huì)給網(wǎng)絡(luò)基礎(chǔ)設(shè)施增添復(fù)雜性,但是DNS故障會(huì)發(fā)生,而且確實(shí)在發(fā)生,所以IT團(tuán)隊(duì)需要在DNS提供商方面做到雙保險(xiǎn),或者甚至三保險(xiǎn)。IT部門還應(yīng)該調(diào)低DNS服務(wù)器在生存時(shí)間方面的設(shè)置,那樣萬一主提供商遇到故障,流量可以更快速地重定向至備用提供商。
樹大也會(huì)招風(fēng)
故障不僅僅是惡意活動(dòng)或設(shè)備故障的結(jié)果。要是沒有適當(dāng)?shù)木W(wǎng)絡(luò)和容量規(guī)劃,很高的知名度同樣帶來危害。訪客數(shù)量眾多和人人嚷著使用的熱門應(yīng)用軟件是好事,但是增加的流量會(huì)導(dǎo)致服務(wù)器癱瘓、網(wǎng)絡(luò)因不堪重負(fù)而崩潰。
凱普哈特表示,如果網(wǎng)絡(luò)架構(gòu)沒有考慮到流量突發(fā)(traffic burst)情況,沒有內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)前端會(huì)帶來慘重的后果。
1月份是近幾年來彩票頭獎(jiǎng)最高的月份之一,但是Powerball無力應(yīng)對(duì)中獎(jiǎng)數(shù)百萬美元所帶來的高漲熱情。應(yīng)用軟件和網(wǎng)絡(luò)都處理不了流量激增的情況,導(dǎo)致數(shù)據(jù)包丟失增加,網(wǎng)頁加載時(shí)間變長。Powerball避免了全面崩潰,采用的辦法就是在開獎(jiǎng)前夕,將流量分布到韋里遜的Edgecast CDN網(wǎng)絡(luò)、微軟數(shù)據(jù)中心和州際彩票協(xié)會(huì)的數(shù)據(jù)中心。凱薩凡說:“危害已經(jīng)釀成,用戶的網(wǎng)站體驗(yàn)在標(biāo)準(zhǔn)以下。”
網(wǎng)絡(luò)架構(gòu)和不堪重負(fù)的目標(biāo)服務(wù)器共同讓用戶無法玩爆款游戲PokemonGo后,該游戲的服務(wù)器遇到了類似的故障。蘋果的服務(wù)器在竭力處理任天堂發(fā)布期待已久的游戲《超級(jí)馬里奧跑酷》,零星的故障影響了其所有網(wǎng)店,包括iOS應(yīng)用程序商店、Mac應(yīng)用程序商店、Apple TV和Apple Music。
基準(zhǔn)測試和容量規(guī)劃至關(guān)重要,尤其是在軟件更新和大規(guī)?;顒?dòng)之前。不管網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)得多好,CDN和任播服務(wù)器都要能夠支持網(wǎng)絡(luò),最大限度地提升用戶體驗(yàn)。
我們還沒有說冗余性?
基礎(chǔ)設(shè)施的冗余性同樣不容忽視。IT團(tuán)隊(duì)忍不住要想:“我的互聯(lián)網(wǎng)服務(wù)提供商(ISP)能處理這個(gè)問題,我不需要做其他任何事。”凱普哈特表示,但是連上游提供商也會(huì)遇到故障,無論是由于錯(cuò)誤配置、硬件故障,還是安全事件。網(wǎng)絡(luò)本身會(huì)遇到故障,面臨安全威脅,所以IT部門需要把出現(xiàn)故障后靈活應(yīng)對(duì)的機(jī)制設(shè)計(jì)到網(wǎng)絡(luò)架構(gòu)中。企業(yè)通常在把冗余性帶入到自己的數(shù)據(jù)中心方面做得很到位,但是忽視了對(duì)第三方基礎(chǔ)設(shè)施提供商采取同樣的做法。
別依賴單單一家提供商,因?yàn)槟菚?huì)成為單一故障點(diǎn)。而是應(yīng)該依賴多家ISP、DNS提供商和主機(jī)托管公司。
原文標(biāo)題:A lesson from network outages: Redundancy matters
作者:Fahmida Y. Rashid
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】