隨著互聯(lián)網(wǎng)的興起,傳統(tǒng)的IT應(yīng)用架構(gòu)開始改變,從串行演變成以并行計算為主,與之匹配的服務(wù)器架構(gòu)也從垂直延展的大機器演變成服務(wù)器疊加集群。現(xiàn)有的分布式計算架構(gòu)技術(shù)的實現(xiàn)是通過軟件并行計算的支持,服務(wù)器平臺可以通過大量單機成本比大機器低得多的起步價,快速實現(xiàn)應(yīng)用上線,并在用戶量爆發(fā)時,通過服務(wù)器疊加方式實現(xiàn)擴容。
由于縱向拓展可優(yōu)化空間太小(單臺服務(wù)器的性能上限很明顯),分布式系統(tǒng)強調(diào)橫向擴展、橫向優(yōu)化,當(dāng)分布式集群計算資源不足時,就要往集群里面添加服務(wù)器,來不停地提升分布式集群的計算能力。
軟硬件成本知多少?
出于成本的考慮,很多大規(guī)模的分布式系統(tǒng)一般采用廉價的PC服務(wù)器,而不是大型的高性能服務(wù)器,但是問題隨之而來,等同能力的計算資源,分布式系統(tǒng)的成本一定會低很多嗎?
我們可以來做一道算術(shù)題,如果將一臺具有64GB內(nèi)存、8個CPU的機器升級為一臺擁有512GB內(nèi)存和32個CPU的服務(wù)器,這臺機器的總成本大約為10萬美金,這顯然是一次典型的Scale up升級。
而如果使用scale out的形式,使用大量廉價的服務(wù)器來組件系統(tǒng),這筆投資可以購買83臺1U服務(wù)器。同樣的投資,它們獲得的資源分別如下:
Scaling Up |
Scaling Out |
|
CPUs |
32 |
332 |
RAM |
512 GB |
664 GB |
Disk |
4 TB |
40.5 TB |
而如果加上微軟的商業(yè)授權(quán)軟件,成本大致如下:
Scaling Up |
Scaling Out |
|
OS |
$2310 |
$33200 |
SQL |
$8318 |
$49800 |
此外,電費消耗對比如下:
Scaling Up |
Scaling Out |
|
Peak Watts |
1200w |
16600w |
Power Cost / Year |
$1577 |
$21815 |
由此,我們可以從數(shù)字層面看到直觀的對比,scale up和scale out都是可選的方案。當(dāng)然,這涉及到用戶具體要解決的問題,你的資源(如資金,軟件)等情況。這樣看來,只有在使用開源軟件時,scale out才有較為明顯的優(yōu)勢,因為scale out意味著較少的硬件投入,以及較高的軟件授權(quán)成本。
開源就能解決成本問題?
開源并不等于免費,為83臺服務(wù)器配備一個系統(tǒng)運維人員的工作,一年的費用基本上可以購買一臺性能足夠強大的服務(wù)器了,而其它的硬件投入,比如負載均衡、網(wǎng)絡(luò)等的投入,還有數(shù)據(jù)中心的費用,7U的服務(wù)器雖不便宜,但比83個1U服務(wù)器要便宜多了。
說到這里不能不提到這幾年大力推廣去IOE的阿里,阿里在用開源替代IOE的進程中,差不多花了三年的時間。回首這幾年的工作,按照阿里自己的總結(jié)來看,開源只是解決了入水時候的零成本問題,而后期在駕馭它的時候你必須面臨很高的運維以及發(fā)展的成本。
并且,在這一過程中,阿里的相關(guān)技術(shù)人員因IT技能的需求不同,也出現(xiàn)了較大的調(diào)整,比如從注重Oracle DBA人才調(diào)整為MySQL或其他開源數(shù)據(jù)庫DBA人才,機房維護的規(guī)模也大大提高。
很多人都覺得采用開源的基于x86的分布式計算可以節(jié)省很多成本,至少從普適的采購價格上看,這一點也許成立的,但這是建立在你有完備的技術(shù)人才儲備的基礎(chǔ)上,否則為了使用開源,你可能要額外的招聘相關(guān)領(lǐng)域的人才,從而可能讓最后使用的成本核算看上去并不如預(yù)期。
因此,如果企業(yè)采用開源的分布式系統(tǒng),需要很強的技術(shù)團隊才能Hold住,如果你沒有做好準(zhǔn)備,必須慎之又慎——采用開源技術(shù)是否對自己的業(yè)務(wù)有利,自己當(dāng)前的人才與技能儲備是否可以有效支撐起這項工程?尤其是系統(tǒng)規(guī)模越大,涉及的業(yè)務(wù)越多的時候。