大約一年前,聯(lián)通范總寫了一篇《我所知道的云計算》,對云計算的各種新技術(shù)和理念進(jìn)行了深入淺出地解讀。
這一年來,云計算發(fā)展得風(fēng)起云涌,有了很多變化。經(jīng)過最近一段時間的全面學(xué)習(xí)和思考,我也手癢寫一篇自己的理解。其中很多觀點比較極端,算是拋磚引玉,給大家立個靶子。
要說的核心是:世上本沒有云,說的人多了,云山霧繞,人云亦云,于是云計算就成了趨勢。
硬件的演變
大家已經(jīng)習(xí)慣,用軟件和硬件,來對計算機(jī)的構(gòu)成部分進(jìn)行區(qū)分。
籠統(tǒng)來說,硬件是為計算機(jī)系統(tǒng)提供的物理平臺,軟件則是在硬件平臺上,呈現(xiàn)出各種各樣的功能。二者既有分工又協(xié)同發(fā)展,構(gòu)成了紛繁復(fù)雜的計算機(jī)世界。
我還記得,大學(xué)時在51單片機(jī)上做開發(fā),相對于BASIC和FORTRAN,C語言是當(dāng)時最先進(jìn)的編程語言。技術(shù)高手用匯編語言來做開發(fā),雖然掌握起來難度大,但操作的對象是寄存器或存儲器,因此執(zhí)行速度特別快。
那個時候,硬件資源稀缺而昂貴,如果能節(jié)約幾行代碼,少幾分資源損耗,都能直接體現(xiàn)巨大的價值。
之后的發(fā)展,主要是由硬件廠商驅(qū)動,但發(fā)展的模式卻恰恰是通過發(fā)展軟件,來提升硬件的競爭力。
一方面,操作系統(tǒng)的發(fā)展,在降低軟件開發(fā)門檻的同時,使系統(tǒng)軟件和硬件緊緊捆綁在了一起;另一方面,硬件廠商也利用平臺的主導(dǎo)地位,打造出適合于不同類型應(yīng)用的硬件平臺。
比如銀行業(yè)廣泛采用的大型機(jī)、容錯機(jī),就是提供了一個穩(wěn)定可靠的運算平臺,雖然很貴而且資源冗余,但是穩(wěn)定性可靠性堪稱完美;再比如NCR的數(shù)據(jù)倉庫解決方案,也是軟硬件一體的,在數(shù)據(jù)分析方面表現(xiàn)出眾。
各種計算機(jī)硬件都有相對的應(yīng)用場景,尤其在上個世紀(jì)中后期,各類硬件平臺不斷進(jìn)步,體積越來越小,容量越來越大,集成度越來越高,性能越來越強(qiáng)大。
當(dāng)然,由于UNIX小型機(jī)在開放性、穩(wěn)定性以及成本等方面的綜合性能最佳,因此成為應(yīng)用范圍最廣的計算機(jī)系統(tǒng)的硬件平臺。而PC服務(wù)器雖然成本低,但因為穩(wěn)定性差、故障率高、性能低等缺點,很難進(jìn)入企業(yè)和大規(guī)模計算領(lǐng)域。
在這個過程中,發(fā)展動力主要來自兩個方面:
一是摩爾定律,集成電路的突飛猛進(jìn),推動了硬件平臺的發(fā)展,各類服務(wù)器都不斷推陳出新,幾乎每年都會推出性能更好、價格更低的新產(chǎn)品;
二是IT系統(tǒng)初建的浪潮,各單位都在發(fā)展IT,用計算機(jī)系統(tǒng)取代手工作業(yè),從無到有紛紛建起來的IT系統(tǒng),可謂百花齊放。由于各類應(yīng)用存在差異,穩(wěn)定性、安全性、業(yè)務(wù)連續(xù)性等方面的要求都各不相同,所以各種硬件都有非常好的市場空間。
說到這里,我還想到一個插曲:早些年,有人說美國為代表的海外IT系統(tǒng),用的都是幾十年不變的硬件和軟件,表現(xiàn)同樣很穩(wěn)定;而國內(nèi)總買最好、最先進(jìn)的硬件設(shè)備,這不是亂花錢么?
在我理解,兩者只是IT的發(fā)展階段不同:國內(nèi)IT企業(yè)發(fā)展快速,尤其是用戶規(guī)模和系統(tǒng)復(fù)雜度遠(yuǎn)超海外運營商,所以用最新最好的服務(wù)器并沒有錯。而海外的IT初創(chuàng)階段比國內(nèi)早得多,如果系統(tǒng)能力滿足,需求變化不大、變更成本又高,確實沒有必要頻繁更新設(shè)備。
所以,當(dāng)美國互聯(lián)網(wǎng)再度興起,就對IT提出了新的需求,為云計算等一系列新科技的生長提供了土壤。
互聯(lián)網(wǎng)是在通信和計算機(jī)網(wǎng)絡(luò)的基礎(chǔ)上成長發(fā)展起來的,而互聯(lián)網(wǎng)的發(fā)展又給通信和計算機(jī)領(lǐng)域帶來了機(jī)遇和挑戰(zhàn)。
一個典型的例子,就是相對于傳統(tǒng)的計算機(jī)系統(tǒng),互聯(lián)網(wǎng)需要更大規(guī)模的運算能力的同時,還希望盡可能地降低成本,所以X86服務(wù)器大行其道。
單機(jī)性能低,怎么辦?靠軟件堆。硬件不穩(wěn)定,怎么辦?靠軟件來補(bǔ)。需求變化快,怎么辦?靠軟件改。云計算領(lǐng)域的諸多技術(shù),就是這么被逼出來的。
互聯(lián)網(wǎng)的初創(chuàng)企業(yè)都是省錢的高手,恨不得一分錢掰成兩半花,因此鐘愛于性價比最低的IT平臺,上一輪次的受益者是SUN。而今,X86服務(wù)器逐漸成為新一代互聯(lián)網(wǎng)公司的標(biāo)配,一家沒有那么多銀子買機(jī)器,就以互聯(lián)網(wǎng)的共享模式,根據(jù)實際需要租用計算能力和存儲資源,這也正是催生云計算出現(xiàn)的源動力。
與此同時,"省錢"促成了開源技術(shù)的繁榮。從技術(shù)角度看,開放源代碼,通過社區(qū)交流逐步完善,這些都是非常符合互聯(lián)網(wǎng)發(fā)展思路的行為;但從商業(yè)角度看,免費的開源軟件嚴(yán)重影響傳統(tǒng)IT企業(yè)的經(jīng)濟(jì)效益,也抑制了傳統(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)新。
幾年時間下來,大型機(jī)依靠安全穩(wěn)定方面的優(yōu)勢堅守傳統(tǒng)地盤,一部分小型機(jī)與軟件深度整合發(fā)展為一體機(jī),而更多的硬件廠商放棄了自身的發(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所獨有。事實上,在小型機(jī)上部署虛擬化軟件,是目前IT系統(tǒng)經(jīng)常采用的模式。
這是因為,單臺小型機(jī)擁有的資源比X86多得多,因此在資源利用率提升方面,在小型機(jī)上部署虛擬化,往往比在X86上部署效果更好,甚至比X86具有成本優(yōu)勢。
比如運營商現(xiàn)在的系統(tǒng),就是以小型機(jī)為主體,很多小的應(yīng)用都跑在小型機(jī)的虛擬化軟件上。
只不過,未來系統(tǒng)以X86為主體,就不再需要在小型機(jī)上部署虛擬化軟件,更多的虛擬化場景都會轉(zhuǎn)移到X86上來搞。所以,小型機(jī)的虛擬化場景會越來越少,剩下的小型機(jī)將主要是滿足大的計算需求。這也就是說,傳統(tǒng)小型機(jī)逐漸萎縮、退出,只是時間問題。
虛擬化技術(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基于自己的需要進(jìn)行定制化開發(fā),先是做出企業(yè)自用的Map/Reduce和NDFS,又在此基礎(chǔ)之上形成了經(jīng)典的Hadoop平臺,由"自研"到"自用"再到"產(chǎn)品化",令人欽佩。
在此基礎(chǔ)上,谷歌持續(xù)創(chuàng)新,乃至引發(fā)了"容器"技術(shù)革命以及Kubernetes的狂飆突進(jìn),這是后話,暫且不表。
前面提到,受互聯(lián)網(wǎng)帶來的沖擊,傳統(tǒng)硬件平臺的衰退勢不可當(dāng)。但使用低成本的X86和免費的開源軟件做出來的系統(tǒng),在安全性、穩(wěn)定性、資源調(diào)度與管理、系統(tǒng)開發(fā)復(fù)雜性等方面,就需要做更多的工作,必須通過各種工具軟件和配套的管理來解決。于是,很多新技術(shù)應(yīng)運而生。
比如OpenStack。
OpenStack也是開源產(chǎn)品,設(shè)計和建設(shè)的目標(biāo)是為云計算提供實施簡單、可大規(guī)模擴(kuò)展、豐富、標(biāo)準(zhǔn)統(tǒng)一的管理平臺。它由NASA發(fā)起,又有眾多行業(yè)大佬支持,在這一領(lǐng)域穩(wěn)居霸主地位。
最初,OpenStack只是虛擬機(jī)的管理工具,但如今,它管理的范圍已經(jīng)擴(kuò)展到網(wǎng)絡(luò)、虛擬化、操作系統(tǒng)、服務(wù)器等各個方面,漸有一統(tǒng)天下之勢。
當(dāng)老大需要擔(dān)當(dāng)。互聯(lián)網(wǎng)時代軟件技術(shù)發(fā)展非常迅速,幾個技術(shù)高手聚在一起,針對某種特殊場景,就可能開發(fā)出一套新系統(tǒng),進(jìn)而演變成為新技術(shù)新產(chǎn)品。作為綜合的全面的管理平臺,如果想要承載所有云計算產(chǎn)品,OpenStack就必須有強(qiáng)大的兼容性,支持各種技術(shù)、產(chǎn)品和平臺的管理。
同樣是開源模式,容器技術(shù)的目標(biāo),是構(gòu)建更加高效的運行環(huán)境。而提供標(biāo)準(zhǔn)化手段,可以讓用戶自由組裝相對獨立的運行環(huán)境。雖然目前容器的眾多流派的廝殺還沒有塵埃落定,但對于開發(fā)者來說,容器技術(shù)的巨大誘惑,已經(jīng)讓它在很短的時間里收獲了大批擁躉,在一些領(lǐng)域獲得了非常好的效果。
OpenStack必須支持容器技術(shù),然而如何與容器技術(shù)共生雙贏,需要把握好平衡:容器的優(yōu)勢就在于高效,如果因為管理平臺的存在,降低了計算效率,那就失去了意義;而如果不能接入綜合性的管理平臺,用戶心有顧忌,也可能導(dǎo)致容器技術(shù)的發(fā)展空間受限。
畢竟,容器技術(shù)和許多小眾類的IT技術(shù)類似,主要是針對性解決某些特殊場景,并非包打天下的靈丹妙藥。
前面點過名的Kubernetes,也是隨著容器技術(shù)一起熱起來的。它是Google大規(guī)模容器管理技術(shù)Borg(一個更強(qiáng)大的技術(shù))的開源版本,提供容器化應(yīng)用的部署、維護(hù),甚至可以管理跨機(jī)器運行的容器化應(yīng)用,與容器技術(shù)的匹配度更高。
從某種角度來說,Kubernetes和OpenStack是競爭關(guān)系,兩個平臺有很多重疊的功能;但在我看來,如果根據(jù)整體系統(tǒng)實現(xiàn)目標(biāo),將功能分解到不同的平臺來承載,在一個系統(tǒng)里依然能夠做到兩個平臺共存,使其各自發(fā)揮出自己的優(yōu)勢。
云計算服務(wù)
另一股推進(jìn)云計算發(fā)展的力量,是云計算服務(wù)。這一邊的龍頭企業(yè)是亞馬遜,它提供的云服務(wù),真正將云計算的理念轉(zhuǎn)化成了實踐。
看看美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)的定義:云計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問,進(jìn)入可配置的計算資源共享池(包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用軟件以及服務(wù)),這些資源能夠被快速提供。
從根本上來說,云計算是一種服務(wù),是一種商業(yè)模式,而云計算技術(shù)只是實現(xiàn)云計算的手段。很多情況下我們談的云計算,都本末倒置了。
國內(nèi)人士對IT有很多根深蒂固的誤解和錯覺,比如愿意投資在硬件上,而不認(rèn)可軟件的價值;再比如愿意為開發(fā)商支付勞務(wù)費,而意識不到穩(wěn)定的產(chǎn)品化軟件價值。因此,談到云計算服務(wù)時,往往是葉公好龍,說一套做一套。
多年前,有一家軟件公司試圖采用這種模式,用戶并非購買軟件,而是以租用方式擁有對軟件的使用權(quán);如果在租用期間軟件升級,用戶使用新軟件而不必增加費用;而等租期一到,用戶也就不能再繼續(xù)使用,這家公司叫SAS。
可惜,雖然在它技術(shù)方面有優(yōu)勢,而且分析類應(yīng)用也適合于這種商業(yè)模式,但當(dāng)時國內(nèi)絕大部分客戶都不認(rèn)可,所以SAS最終碰了一鼻子灰,鎩羽而歸。
如今,科技發(fā)達(dá)了,中國與世界接軌的程度也今非昔比,當(dāng)海外云計算浪潮興起的時候,國內(nèi)各種各樣的云公司也如雨后春筍般出現(xiàn),再加上開源技術(shù)門檻不高,成本又低,互聯(lián)網(wǎng)媒體也不斷傳播放大,一時間,云計算市場好戲連臺,熱鬧得緊,不說做云都不好意思在IT圈混了。
但仔細(xì)看下來,很多所謂的云服務(wù)提供商只是新瓶裝舊酒:做IDC的說自己提供的是IaaS,做應(yīng)用軟件的搖身一變,就說自己提供的就是SaaS服務(wù)。
反正國內(nèi)大多數(shù)人也不知道真正的云計算是什么,先用概念和低價,把市場搶下來再說。
雖然它們對客戶說,提供標(biāo)準(zhǔn)化的云服務(wù),但其實還是像傳統(tǒng)IT里的操作系統(tǒng)(尤其是大型機(jī))一樣,只要用戶被綁定,再要進(jìn)行系統(tǒng)移植、升級和搬遷,就不一定客戶說了算啦。
這是當(dāng)前國內(nèi)很多云服務(wù)供應(yīng)商的基本套路。
當(dāng)然,從積極的角度看,云計算為開發(fā)者提供了價廉物美的基礎(chǔ)設(shè)施,能夠大幅降低IT系統(tǒng)的建設(shè)成本,推動IT發(fā)展。
而客觀來講,目前國內(nèi)的IT還處于初級階段,有非常大的提升空間,所以即使不是標(biāo)準(zhǔn)、完整、最佳的云計算,也會對IT水平的提高有強(qiáng)大的推動作用。
更為關(guān)鍵的是:伴隨云計算傳播的"服務(wù)"理念,以及分工協(xié)作意識,對IT的成長發(fā)展有很大意義。
傳統(tǒng)IT以產(chǎn)品為中心,成本高,技術(shù)門檻高,需要大批高精尖的技術(shù)人才,經(jīng)歷很長時間才能搞定。而云計算的出現(xiàn)和發(fā)展,使IT的分工更加合理,高端人才可以專注打造越來越便利、高效、廉價、可管可控的平臺;而大量的應(yīng)用以及越來越快的變化,則可以交給數(shù)量多、水平一般的人員來負(fù)責(zé)。
結(jié)語
說云計算是趨勢,并不是它有多么完美,而是作為客戶的你,沒有其他選擇。
未來的IT世界里,云計算服務(wù)以及云計算技術(shù)將占據(jù)越來越大的比重,尤其對于新興的、變化的、成長的領(lǐng)域,可能看不到傳統(tǒng)IT的身影了。
就IT系統(tǒng)來說,并沒有絕對的先進(jìn)性,或者說,技術(shù)的先進(jìn)性并不是最核心要解決的問題。IT系統(tǒng)要解決什么樣的問題,實現(xiàn)什么樣的場景,配合什么樣的技術(shù)和平臺,軟件硬件與需求的和諧匹配才是最佳選擇。
就像運營商的支撐系統(tǒng),以前的運行環(huán)境是小型機(jī),并非不可繼續(xù)用。但如今所有供應(yīng)商都已經(jīng)不再開展下一代小型機(jī)的技術(shù)研發(fā),如果不及時將應(yīng)用系統(tǒng)調(diào)整到X86平臺上,等幾年之后,你的軟件要跑在什么硬件上?