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