漫談雲計算與OpenStack的前世今生

如今,大家天天聽到媒體說雲計算、OpenStack,它們到底是什麼呢?

雲計算(Cloud Computing):一種基於因特網的超級計算模式,在遠程的數據中心裡,成千上萬臺電腦和服務器連接成一片電腦雲。因此,雲計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這麼強大的計算能力可以模擬核爆炸、預測氣候變化和市場發展趨勢。用戶通過電腦、筆記本、手機等方式接入數據中心,按自己的需求進行運算。

漫談雲計算與OpenStack的前世今生

也可以這樣理解:雲計算(Cloud Computing)是網格計算(Grid Computing)、分佈式計算(DistributedComputing)、並行計算(ParallelComputing)、效用計算(UtilityComputing) 、網絡存儲(Network Storage Technologies)、虛擬化(Virtualization) 、負載均衡(Load Balanc)等傳統計算機技術和網絡技術發展融合的產物。

個人理解:把一堆功能小的設備,整合成一大個功能強大設備,再把這個強大的設備劃分成小設備,然後按你的需要賣給你。

雲計算類型:公用雲(Public Cloud)、私有云(Private Cloud)、混合雲(Hybrid Cloud)。

雲計算解決方案:啟迪雲、VMware vSphere、微軟雲計算解決方案、亞馬遜AWS、OpenStack等等。

雲計算的服務形式

IaaS(Infrastructure-as-a- Service):基礎設施即服務。消費者通過Internet可以從完善的計算機基礎設施獲得服務。

PaaS(Platform-as-a- Service):平臺即服務。PaaS實際上是指將軟件研發的平臺作為一種服務,以SaaS的模式提交給用戶。

SaaS(Software-as-a- Service):軟件即服務。它是一種通過Internet提供軟件的模式,用戶無需購買軟件,而是向提供商租用基於Web的軟件,來管理企業經營活動。

雲計算的特點

雲計算是通過使計算分佈在大量的分佈式計算機上,而非本地計算機或遠程服務器中,企業數據中心的運行將與互聯網更相似。這使得企業能夠將資源切換到需要的應用上,根據需求訪問計算機和存儲系統。

好比是從古老的單臺發電機模式轉向了電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便,費用低廉。最大的不同在於,它是通過互聯網進行傳輸的。

雲計算的特點:超大規模、虛擬化、高可靠性、通用性、高可擴展性、按需服務、極其廉價。

OpenStack

近幾年,OpenStack這個詞開始頻繁出現,引起了越來越多人的關注。那麼,什麼又是OpenStack呢,它和雲計算是什麼關係呢?

我們先來說說OpenStack的起源。

2002年,美國著名的電商公司亞馬遜(Amazon)幹了一件“不務正業”的事。他們向客戶推出了一項全新的業務——包括存儲空間、計算能力等資源服務的Web Service。這就是大名鼎鼎的AWS(Amazon Web Service)。

漫談雲計算與OpenStack的前世今生

說白了,這個Web Service服務,就是為大家提供“遠程電腦”。你可以遠程控制它,有硬盤,有CPU,有內存啥的。你在上面配置你的各種服務,然後給你的用戶使用,例如網站、FTP等。這個就是雲計算的一種早期形式。

後來,到了2006年,亞馬遜又推出了彈性計算雲(Elastic Compute Cloud),也稱EC2 。同樣是2006年,8月9日,Google首席執行官埃裡克·施密特在搜索引擎大會上首次提出“雲計算”(Cloud Computing)的概念。從此,雲計算進入了高速發展階段。

到了2010年,當時有一家名叫Rackspace的公司,他們一直在做和亞馬遜一樣的雲主機和雲儲存服務,但是始終都幹不過亞馬遜,排名第二。他們一氣之下,乾脆就把它們的雲儲存服務給開源了。

和他們一起開放源代碼的,還有一個傢伙,就是——美國國家航空航天局(NASA)。又是一個“不務正業”的傢伙。NASA之前在雲計算方面投入了大量的資金,但是後來發現這玩意好像是個無底洞,太燒錢了。而且,他們也似乎意識到這不是他們該乾的事。所以,NASA和Rackspace一起,選擇開放源代碼。

其實還有一個原因:以前NASA是使用Eucalyptus雲計算管理平臺,不過這個平臺分成兩個版本,一個開源的版本,一個收費的版本。這就導致NASA很不爽,向Eucalyptus貢獻代碼,結果Eucalyptus認為這個代碼和收費版本衝突,不接受。NASA給氣得不行,所以選擇了將代碼開源。

Rackspace和NASA並不是簡單地代碼一丟完事,而是聯手共同成立了一個開源項目。這個項目,就是OpenStack。

OpenStack的版本

