虛擬服務(wù)器和云都是對硬件的抽象,兩者都有很多好處和使用的理由,但它們同時也有各自的陰暗面,只不過鮮有人提及罷了,多年來人們一直稱贊云和虛擬服務(wù)器的優(yōu)點,我覺得這是不公平的,因此我決定寫下這篇文章以激起大家的討論,因為此前寫過NoSQL的陰暗面,也許有人會質(zhì)疑我是否是偏執(zhí)狂,我才不管這些,隨別人怎么說。
虛擬服務(wù)器
虛擬化是一種趨勢,它離不開虛擬機,虛擬機是運行在硬件抽象層上的一種軟件,使用虛擬機有以下好處:
◇安裝簡單、快速
◇更好的資源利用率
◇可以在相同硬件上安裝更多服務(wù)器
◇更容易提供24/7服務(wù)
◇無停機遷移到新硬件等
但虛擬機也有其陰暗面,如成本和性能,我不止一次看到,人們總是喜歡將各種應(yīng)用一股腦全部放到虛擬機上,但虛擬機還不能達到和本地運行一樣的效果,特別是I/O密集型服務(wù)器運行起來更慢,根據(jù)我以往的經(jīng)驗,在Xen虛擬機上運行高流量應(yīng)用程序時要比本地運行慢20%左右,因此要想在虛擬機上實現(xiàn)相同的性能,你必須增加更多的硬件,這就意味著成本會上升。此外,如果不使用開源的程序,那要為專有軟件支付昂貴的許可費。市場營銷人員一般會聲稱虛擬化服務(wù)器對性能沒有影響,這純粹是扯淡,例如,Riak服務(wù)器配置描述是這樣寫的:
“和大多數(shù)數(shù)據(jù)存儲一樣,Riak在不虛擬化時表現(xiàn)得更好,虛擬機(VM)可能會引起I/O和網(wǎng)絡(luò)性能下降,這取決于它們是如何配置,以及它們運行的環(huán)境。”
也有一些管理員認為可以在固定不變的硬件資源上增加更多的虛擬機,我不止一次看到有人這么干,他們的理由很簡單:綠色和降低用電量,但用戶對系統(tǒng)性能的抱怨卻越來越多,虛擬機越多,給每個虛擬機分配的資源就會越少,勢必會影響到其它虛擬機的性能,但如果虛擬機本身對資源的需求不高,則可以考慮將這些虛擬機整合到一臺物理機上,此外,有些虛擬機是白天工作負載高,有些虛擬機是夜間工作負載高,也可以將它們組合到一起,但虛擬機不是減少硬件成本的靈丹妙藥,你需要平衡虛擬服務(wù)器和成本的好處,永遠不要讓虛擬機超過物理硬件本身的承受能力。
云
每個人似乎都想轉(zhuǎn)移到云上,Reddit就是一個例子:
“上周我們讓最后一臺物理服務(wù)器退役了,從現(xiàn)在起,Reddit整站全部運行在云上,我們使用的是AmazonWebServices,如果一切順利的話,你應(yīng)該沒有感到任何變化,如果你愿意,我們可以為你提供一些咨詢和幫助。”
在Reddit上還有一些更深入的討論,其中提到了一些具體的數(shù)字:
“218個虛擬CPU,380GB內(nèi)存
9TB塊存儲
2TBS3存儲
6.5TB數(shù)據(jù)輸出/月
2TB數(shù)據(jù)存儲/月”
也有談到成本的:
“現(xiàn)在大約是$15K/月”
以及:
“是的,它降低了約30%的成本,隨著價格的降低,應(yīng)該會變得更便宜。”
這使我很好奇,幾乎和為云計算大唱贊歌的人口氣一樣,但云計算的陰暗面之一就是成本,對大多數(shù)用戶而言,云計算更貴。
因此我想和云比較一下,這里就使用AmazonEC2作為目標,它的i7機器每月的費用是95或120美元,一位評論家估計i7可以分成12-15個計算單元(CU),作如下對比:
◇EQ6,i7-920,12CU,12GB,5TB流量,$95/月,安裝費$200
◇EQ8,i7-920,12CU,24GB,5TB流量,$120/月,安裝費$200
◇L,4CU,7.5GB,4TBOUT,1TB
◇XL,8CU,15GB,4TBOUT,1TB
在成本比較方面,我計算了三種模式:5服務(wù)器,100%的利用率;5服務(wù)器,按需使用;15服務(wù)器,按需使用,有一個短的高峰期。
[page]
5個應(yīng)用程序服務(wù)器示例
模式0
5個應(yīng)用程序服務(wù)器,在EC2上的利用率100%
模式1
5個應(yīng)用程序服務(wù)器,根據(jù)我的經(jīng)驗,你可以從某處啟動
為5小時高峰分配5,10小時分配2,9小時分配1,則:
◇2服務(wù)器42%
◇1服務(wù)器100%
◇2服務(wù)器21%
圖1 5服務(wù)器云和5服務(wù)器租用的對比
16個應(yīng)用程序服務(wù)器示例
第三個模式(模式2)為1小時峰值(5%)增加了10個服務(wù)器:
圖2 15服務(wù)器云(加1小時峰值)和15服務(wù)器租用100%利用率的對比
比較所有價格后,我們得出(不考慮負載均衡器,無存儲,不同的支付模式):
圖3 服務(wù)器租用和EC2云成本比較
從上圖可以看出,如果你的服務(wù)器使用率達到了100%,EC2比租用服務(wù)器(模式0)要貴2到3.3倍,另外再看CU,EC2實例沒有租用硬件的計算能力強,因此需要更多的EC2實例。如果你運行一個多元化的配置(模式1),成本要高出1.75到2.6倍,但比較結(jié)果也顯示(模式2),如果你有極端高峰期(500%的正常運作,15:3服務(wù)器),增加10個服務(wù)器只會讓你每年多付1400美元,相比之下,L版本比租用15個服務(wù)器更便宜,但它的容量比XL配置要小得多,價格也只便宜約3%左右(但更靈活),如果你有更多的極端模型,在云中運行明顯比租用服務(wù)器更劃算,也許你需要的人少了,因此TCO也降下來了,你需要考慮數(shù)據(jù)庫服務(wù)器,負載均衡器和其它服務(wù)要保持24小時運行,因此1個服務(wù)器是不能滿足24小服務(wù)要求的,同樣,當你運行一個全球企業(yè)時,你的服務(wù)應(yīng)該要24小時時刻保持可訪問(有些人認為,如果購買服務(wù)器并部署在一起可能是最便宜的選擇,但前期費用會很高)。
如果你的企業(yè)成長很快,一年內(nèi)服務(wù)器數(shù)量從5到10,再到50臺,如果你的業(yè)務(wù)運行在云中,要增加容量就很容易了,如果是租用服務(wù)器則要面臨諸多挑戰(zhàn),大多數(shù)供應(yīng)商都需要幾天時間來新增硬件,并且會影響到你的業(yè)務(wù)計劃。
也許JoelYork說得對,他曾寫下這樣的話:
“讓我們面對現(xiàn)實吧,CIO不應(yīng)該去競爭節(jié)約大獎,CIO只有提供比競爭對手更好更快的服務(wù),才能贏得公司、同事和用戶群的好評,節(jié)約成本是好事,但這并不是推動云計算的唯一驅(qū)動力。”
小結(jié)
許多公司認為云是它們的未來,但不要欺騙自己,虛擬化和云不是靈丹妙藥,如果你不需要它,就不要買它,不要看到一顆樹就買下整片森林。
如果你對此有不同的看法或見解,或是對Reddit節(jié)省30%的效果有額外的計算方法或解釋,歡迎你發(fā)表評論。