大約一年前,聯(lián)通范總寫了一篇《我所知道的云計算》,對云計算的各種新技術(shù)和理念進行了深入淺出地解讀。
這一年來,云計算發(fā)展得風起云涌,有了很多變化。經(jīng)過最近一段時間的全面學習和思考,我也手癢寫一篇自己的理解。其中很多觀點比較極端,算是拋磚引玉,給大家立個靶子。
要說的核心是:世上本沒有云,說的人多了,云山霧繞,人云亦云,于是云計算就成了趨勢。
硬件的演變大家已經(jīng)習慣,用軟件和硬件,來對計算機的構(gòu)成部分進行區(qū)分。
籠統(tǒng)來說,硬件是為計算機系統(tǒng)提供的物理平臺,軟件則是在硬件平臺上,呈現(xiàn)出各種各樣的功能。二者既有分工又協(xié)同發(fā)展,構(gòu)成了紛繁復(fù)雜的計算機世界。
我還記得,大學時在51單片機上做開發(fā),相對于BASIC和FORTRAN,C語言是當時最先進的編程語言。技術(shù)高手用匯編語言來做開發(fā),雖然掌握起來難度大,但操作的對象是寄存器或存儲器,因此執(zhí)行速度特別快。
那個時候,硬件資源稀缺而昂貴,如果能節(jié)約幾行代碼,少幾分資源損耗,都能直接體現(xiàn)巨大的價值。
之后的發(fā)展,主要是由硬件廠商驅(qū)動,但發(fā)展的模式卻恰恰是通過發(fā)展軟件,來提升硬件的競爭力。
一方面,操作系統(tǒng)的發(fā)展,在降低軟件開發(fā)門檻的同時,使系統(tǒng)軟件和硬件緊緊捆綁在了一起;另一方面,硬件廠商也利用平臺的主導(dǎo)地位,打造出適合于不同類型應(yīng)用的硬件平臺。
比如銀行業(yè)廣泛采用的大型機、容錯機,就是提供了一個穩(wěn)定可靠的運算平臺,雖然很貴而且資源冗余,但是穩(wěn)定性可靠性堪稱完美;再比如NCR的數(shù)據(jù)倉庫解決方案,也是軟硬件一體的,在數(shù)據(jù)分析方面表現(xiàn)出眾。
各種計算機硬件都有相對的應(yīng)用場景,尤其在上個世紀中后期,各類硬件平臺不斷進步,體積越來越小,容量越來越大,集成度越來越高,性能越來越強大。
當然,由于UNIX小型機在開放性、穩(wěn)定性以及成本等方面的綜合性能最佳,因此成為應(yīng)用范圍最廣的計算機系統(tǒng)的硬件平臺。而PC服務(wù)器雖然成本低,但因為穩(wěn)定性差、故障率高、性能低等缺點,很難進入企業(yè)和大規(guī)模計算領(lǐng)域。
在這個過程中,發(fā)展動力主要來自兩個方面:
一是摩爾定律,集成電路的突飛猛進,推動了硬件平臺的發(fā)展,各類服務(wù)器都不斷推陳出新,幾乎每年都會推出性能更好、價格更低的新產(chǎn)品;
二是IT系統(tǒng)初建的浪潮,各單位都在發(fā)展IT,用計算機系統(tǒng)取代手工作業(yè),從無到有紛紛建起來的IT系統(tǒng),可謂百花齊放。由于各類應(yīng)用存在差異,穩(wěn)定性、安全性、業(yè)務(wù)連續(xù)性等方面的要求都各不相同,所以各種硬件都有非常好的市場空間。
說到這里,我還想到一個插曲:早些年,有人說美國為代表的海外IT系統(tǒng),用的都是幾十年不變的硬件和軟件,表現(xiàn)同樣很穩(wěn)定;而國內(nèi)總買最好、最先進的硬件設(shè)備,這不是亂花錢么?
在我理解,兩者只是IT的發(fā)展階段不同:國內(nèi)IT企業(yè)發(fā)展快速,尤其是用戶規(guī)模和系統(tǒng)復(fù)雜度遠超海外運營商,所以用最新最好的服務(wù)器并沒有錯。而海外的IT初創(chuàng)階段比國內(nèi)早得多,如果系統(tǒng)能力滿足,需求變化不大、變更成本又高,確實沒有必要頻繁更新設(shè)備。
所以,當美國互聯(lián)網(wǎng)再度興起,就對IT提出了新的需求,為云計算等一系列新科技的生長提供了土壤。
互聯(lián)網(wǎng)是在通信和計算機網(wǎng)絡(luò)的基礎(chǔ)上成長發(fā)展起來的,而互聯(lián)網(wǎng)的發(fā)展又給通信和計算機領(lǐng)域帶來了機遇和挑戰(zhàn)。
一個典型的例子,就是相對于傳統(tǒng)的計算機系統(tǒng),互聯(lián)網(wǎng)需要更大規(guī)模的運算能力的同時,還希望盡可能地降低成本,所以X86服務(wù)器大行其道。
單機性能低,怎么辦?靠軟件堆。硬件不穩(wěn)定,怎么辦?靠軟件來補。需求變化快,怎么辦?靠軟件改。云計算領(lǐng)域的諸多技術(shù),就是這么被逼出來的。
互聯(lián)網(wǎng)的初創(chuàng)企業(yè)都是省錢的高手,恨不得一分錢掰成兩半花,因此鐘愛于性價比最低的IT平臺,上一輪次的受益者是SUN。而今,X86服務(wù)器逐漸成為新一代互聯(lián)網(wǎng)公司的標配,一家沒有那么多銀子買機器,就以互聯(lián)網(wǎng)的共享模式,根據(jù)實際需要租用計算能力和存儲資源,這也正是催生云計算出現(xiàn)的源動力。
與此同時,“省錢”促成了開源技術(shù)的繁榮。從技術(shù)角度看,開放源代碼,通過社區(qū)交流逐步完善,這些都是非常符合互聯(lián)網(wǎng)發(fā)展思路的行為;但從商業(yè)角度看,免費的開源軟件嚴重影響傳統(tǒng)IT企業(yè)的經(jīng)濟效益,也抑制了傳統(tǒng)IT企業(yè)的創(chuàng)新動力,讓傳統(tǒng)IT產(chǎn)業(yè)雪上加霜。
在諸多硬件流派中,X86擁有的成本優(yōu)勢無人能及,自然成為云計算技術(shù)的重點發(fā)展領(lǐng)域,互聯(lián)網(wǎng)飛速發(fā)展產(chǎn)生的推動力,主要給了X86平臺;而其他硬件由于規(guī)模大、成本高,變化空間有限,并沒有多少互聯(lián)網(wǎng)企業(yè)愿意在這上面做創(chuàng)新。
幾年時間下來,大型機依靠安全穩(wěn)定方面的優(yōu)勢堅守傳統(tǒng)地盤,一部分小型機與軟件深度整合發(fā)展為一體機,而更多的硬件廠商放棄了自身的發(fā)展計劃。
未來的IT系統(tǒng),尤其是新建系統(tǒng)新建能力,只能在一片片的X86服務(wù)器的基礎(chǔ)上成長。對于絕大多數(shù)應(yīng)用場景來說,將來除了X86,或許不再會有別的硬件平臺可供使用。
云計算技術(shù)基于同樣的X86服務(wù)器,各家的玩法不同,催生出了不同的云計算技術(shù)。
最為大眾熟悉和接受的,是虛擬化技術(shù)。所謂虛擬化,主要是將龐大的、完整的硬件資源(包括計算、存儲等)分割成為較小的單元,并具備動態(tài)調(diào)整小單元的能力,如果虛擬化用得好,就可以靈活分配和及時調(diào)度計算存儲資源,提高資源利用效率。
值得一提的是:虛擬化技術(shù)并不為X86所獨有。事實上,在小型機上部署虛擬化軟件,是目前IT系統(tǒng)經(jīng)常采用的模式。
這是因為,單臺小型機擁有的資源比X86多得多,因此在資源利用率提升方面,在小型機上部署虛擬化,往往比在X86上部署效果更好,甚至比X86具有成本優(yōu)勢。
比如運營商現(xiàn)在的系統(tǒng),就是以小型機為主體,很多小的應(yīng)用都跑在小型機的虛擬化軟件上。
只不過,未來系統(tǒng)以X86為主體,就不再需要在小型機上部署虛擬化軟件,更多的虛擬化場景都會轉(zhuǎn)移到X86上來搞。所以,小型機的虛擬化場景會越來越少,剩下的小型機將主要是滿足大的計算需求。這也就是說,傳統(tǒng)小型機逐漸萎縮、退出,只是時間問題。
虛擬化技術(shù)是將大資源劃小,那么,如何將小的資源,組合成大規(guī)模運算的平臺呢?這就需要另一類云計算技術(shù):分布式運算。
為什么說這是一類技術(shù)?雖然各家需求不一樣,應(yīng)用場景不同,采用的技術(shù)和策略也大相徑庭,常規(guī)的網(wǎng)格計算、集群,以及很多互聯(lián)網(wǎng)企業(yè)的專用技術(shù),看似五花八門,其實萬變不離其宗,解決的問題,都是如何將小的計算資源,組合成為大規(guī)模運算平臺。
雖然目前虛擬化+X86的模式應(yīng)用最廣,但并非所有的云計算都基于虛擬化技術(shù)。其中最典型的就是Google。
作為提供搜索服務(wù)的互聯(lián)網(wǎng)企業(yè),谷歌需要解決的問題完全用不到虛擬化技術(shù),相反,部署虛擬化軟件將降低系統(tǒng)運行效率,增加成本。
因此,Google基于自己的需要進行定制化開發(fā),先是做出企業(yè)自用的Map/Reduce和NDFS,又在此基礎(chǔ)之上形成了經(jīng)典的Hadoop平臺,由“自研”到“自用”再到“產(chǎn)品化”,令人欽佩。
在此基礎(chǔ)上,谷歌持續(xù)創(chuàng)新,乃至引發(fā)了“容器”技術(shù)革命以及Kubernetes的狂飆突進,這是后話,暫且不表。
前面提到,受互聯(lián)網(wǎng)帶來的沖擊,傳統(tǒng)硬件平臺的衰退勢不可當。但使用低成本的X86和免費的開源軟件做出來的系統(tǒng),在安全性、穩(wěn)定性、資源調(diào)度與管理、系統(tǒng)開發(fā)復(fù)雜性等方面,就需要做更多的工作,必須通過各種工具軟件和配套的管理來解決。于是,很多新技術(shù)應(yīng)運而生。