開源社區這幫搞技術的宅男腐女,不管年齡大小,內心仍然是一群孩子。他們平時在公司上班比較“木雞”,在社區這種自由環境裡是一個比一個“皮”。從哪可以看出來?就在“取名”上——他們竟然給每個版本都單獨取了一個名字,而非商業軟件一樣按數字序號命名。

漫談雲計算與OpenStack的前世今生

不知道大家看出來沒有,這些名字都是有“玄機”的!

版本號的第一個字母,從A開始,然後B、C、D……每個名字都是從當次設計峰會所在城市中選一個地名,作為該版本的名字。例如,第一個版本Austin,就是根據Rackspace公司所在地(也是第一次峰會所在地)——美國德克薩斯州的首府“奧斯丁”確定的。還有第9個版本Icehouse,當時峰會是在香港舉辦的,用的“雪廠街”這個名字。

漫談雲計算與OpenStack的前世今生

OpenStack的架構

前面說了,OpenStack從一開始,就是為了雲計算服務的。簡單來說,它就是一個操作系統,一套軟件,一套IaaS軟件。什麼是IaaS?這個前面的雲計算介紹過了,這裡就不再講了。

管理“基礎設施資源”,便於用戶調用和使用,是OpenStack的首要任務。基礎設施資源,主要包括三個方面:計算、存儲、網絡。說通俗點,就是CPU,硬盤,網卡。

漫談雲計算與OpenStack的前世今生

學習OpenStack,最痛苦的事情,莫過於看它的架構。OpenStack擁有眾多的組件,通過組件之間協同進行工作,所以看上去架構非常複雜。

我還是用一個簡單的圖吧,看得更明白些。如下:

漫談雲計算與OpenStack的前世今生

這個圖裡面的彩色方塊,就是OpenStack最核心的組件。

這些組件裡,我挑幾個再介紹一下:

計算(Compute):Nova。一套控制器,用於為單個用戶或使用群組管理虛擬機實例的整個生命週期,根據用戶需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啟、銷燬等操作,配置CPU、內存等信息規格。

身份服務(Identity Service):Keystone。為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到項目中。

網絡&地址管理(Network):Neutron。提供雲計算的網絡虛擬化技術,為OpenStack其他服務提供網絡連接服務。為用戶提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。

塊存儲(Block Storage):Cinder。為運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利於塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。

對象存儲(Object Storage):Swift。一套用於在大規模可擴展系統中通過內置冗餘及高容錯機制實現對象存儲的系統,允許進行存儲或者檢索文件。可為Glance提供鏡像存儲,為Cinder提供卷備份服務。

鏡像服務(Image Service):Glance。一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。

UI 界面(Dashboard):Horizon。OpenStack中各種服務的Web管理門戶,用於簡化用戶對服務的操作,例如:啟動實例、分配IP地址、配置訪問控制等。

部署編排(Orchestration):Heat。提供了一種通過模板定義的協同部署方式,實現雲基礎設施軟件運行環境(計算、存儲和網絡資源)的自動化部署。

測量(Metering):Ceilometer。像一個漏斗一樣,能把OpenStack內部發生的幾乎所有的事件都收集起來,然後為計費和監控以及其它服務提供數據支撐。

OpenStack的組件都有自己的功能定位。其實,每個組件都可以算是獨立的一個程序(Software)。Open為開放之意,Stack則是堆砌,也就是許多Open的Softwares進行集合和堆砌。

OpenStack的發展

經過八年的努力,如今的OpenStack已經今非昔比,知名度也越來越高。很多企業和個人紛紛加入Openstack開源社區,使之成為了目前僅次於LINUX的全球第二大開源社區。

漫談雲計算與OpenStack的前世今生

按官網最新數據,現在有180多個國家,677家企業,87426名社區會員通過各種方式支撐著這個項目。項目的代碼也已經超過了2000萬行。全球一半以上的500強企業,都採用了OpenStack技術。而且,根據調查,有75%以上的企業打算今後使用這項技術。

學習OpenStack

說了這麼多,OpenStack這麼牛掰,到底該如何學習它呢?它看上去那麼複雜,會不會很難學會呢?其實,雖然前面看到的架構很複雜,但是真心要學習OpenStack的話,並沒有想象得那麼困難。因為OpenStack是開源的項目,所以互聯網上相關的學習資料非常豐富。無論是官方文檔還是非官方資料,都數不勝數。如何需要更多、更深入的瞭解,請持續關注啟迪雲。

漫談雲計算與OpenStack的前世今生

不過,OpenStack入門雖然很容易,但是精通就很難了。需要長時間不斷地鑽研和積累,還需要進行大量的實踐部署,才有可能成為專家。古話說:路漫漫其修遠兮,吾將上下而求索。還是得腳踏實地啊!


分享到:


相關文章: