再看亞馬遜4·21事故 反思云端應(yīng)用架構(gòu) |
發(fā)布時(shí)間: 2012/8/6 16:22:42 |
本文結(jié)合Amazon“4·21”事故,談到了如何從架構(gòu)的角度思考云端應(yīng)用,解決因所使用云服務(wù)的可用性問(wèn)題導(dǎo)致云端應(yīng)用不可用的問(wèn)題,以期即享受云計(jì)算帶來(lái)彈性擴(kuò)展、自動(dòng)供應(yīng)等優(yōu)勢(shì),又避免因云服務(wù)不可用而導(dǎo)致的用戶(hù)體驗(yàn)的下降。
云計(jì)算是一種新型的計(jì)算模式。其顯著優(yōu)勢(shì)之一是云計(jì)算用戶(hù)可以隨時(shí)隨地的使用來(lái)自互聯(lián)網(wǎng)的服務(wù),并且按使用量付費(fèi)。在需要增加(或減少)計(jì)算能力時(shí),可立即獲得(或釋放)資源,而在傳統(tǒng)數(shù)據(jù)中心(非私有云環(huán)境)中,用戶(hù)卻需要采購(gòu)硬件,安裝配置操作系統(tǒng)和中間件軟件,再部署應(yīng)用。兩種方式在運(yùn)維工作上的差異一目了然,這正是云計(jì)算能夠受到業(yè)界熱捧和追逐的主要原因之一。那么,云計(jì)算是完美無(wú)缺的么?不盡然如此。在云計(jì)算的世界里,運(yùn)維工作不再由云計(jì)算用戶(hù)承擔(dān),轉(zhuǎn)而交給虛擬化和自動(dòng)化技術(shù)以及云計(jì)算提供商來(lái)承擔(dān)。同時(shí),云計(jì)算用戶(hù)在享受彈性資源擴(kuò)張或收縮的同時(shí),也在一定程度上失去了對(duì)其使用資源的控制權(quán),而如果云服務(wù)供應(yīng)商的服務(wù)出現(xiàn)故障,或者云服務(wù)供應(yīng)商由于商業(yè)運(yùn)作的失敗或其他原因而關(guān)門(mén)倒閉時(shí),云計(jì)算用戶(hù)就可能會(huì)面臨巨大的風(fēng)險(xiǎn)。 2011年4月21日至22日是值得云計(jì)算從業(yè)者紀(jì)念的日子。Amazon的IaaS服務(wù)出現(xiàn)故障,導(dǎo)致許多商業(yè)網(wǎng)站的服務(wù)中斷,影響非常嚴(yán)重。據(jù)Amazon官方網(wǎng)站稱(chēng),受影響最嚴(yán)重的網(wǎng)站中有Reddit, Foursquare和Quora等。此事件發(fā)生后,人們一時(shí)陷入慌亂,對(duì)云計(jì)算可用性的擔(dān)心驟然升溫。同時(shí),也有人乘機(jī)夸大云計(jì)算的弊端,并宣稱(chēng)“云計(jì)算已死”(這讓筆者想起當(dāng)年關(guān)于“SOA已死”的論戰(zhàn))。炒作行為是可以理解的,我們自然不用去理會(huì)。但是,作為云計(jì)算用戶(hù),我們需要思考的是,如何保證即便在云服務(wù)不可用的情況,我們的應(yīng)用架構(gòu)仍然能夠屹立不倒?本文正是站在云計(jì)算用戶(hù)的角度試圖探討這一問(wèn)題。 “4- 21”事故分析 Amazon將其基礎(chǔ)設(shè)施劃分為“區(qū)域(Region)”,這些區(qū)域好比一個(gè)個(gè)數(shù)據(jù)中心。例如,US-East-1是Amazon位于北弗吉尼亞的數(shù)據(jù)中心,而US-West-1則是位于硅谷的數(shù)據(jù)中心。每個(gè)數(shù)據(jù)中心又被劃分成多個(gè)可用分區(qū)(后簡(jiǎn)稱(chēng)為AZ),AZ就好比資源池,它由一組物理和邏輯資源組成。 Amazon的提供的虛擬機(jī)是EC2(Elastic Compute Cloud)。而其存儲(chǔ)服務(wù)是EBS(Elastic Block Storage)。EBS是基于網(wǎng)絡(luò)高性能且高可用的塊(block)級(jí)別的持久化存儲(chǔ)服務(wù)。EBS可以?huà)旖拥侥骋粋(gè)EC2實(shí)例上作為其文件系統(tǒng)使用。 當(dāng)用戶(hù)獲得一個(gè)EC2分區(qū)實(shí)例時(shí),同時(shí)會(huì)得到一塊存儲(chǔ)區(qū)。不過(guò),該存取區(qū)是透明的,而且其生存周期與EC2實(shí)例是同步的。當(dāng)EC2實(shí)例銷(xiāo)毀時(shí),該存儲(chǔ)區(qū)也一同銷(xiāo)毀,基于此,需要持久化的用戶(hù)數(shù)據(jù)是不應(yīng)該放在該存儲(chǔ)上。 一般而言,運(yùn)行網(wǎng)站和產(chǎn)品的云計(jì)算用戶(hù)至少需要申請(qǐng)一個(gè)EC2實(shí)例和一個(gè)EBS存儲(chǔ)。在EC2上運(yùn)行應(yīng)用和數(shù)據(jù)庫(kù),而數(shù)據(jù)則存儲(chǔ)在EBS中。但是,若要將EBS存儲(chǔ)掛接到EC2實(shí)例上,二者必須在同一AZ中(如圖1.a所示)。用戶(hù)也可以直接使用Amazon提供的RDS(Relational Database Service),它是一個(gè)運(yùn)行著MySQL的EC2實(shí)例,此時(shí)應(yīng)用和數(shù)據(jù)就可分別位于不同的AZ中(如圖1.b所示)。當(dāng)然,將應(yīng)用和存儲(chǔ)分開(kāi)還有其他方法,本文不再贅述。 “4-21”事故中,位于US-East-1區(qū)域的EBS存儲(chǔ)和Amazon RDS服務(wù)都出現(xiàn)了問(wèn)題。表現(xiàn)出來(lái)的現(xiàn)象是:不在US-East-1區(qū)域的用戶(hù)未受影響,未使用EBS和RDS的用戶(hù)不受影響。一般情況下,使用EBS或RDS是非常普遍的現(xiàn)象,因?yàn)榇蠖鄶?shù)軟件或網(wǎng)站都依賴(lài)于數(shù)據(jù)存儲(chǔ),所以,即便運(yùn)行應(yīng)用的EC2未受影響,也會(huì)由于應(yīng)用需要訪問(wèn)已出現(xiàn)問(wèn)題的ESB或RDS上的數(shù)據(jù),仍然會(huì)導(dǎo)致服務(wù)不可用或服務(wù)變慢的問(wèn)題。 Amazon事故的的發(fā)生加速了人們對(duì)云可用性的思考,也進(jìn)一步凸顯了好的應(yīng)用架構(gòu)的優(yōu)勢(shì),多家企業(yè)紛紛通過(guò)博客分享了他們使用Amaozon AWS的經(jīng)驗(yàn),對(duì)云計(jì)算用戶(hù)端架構(gòu)的建議。接下來(lái),我們看看他們是怎么做的。 本文出自:億恩科技【www.itdijia.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |