天天看點

雲計算核心技術剖析

第 1 章 雲計算的概念

        古 人雲:“不以規矩,無以成方圓”,也就是說,“方圓”再怎麼精彩和美麗,都離不開“規矩”的積澱和限制,這個道理對雲計算也同樣适用,如果讀者對雲計算本 身有一定的認知和了解,那麼就非常有助于今後對其相關的技術和産品的學習,而本章就是這樣專注于雲計算本身的章節。在本章的開始,将關注雲計算的定義和特 點,接着将從思想和技術這方面來分析雲計算的由來,并講述一下雲計算的誕生與成長,最後将重點介紹雲計算對整個 IT 産業的影響和主要的使用場景。

   1.1 什麼是雲計算

        雲計算到底是什麼呢?

  在這個問題上,可謂衆說紛纭。比如,在維基百科上的定義是“雲計算是一種基于網際網路的計算新方式,通過網際網路上異構、自治的服務為個人和企業使用者提供按需即取的計算”;著名咨詢機構 Gartner 将雲計算定義為“雲計算是利用網際網路技術來将龐大且可伸縮的 IT 能力集合起來作為服務提供給多個客戶的技術”;而 IBM 則認為“雲計算是一種新興的 IT 服務傳遞方式,應用、資料和計算資源能夠通過網絡作為标準服務在靈活的價格下快速地提供最終使用者”。

  雖然這幾個定義都有一定的道理,但在我看來還沒抓住雲計算的核心,在我眼中, 雲計算應該有如圖 1-1 :雲計算是新一代 IT 模式,它能在後端龐大的雲計算中心的支撐下能為使用者提供更友善的體驗和更低廉的成本。

  

雲計算核心技術剖析

   具體而言,由于在後端有規模龐大、非常自動化和高可靠性的雲計算中心的存在,人們隻要接入網際網路,就能非常友善地通路各種基于雲的應用和資訊, 并免去了 安裝和維護等繁瑣操作,同時,企業和個人也能以低廉的價格來使用這些由雲計算中心提供的服務或者在雲中直接搭建其所需的資訊服務。在收費模式上,雲計算和 水電等公用事業非常類似,使用者隻需為其所使用的部分付費。對雲計算的使用者(主要是個人使用者和企業)來講,雲計算将會在使用者體驗和成本這兩方面給他們帶來 很多非常實在的好處。

  1.1.1 使用者體驗

  對個人使用者而言,在雲計算的時代,會出現越來越多的基于網際網路的服務,這些服務豐富多樣、功能強大、随時随地接入,同時也無需購買、下載下傳和安裝任何的 客 戶端,并隻要使用浏覽器就能輕松通路,而無需為軟體的更新和病毒的感染操心。還有,人們可以将文檔等資料放在雲來進行共享和協作,比如,共同編輯同一篇文 章,而且通過嚴格的權限管理機制,來確定協作是在安全的環境下進行。對企業使用者而言,可以利用雲技術來優化其現有的 IT 服務,使現有的 IT 服務更可靠和更自動化,更可以将企業的 IT 服務整體遷移到雲上,使企業卸下維護 IT 服務的重擔,進而更專注于其主營業務。

  1.1.2 成本

  對個人使用者而言,由于他們所使用的服務運作在雲端,本地計算需求比較少,是以無需像過去那樣不斷地更新電腦的配置或者購買昂貴的新電腦,隻需一個廉價 的 可以上網的智能終端,比如:手機和上網本等。同時由于網際網路服務是按需使用,而無需在初期購置不廉價的軟體用戶端。對企業使用者而言,除了可以通過利用先進 的雲技術來降低企業 IT 初期的投資成本和後期的維護成本之外,更可以通過将 IT 服務外包或者整體遷移到外部的雲中來削減 IT 部門的規模,這樣能使得公司成本的結構更完善。

  上面提到的一些雲計算的優點和好處,而這些東西都沒有遠離雲計算自身的特點,而是息息相關的。

  雲計算的特點

  在特點方面,主要有十點,除了常見的超大規模、高可擴充性和按需服務之外,還有自動化和節能環保等。

  (1)    超大規模:大多數雲計算中心都具有相當的規模,比如, Google 雲計算中心已經擁有幾百萬台伺服器, 而 Amazon 、 IBM 、微軟、 Yahoo 等企業所掌控的雲計算規模也毫不遜色,并且雲計算中心能通過整合和管理這些數目龐大的計算機叢集來賦予使用者前所未有的計算和存儲能力。  

  (2)    抽象化:雲計算支援使用者在任意位置、使用各種終端擷取應用服務,所請求的資源都來自“雲”,而不是固定的有形的實體。應用在“雲”中某處運作,但實際上使用者無需了解、也不用擔心應用運作的具體位置,這樣能有效地簡化了應用的使用。

  (3)    高可靠性:在這方面,雲計算中心在軟硬體層面采用了諸如資料多副本容錯、心跳檢測和計算節點同構可互換等措施來保障服務的高可靠性,還在設施層面上的能源、制冷和網絡連接配接等方面采用了備援設計來進一步確定服務的可靠性。

  (4)    通用性:雲計算中心很少為特定的應用存在,但其有效支援業界大多數的主流應用,并且一個“雲”可以支撐多個不同類型應用的同時運作,并保證這些服務的運作品質。

  (5)    高可擴充性:使用者所使用“雲”的資源可以根據其應用的需要進行調整和動态伸縮,并且再加上前面所提到的雲計算中心本身的超大規模,使得“雲”能有效地滿足應用和使用者大規模增長的需要。

  (6)    按需服務:“雲”是一個龐大的資源池,使用者可以按需購買,就象自來水、電和瓦斯等公用事業那樣根據使用者的使用量計費,并無需任何軟硬體和設施等方面的前期投入。

  (7)    廉價:首先,由于雲計算中心本身巨大規模所帶來的經濟性和資源使用率的提升,其次,“雲”大都采用廉價和通用的 X86 節點來建構,是以使用者可以充分享受雲計算所帶來的低成本優勢,經常隻要花費幾百美元就能完成以前需要數萬美元才能完成的任務。

  (8)    自動化:雲中不論是應用、服務和資源的部署,還是軟硬體的管理,都主要通過自動化的方式來執行和管理,進而極大地降低整個雲計算中心龐大的人力成本。

  (9)    節能環保:雲計算技術能将許許多多分散在低使用率伺服器上的工作負載整合到雲中,來提升資源的使用效率,而且雲由專業管理團隊運維,是以其 PUE ( Power Usage Effectiveness ,電源使用效率值)值和普通企業的資料中心相比出色很多,比如, Google 資料中心的 PUE 值在 1.2 左右,也就是說,每一塊錢的電力花在計算資源上,隻需再花兩角錢電力在制冷等裝置,而常見的 PUE 在 2 和 3 之間,并且還能将雲建設在水電廠等潔淨資源旁邊,這樣既能進一步節省能源方面開支,又能保護了環境。

  (10)  完善的運維機制:在“雲”的另一端,有全世界最專業的團隊來幫使用者管理資訊,有全世界最先進的資料中心來幫使用者儲存資料。同時,嚴格的權限管理政策可以保證這些資料的安全。這樣,使用者無需花費重金就可以享受到最專業的服務。    

      由于這些特點的存在,使得雲計算能為使用者提供更友善的體驗和更低廉的成本,同時這些特點也是為什麼雲計算能脫穎而出,并且能被大多數業界人員所推崇的原因之一,那麼雲計算是怎麼誕生的呢?

  1.2 雲計算的由來

  雖然很多偉大發明和技術在我們看來都是些突發奇想的産物,但當真正探究起來,這些東西大都通過一代人,甚至于幾代人的積累演變而成的,其中最明顯的例 子,莫過于計算機本身。早在 2000 年前,我們中國人就已經發明了算盤這一強大的計算工具;在 1642 年,法國數學家帕斯卡在在英國數學家奧特雷得所制作的“計算尺”的基礎上,将其加以改進,制成了能進行八位計算的“加法器”;在 1673 年,德國大師萊布尼茨在巴黎制造了一個能進行加、減、乘、除及開方運算的計算機,名為“乘法器”;在 1820 年,英國人查爾斯•巴比奇已經在構想和設計了世界上第一台完全可程式設計的計算機,可惜介于當時的技術條件和經費限制,使得這台計算機始終未能在他有生之年問 世;到了 20 世紀,艾倫•圖靈的圖靈機思想和新興的電子技術都對最後 ENIAC 的問世都起着非常關鍵的作用。還有,我們耳熟能詳,但晦澀難懂的相對論也同樣如此,如果沒有麥克斯韋爾、邁克爾遜和洛侖茲等大師的積澱,估計愛因斯坦是很 難完成相對論的譜寫。

    當我們談到雲計算時,難道它就是突發奇想,就是特例嗎?其實雖然雲計算這個名詞隻是 Google CEO 埃裡克•施密特博士當年在擔任 SUN 系統公司的 CTO ( Chief Technology Officer ,首席技術官)時候的一次偶然所得,但是其概念本身不僅和前言中提到的過去電力的發展是密不可分的,而且更是整個 IT 産業非常自然的發展和演化。這些發展和演化不僅存在于思想方面,而且涉及技術方面的進步。

  1.2.1 思想演化

  雲計算在思想方面主要經曆了四個步驟才發展到現在這樣比較成熟的水準,這四個步驟依次是電廠模式、效用計算、網格計算和現在的雲計算,如圖 1-2 所示。

雲計算核心技術剖析

  

   1. 電廠模式

  由于 IT 行業本身是一個比較新生的行業,是以從其他行業取經是其發展不可或缺的一步,最出名的例子之一莫過于從建築行業,引入“模式( Pattern )”這個概念。雖然在 IT 界,電廠這個概念不像“模式”那樣炙手可熱,但其影響是深遠的,而且有許許多多的 IT 人在不斷地實踐着這個理念,它的意思是通過利用電廠的規模效應,來降低電力的價格,并讓使用者使用起來更友善,且無需維護和購買什麼任何發電裝置。

  2. 效用計算

  在 1960 年左右, 當時計算裝置的價格是非常高昂的,遠非普通企業、學校和機構所能承受的,是以有很多人産生了共享計算資源的想法,特别是在 1961 年,人工智能之父麥肯錫在一次會議提出了“效用計算( Utility computing )”這個概念,其核心就是借鑒了上面所提到的電廠模式,具體目标是通過結合分散各地的伺服器、存儲系統以及應用程式來共享給多個使用者,使得使用者能夠象把燈 泡插入燈頭一樣來使用計算機資源,并且根據其所使用的量來付費。接着,在 1966 年 D.F.Parkhill 在其經典的《計算機公用事業的挑戰》一書中也提出了類似的觀點,但由于當時整個 IT 産業還處于初創期,很多強大的技術還未誕生,比如網際網路等,導緻雖然這個想法一直被大家所傳承,但是總體而言“叫好不叫座”。

  3. 網格計算

  談到網格計算( Grid Computing ),主要由于翻譯的問題,使得國内的技術人員無法領會其精髓和真谛。網格計算中的網格,也就是“ Grid ”,其英文原意并不是我們所認為網絡的網格,而是電力的網格,是以其核心與上面的效用計算非常接近,但是它的側重點略有不同,它研究如何把一個需要非常巨 大的計算能力才能解決的問題分成許多小的部分,然後把這些部分配置設定給許多許多相對低性能的計算機來進行處理,最後把這些計算結果綜合起來攻克一個非常大的 難題。可惜的是,由于網格計算在商業模式、技術和安全性這三方面的不足,使得其并沒有在工程界和商業界取得預期的成功,但在學術界,還是有一定的應用,比 如用于尋找外星人的“ SETI ”計劃等。

  4. 雲計算 

  雲計算的核心和前面的效用計算與網格計算非常類似,也是希望能使 IT 技術能像使用電力那樣友善,并且成本低廉,但與前兩者不同的是,現在在需求方面,已經有一定的規模,同時在技術方面,也已經基本成熟了,是以雲計算和前兩者相比更有前途。

  1.2.2 技術支援

 

雲計算核心技術剖析

  光有理念不行,如果沒有強大的技術做支撐的話,雲計算也會像先前的效用計算和網格計算那樣隻能局限于學術界,如圖 1-3 所示的那樣,雲計算主要有五大類技術的支援,而就是由于這些技術所提供的強大動力,使得雲計算不再是空中樓閣。

  1. 摩爾定律

  随着摩爾定律依舊推動着整個硬體産業的發展,包括晶片、記憶體和硬碟等硬體裝置在性能和容量方面得到了極大的提升,在這方面,最明顯的例子,莫過于芯 片,雖然在單線程性能方面,其并沒有像奔騰時代那樣突飛猛進,但是已經非常強悍了,再加上多核的配置,使得整體性能達到一個前所未有的境界,比如,最新的 X86 晶片在性能上已經是 30 年前 8086 的一千倍,而現在用于手機等低能耗移動裝置的 ARM 晶片在性能上比過去的大型主機上的晶片強大的多,同時這些硬體裝置在價格方面也比過去更平易近人。還有,諸如 SSD 和 GPU 等新興技術的引入都極大地推動着 IT 産業的發展。可以說,摩爾定律給予雲計算所需的充足“動力”。

  2. 網絡設施 

  由于 ADSL 寬帶和現在的光纖入戶的不斷普及,使得現在的網絡帶寬已經從過去平均 50Kb 增長至現在平均 1Mb 以上,進而基本滿足了大多數服務的需求,包括視訊等多媒體服務。再加上無線網絡和移動通信的不斷發展,進而使得人們能在任何時間任何地點都利用網際網路的夢 想成為了可能,可以說,現在網際網路不再像過去那樣是一種奢侈品,而是社會的基礎設施,并使得終端和雲緊緊地連起來。

  3.Web 技術

  Web 技術已經從 90 年初的“混沌期”和本世紀初的“陣痛期”走出,已經進入“快速發展期”,并随着類似 AJAX 、 jQuery 、 Flash 、 Silverlight 和 HTML5 等 Web 技術的不斷地發展, Chrome 、 Firefox 和 Safari 等性能出色和功能強大的浏覽器的不斷湧現,使得 Web 已經不再是隻能顯示簡單的頁面或者在使用者體驗方面遠遜于傳統的桌面應用,而是能支援多種多媒體功能和複雜的事件處理,在使用者體驗方面已經越來越接近桌面應 用,使得使用者隻要通過網際網路和雲連上,就能通過浏覽器使用各種功能強大的 Web 應用。

  4. 系統虛拟化 

  雖然就像上面摩爾定律那段提到那樣, X86 晶片性能已經非常強悍了,但每台 X86 伺服器的使用率還是在個位數徘徊,可以說,在能源和購置成本等方面浪費極大,但随着 VMware 的 vSphere 和開源的 Xen 等基于 X86 架構的系統虛拟化技術的不斷發展,使得一台伺服器能整合過去多台伺服器的負載,進而有效地提升硬體的使用率,并降低能源的浪費和硬體的購置成本,更重要的 是,通過這些技術能有效地提升了資料中心自動化管理的程度,進而極大地減少在管理方面的投入,使雲計算中心的管理更智能。

  5. 移動裝置 

  随着蘋果的 iOS 和 Google 的 Android 這類智能手機系統不斷地發展和普及,使得諸如手機這樣的移動裝置已經不僅是一個移動的電話而已,更是一個完善的資訊終端,能夠通過它們輕松地通路網際網路上 的資訊和應用,并且在整體功能上越來越接近桌上型電腦的水準,使得通過這些移動裝置能夠随時随地地通路雲中的服務。 

  就像上文所提到的那樣,雲計算并不是突發奇想的産物,而是通過在思想和技術這兩方面不斷地成熟和發展,使得雲計算有了一塊“肥沃”的土壤,讓其能自由地生長。

  1.3 雲計算的誕生

  雖然在雲計算誕生在一塊“肥沃”的土壤之上,但是如果沒有非常好的契機的話,雲計算隻會像小的溪流那樣慢慢地流淌,而也不會像今天那樣宛如無數個小溪 流合并而來的長江之水那樣滾滾而來,并推動着整個 IT 産業的發展。我認為有五個非常重要的契機一步步地觸發了雲計算的誕生。

  1.3.1 SaaS 的誕生

  在 1999 年,桌面應用還是唯一主流的時候,當時 Oracle 的高管 Marc Benioff 看準了 Web 應用将取代桌面應用這一大趨勢,建立了 Salesforce 這家以銷售線上 CRM ( Customer relationship management ,客戶關系管理)為主的網際網路公司,并定義了 SaaS ( Software as a Service ,軟體即服務)這個概念,意思是軟體将會以線上服務形式提供給使用者,而且避免了安裝和運維等繁瑣的步驟。 Salesforce 的線上 CRM 一經推出,不僅受到來自技術界的好評和使用者支援,而且越來越多的軟體選擇了 SaaS 這種模式來進行釋出。總的來說,由于 SaaS 的誕生和不斷地發展,使人們開始相信類似雲計算的産品,不論在技術上,還是在商業上都是可行的

  1.3.2 《 IT 不再重要》的發表

  2003 年,尼古拉斯•卡爾在發表在《哈佛商業評論》上的一篇非常具有轟動性文章,名為《 IT 不再重要》,在這篇文章中,尼古拉斯•卡爾犀利地提出 IT 技術已經日用品化了。雖然這樣能使大多數的企業從 IT 中獲益,但是 IT 已經很難給企業帶來一定的競争優勢。雖然在剛發表時,此文受到了包括當時 Intel 董事長克瑞格•貝瑞特在内整個 IT 界的口誅筆伐,并導緻尼古拉斯•卡爾甚至自稱其為 IT 界的“全民公敵”。但是,從今天,也就是文章發表的七年後看來,此文不僅促使了廣大的 IT 從業者不斷地反思,進而推動了 IT 産業的改革,因為 IT 技術的日用品化并不是 IT 業的末日,而是下一次創新和發展的基石,而且還引出了《大轉變》這本“雲計算的聖經”。

  1.3.3 Google 的三大核心技術

  在 2003 年的 SOSP 大會上 Google 發表了 GFS ( Google File System , Google 檔案系統)這個分布式存儲系統的論文;在 2004 年的 OSDI 大會上發表了 MapReduce 這個分布式處理技術的論文,;在 2006 年的 OSDI 大會上發表了 BigTable 這個分布式資料庫的論文。這三篇重量級論文的發表,不僅使大家了解 Google 搜尋引擎背後強大的技術支撐,而且克隆這三個技術的開源産品像雨後春筍那樣不斷地湧現, MapReduce 的有 Hadoop , GFS 的有 HDFS ,而 BigTable 則有 Hbase 、 Hypertable 和 Cassandra 等,這三篇論文和相關的開源技術極大地普及了雲計算中非常核心的分布式技術。

  1.3.4 Amazon Web Service 的推出

  Amazon 的 B2C 業務有點類似中國移動的短信業務,平時流量很大,但是到每年特定的時刻(比如 Amazo 的聖誕節和中國移動的春節等),流量更是數量級的攀升,在這種情況下, Amazon 需要購置遠超其平常使用量的硬體資源以應對聖誕節的流量,很顯然,會有很多資源被浪費,是以 Amazon 想出租借硬體資源給公衆,以減少浪費的想法,這也是其推出 Amazon Web Service 的最主要的原因。在 2006 年初, Amazon 推出了 Amazon Web Service 第一款産品 S3 ( Simple Storage Service ,簡單存儲服務)雲存儲服務,在 2006 年 8 月推出了另一款 Amazon Web Service 産品 EC2 ( Elastic Compute Cloud ,彈性計算雲)雲基礎設施服務,之後還推出了包括 SimpleDB 、 Simple Queue Service 和 CloudFront 等近 20 種雲服務。 Amazon Web Service 的推出标志着雲計算相關的産品已經出現,并基本可用,雖然那時還沒有雲計算這個說法。

  1.3.5 IBM 和 Google 的合作

  一位名叫克裡斯托夫•比希利亞的 Google 進階工程師,為了推廣 Google 一些新的技術,是以他利于其 20% 的時間在他的母校華盛頓大學開了一門名叫“ Google 101 ”的課程,通過這門課程指導學生學習一些常用于 Google 内部的分布式技術,比如 MapReduce 等。接着,這個項目也得到 IBM 方面的支援,在合作的過程中, IBM 和 Google 都從中意識到這些分布式技術在商業和科研方面的強大潛力,并最終在 2007 年 10 月 8 日共同宣布了一項“大規模分布式計算”推進計劃,兩家公司将投資建立一個大型的資料中心,學生可以通過網際網路遠端通路該資料中心,并進行遠端的研究,這個 項目也稱為“雲計算”的推進計劃,這就是雲計算的誕生。

    1.4 雲計算的成長

  在雲計算這個概念誕生之後,雖然受到一定程度的非議,但是總體而言,雲計算還是得到了大家的歡迎,而且大家對雲計算的認識也在不斷地加深中,并且業界有很多知名公司都出台了一系列産品或者規劃。表 1-1 是雲計算概念誕生以來的編年史。  

     通過上面提到的這些産品釋出和各種預測,我們應該可以看出業界對于雲計算是非常看好和關注的。

  1.5 雲計算的影響

  雖然雲計算最初隻是由 IBM 和 Google 這兩家公司所主導的,但是就像圖 1-4 所示那樣雲計算将會對整個 IT 産業帶來非常深遠的影響,其中包括伺服器供應商、軟體開發商和雲終端供應商這三個雲計算建設者和作為雲計算運維者的雲供應商。本章将從上面提到的這四個角 度進行分析,之後,會總結雲計算對整個 IT 産業的影響。

  

雲計算核心技術剖析

  1.5.1 伺服器供應商的角度

  這類型的公司主要包括 IBM 、 HP 、 Dell 和 Cisco 等。主要有兩個方面的變化:其一,是需求方面的變化,雖然中小企業會不斷地加大對 IT 技術使用,但由于它們将會把雲服務作為首選,是以對伺服器供應商而言,來自中小企業的訂單将會不斷的減少,但來自雲供應商的訂單則會大量的增加;其二,是 産品方面的變化,由于大型雲計算中心,對硬體有自己一套的設計和想法,是以會希望伺服器供應商能生産為它們定制的硬體,這導緻伺服器供應商他們整體産品的 方向将會從原先的以生産通用的 X86 伺服器為主,轉變為通用和定制兼顧,而且為雲計算做優化的解決方案将受到極大歡迎。雖然雲計算将會對部分非常依賴中小企業的硬體廠商帶來非常不利的影響, 但是從長期而言,對那些不斷創新,并且提出非常優秀的雲計算解決方案的硬體廠商,将會脫穎而出,并從雲計算大潮中獲利豐厚。

  1.5.2 軟體開發商的角度

  最典型的公司有微軟、 Red Hat 、 Oracle 和 VMware 等。主要有三方面的變化:首先,在軟體傳遞方式上的變化,由于虛拟器件( Virtual Appliance )等軟體釋出格式的引入,使得不僅軟體的開發,維護和銷售等方面的成本和複雜度得到了降低,而且也加快了軟體部署的速度;其次,在軟體銷售和釋出方式上的 變化,由于各種基于雲的軟體釋出平台(比如蘋果的 App Store 、中國移動的 Mobile Market 和 VMware Virtual Appliance Marketplace 等)的出現,使得釋出、推廣和銷售軟體越來越簡單,而且成本更低,比如,和傳統軟體釋出前期需要大量資金支援不同的是,在蘋果的 App Store 上釋出軟體的成本基本為零,而且能直面超過 5000 萬 iOS 系統(包括 iPhone 、 iPod Touch 和 iPad )的使用者,同時這些使用者的消費能力也是非常強大的;最後,在技術上的變化,軟體将與雲技術進行深度地整合,比如,應用類的軟體,基本上都将選擇 Web 作為其首選的界面,而中間件和底層的系統軟體将會為運作在雲中做更多的優化。

  1.5.3 雲終端供應商的角度

  這方面的公司有 Apple 、 Nokia 、三星和聯想等。由于移動裝置的輕便型,再加上性能的日漸提高和能友善地接入多種無線網絡(比如 WIFI 和 3G 等),是以市場對移動裝置需求将與日俱增,而且将來雲終端将不會僅是手機、平闆和筆記本這幾種移動裝置,而将會涉及社會的方方面面,比如電視和汽車等,所 以在這方面會有非常大創新空間等待着這些公司。

  1.5.4 雲供應商的角度 

  相關的公司有國外的 Amazon 、 Google 和 RackSpace 等,國内的有中國移動和中國電信等。随着雲計算不斷推廣和被大衆所接受,使得雲計算中心在營運的規模上會不斷地增大, 這将會給雲供應商帶來很多機會來降低其營運成本,并提升經營利潤,比如,将雲計算中心建設在能源成本底的地方(比如電廠附近)或者建在制冷成本底(比如天 氣寒冷的地點)的地方。而且由于運作的工作負載的規模非常龐大,将整體提高伺服器使用率。同時雲的業務都屬于非常穩定的,是以能給雲供應商帶來持久的現金 流。

  1.5.5 整個 IT 産業的角度 

  不可否認,在短期内,由于産業結構的變化,雲計算有可能将會給整個 IT 産業帶來一定程度的陣痛,但是從長期而言,雲計算将會對整個 IT 産業帶來非常正面的影響,因為雲計算将推動整個産業的進一步的優化布局和專業分工,并且提供一個讓所有 IT 人不斷地創新的舞台,最終,這些參與者會像之前大型機時代和 PC 時代那樣同心協力創造出一整套屬于雲計算的産業鍊。

  1.6 雲計算的使用場景

  有些 IT 從業人員在談到雲計算的時候,總是認為雲計算隻是廣告詞而已,實際的用處是非常有限。對于這種看法,我不以為然,因為不僅雲計算的部分技術已經落地,而且雲計算将在 IT 産業各個方面都有其用武之地,在這裡,選擇十個比較典型的使用場景來加以介紹。

  1.6.1 IDC 雲

  傳統 IDC ( Internet Data Center ,網際網路資料中心)的服務已經無法滿足使用者的需求,使用者期望更強大、更友善和更靈活的 IDC 服務。 IDC 雲是在 IDC 原有資料中心的基礎上,加入更多雲的基因,比如系統虛拟化技術、自動化管理技術和智慧的能源監控技術等。通過 IDC 的雲平台,使用者能夠使用到虛拟機和存儲等資源。還有, IDC 可通過引入新的雲技術來提供許多新的具有一定附加值的服務,比如, PaaS 等。現在已成型的 IDC 雲有 Linode 和 Rackspace 等。

  1.6.2 企業雲

  對任何大中型企業而言, 80% 的 IT 資源都用于維護現有應用的,而不是讓 IT 更好地為業務服務。使用專業的企業雲解決方案來提升企業内部資料中心的自動化管理程度,将整個 IT 服務的思維從過去的軟硬體思維轉變為以提供服務為主,使得 IT 人員能分出精力來為業務創新,成為半個業務人員。企業雲對于那些需要提升内部資料中心的運維水準和希望能使整個 IT 服務更圍繞業務展開的大中型企業非常适合。相關的産品和解決方案有 IBM 的 WebSphere CloudBurst Appliance 、 Cisco 的 UCS 和 VMware 的 vSphere 等。

   1.6.3 雲存儲系統

  由于資料是企業的非常重要的資産和财富,是以需要對資料進行有效的存儲和管理,而且普通的個人使用者也需要大量的存儲空間用于儲存大量的個人資料和資 料,但由于本地存儲在管理方面缺失,使得資料的丢失率非常高。而雲存儲系統能解決上面提到這些問題,它是通過整合網絡中多種儲存設備來對外提供雲存儲服 務,并能管理資料的存儲、備份、複制和存檔,還有,良好的使用者界面和強大的 API 支援也是不可或缺的。雲存儲系統非常适合那些需要管理和存儲海量資料的企業,比如網際網路企業,電信公司等,還有廣大的網民。相關的産品有:中國電信的 E 雲、 Amazon 的 S3 雲存儲服務、 Google 的 Picasa 相冊和微軟的 SkyDrive 網絡硬碟等。

  1.6.4 虛拟桌面雲

   對許多企業而言,桌面系統的安裝、配置和維護都是其 IT 營運非常重要的一個方面,桌面系統的分散管理将給整個 IT 部門帶來沉重的壓力,而且相關的資料和資訊安全不能受到有效地監控,同時企業更希望能将降低終端桌面系統的整體成本,并且使用起來更穩定和靈活。虛拟桌面 雲是這方面一個非常不錯的解決方案,其是利用了現在成熟的桌面虛拟化技術。桌面虛拟化技術是将使用者的桌面環境與其使用的終端進行解耦,在伺服器端以虛拟鏡 像的形式統一存放和運作每個使用者的桌面環境,而使用者則可通過小型的終端裝置來通路其桌面環境,還有,系統管理者可以統一地管理使用者在伺服器端的桌面環境, 比如安裝、更新和配置相應地軟體等。這個解決方案比較适合那些需要使用大量桌面系統的企業。相關的産品有 Citrix 的 Xen Desktop 和 VMware 的 VMware view 。

  1.6.5 開發測試雲

  開發測試總是繁瑣、易錯和耗時的過程,特别是在準備測試環境上面,還有會遇到諸如測試資源管理混亂,難于重制問題發生的環境和缺乏壓力測試所需要的強 大計算能力等棘手問題。而開發測試雲能有效解決上面這些問題,其通過友好的 Web 界面,可以預約、部署、管理和回收整個開發測試的環境,通過預先配置好(包括作業系統,中間件和開發測試軟體)的虛拟鏡像來快速地建構一個個異構的開發測 試環境,通過快速備份 / 恢複等虛拟化技術來重制問題,并利用雲的強大的計算能力來對應用進行壓力測試,比較适合那些需要開發和測試多種應用的組織和企業,比如銀行、電信和政府 等。相關解決方案有 IBM Smart Business Development and Test Cloud 。

  1.6.6 大規模資料處理雲

  企業需要分析大量的資料來洞察業務發展的趨勢,可能的商業機會和存在的問題,進而做出更好、更快和更全面的決策。還有,物聯網會采集海量需要處理的數 據。大規模資料處理雲通過将資料處理軟體和服務運作在雲計算平台上,能利用雲平台的計算能力和存儲能力來對海量的資料進行大規模的處理,除了上面提到的物 聯網之外,還有許多企業和機構都會有這方面的需求。相關産品有 Apache 的 Hadoop 等。

  1.6.7 協作雲

  電子郵件、 IM ( Instant Messaging ,即時通訊)、 SNS ( Social Networking Services ,社交網絡服務)和通信工具(比如 Skype 和 WebEx )等都是很多企業和個人必備的協作工具,但是維護這些軟體和其硬體卻是一件讓人非常頭疼的工作。協作雲是雲供應商在 IDC 雲的基礎上或者直接建構一個專屬的雲,并在這個雲搭建整套的協作軟體,并将這些軟體共享給使用者,非常适合那些需要一定的協作工具,但不希望維護相關的軟硬 件和支付高昂的軟體許可證費用的企業與個人。這方面,最具代表性的産品莫過于 IBM 的 LotusLive ,它主要包括會議、辦公協作和電子郵件這三大服務。當然 Google Apps 也是不容忽視的,其中 Gmail 和 Gtalk 都是協作的利器。

  1.6.8 遊戲雲

  由于傳統遊戲軟體容量都非常巨大,無論是單機,還是網遊,都需要在遊戲之前,花很多時間在下載下傳和安裝上,使玩家無法很盡興地玩遊戲,再加上遊戲的購置 成本偏高,使得玩家在嘗試新遊戲方面,興趣驟降。在這方面,業界部分公司推出了遊戲雲的解決方案,主要有兩大類:其一是使用更多基于 Web 的遊戲模式,比如使用 JavaScript 、 Flash 和 Silverlight 等技術,并将這些遊戲部署到雲中,這種解決方案比較适合休閑遊戲;其二是為大容量和高畫質的專業遊戲設計的,整個遊戲都将在運作雲中,但會将最新生成的畫 面傳至用戶端。總之,休閑玩家和專業玩家都會在遊戲雲找到自己的所愛。在産品方面:第一種遊戲雲,已經有很多遊戲都采用這種方案,比如許多 Facebook 上的休閑遊戲采用了後端雲和前端 Flash 這樣的組合;而第二種遊戲雲, AMD 已經釋出了類似的技術,但礙于現有的網絡環境,是以短時間内不會有特别成熟技術出現。

  1.6.9 HPC 雲

  在科學方面 HPC ( High Performance Computing ,高性能計算)領域,現在主要有兩方面挑戰:其一是供需不平衡,要麼是現有的 HPC 資源太過稀少,無法滿足大衆的需求,要麼就是貧富不均,導緻 HPC 資源無法被合理的配置設定;其二是現有的 HPC 設計和需求不符,雖然 HPC 已經發展了很多年,但是在設計還是将所有的計算資源整合在一起以追求極緻速度為主,但是現在的主流需求則常以隻需要一小塊計算資源為主,這導緻 HPC 計算資源被極大地浪費,是以新一代的高性能計算中心不僅僅需要提供傳統的高性能計算,而且還需要增加資源的管理、使用者的管理、虛拟化的管理、動态的資源産 生和回收等等。這時,基于雲計算的高性能計算應運而生,也就是 HPC 雲,其能夠為使用者提供可以完全定制的高性能計算環境,使用者可以根據自己的需求來改變計算環境的作業系統、軟體版本和節點規模,進而避免與其他使用者的沖突, 并可以成為網格計算的支撐平台,以提升計算的靈活性和便捷性。 HPC 雲特别适合需要使用高性能計算,但缺乏巨資投入的普通企業和學校。北京工業大學已經和 IBM 合作建設國内第一個 HPC 雲計算中心。

  1.6.10 雲殺毒

  新型病毒的不斷湧現,使得防毒軟體的病毒特征庫的大小與日俱增,如果在安裝防毒軟體的時候,附帶安裝龐大的病毒特征庫的話,将會影響使用者的體驗,而且 防毒軟體本身的運作也會極大地消耗系統的資源。通過雲殺毒技術,防毒軟體可以将有嫌疑的資料上傳到雲中,并通過雲中龐大的特征庫和強大的處理能力來分析這 個資料是否含有病毒,這非常适合那些需要使用防毒軟體來捍衛其電腦安全的使用者。現有的防毒軟體都支援一定的雲殺毒這個特性,比如 360 殺毒和金山毒霸等。

  本章已經給大家介紹雲計算概念相關的幾個方面,比如定義、由來、成長和誕生等,估計大家現在已經對雲計算有了些基本的認識,并且有可能對雲計算充滿了更多的好奇,而下章将選取雲計算概念中非常重要的一部分 -- 架構,來進行深入地介紹和講解。

  第 2 章   雲計算的架構

   IT ,身為一個新興行業,其在發展曆程中向其他行業借鑒了一些先進的思想和理念,最明顯的例子除了上面提到的從電力行業學習了公用事業這種商業模式和從豐田汽車流水線生産中總結出精益這套程式設計模式之外,還有,就是在軟體設計方面,引入了架構這個在建築行業非常核心的概念。

    架構,對軟體系統而言是極為重要的,因為它不僅定義了系統内部各個子產品之間是如何整合和協調的,同時也對其整體表現起着非常關鍵的作用。而雲,作為一個非常複雜的大型軟體系統,它内部包含着許許多多的子產品群組件,是以如果能夠理出其架構的話,将會非常有益處。

  為了讓大家對雲計算有更深入的了解,本章将會對雲的架構進行深入地剖析。除了雲的架構之外,本章還将會對雲計算最主要和最常見的四種模式進行深入的介紹。

   2.1 雲的架構

  在對雲計算進行了三年多的研究之後,覺得雖然雲計算涉及了很多産品與技術,表面上看起來的确有點紛繁複雜,但是雲計算本身還是有迹可循和有理可依的,是以在個人了解的基礎上,我總結出了一套雲計算的架構,具體請看圖 2-1 。

  

雲計算核心技術剖析

  上面這個雲架構共分為服務和管理這兩大部分。

  在服務方面,主要以提供使用者基于雲的各種服務為主,共包含三個層次:其一是 Software as a Service 軟體即服務,簡稱 SaaS ,這層的作用是将應用主要以基于 Web 的方式提供給客戶;其二是 Platform as a Service 平台即服務,簡稱 PaaS ,這層的作用是将一個應用的開發和部署平台作為服務提供給使用者;其三是 Infrastructure as a Service 基礎設施即服務,簡稱 IaaS ,這層的作用是将各種底層的計算(比如虛拟機)和存儲等資源作為服務提供給使用者。從使用者角度而言,這三層服務,它們之間關系是獨立的,因為它們提供的服務 是完全不同的,而且面對的使用者也不盡相同。但從技術角度而言,雲服務這三層之間的關系并不是獨立的,而是有一定依賴關系的,比如一個 SaaS 層的産品和服務不僅需要使用到 SaaS 層本身的技術,而且還依賴 PaaS 層所提供的開發和部署平台或者直接部署于 IaaS 層所提供的計算資源上,還有, PaaS 層的産品和服務也很有可能建構于 IaaS 層服務之上。

  在管理方面,主要以雲的管理層為主,它的功能是確定整個雲計算中心能夠安全和穩定的運作,并且能夠被有效地管理。

  接下來,将給大家詳細介紹每個層次,其中将不僅涉及它們的曆史和相關産品,而且将會讨論它們的優勢和采用的技術。

  2.2 SaaS

  它是最常見的,也就是最先出現的雲計算服務,通過 SaaS 這種模式,使用者隻要接上網絡,并通過浏覽器,就能直接使用在雲端上運作的應用,并由 SaaS 雲供應商負責維護和管理雲中的軟硬體設施,同時以免費或者按需使用的方式向使用者收費,是以使用者不需要顧慮類似安裝、更新和防病毒等瑣事,并且免去初期高昂 的硬體投入和軟體許可證費用的支出。

  2.2.1 曆史

  SaaS 的前身是 ASP ( Application Service Provider ),其概念和思想和 SaaS 相差不大。最早的 ASP 廠商有 Salesforce.com 和 Netsuite ,其後還有一批企業跟随進來,這些廠商在創業時都主要專注于線上 CRM (客戶關系管理)應用,但由于那時正值網際網路泡沫破裂的時候,而且當時 ASP 本身技術也并不成熟,而且還缺少定制和內建等重要功能,再加上當時欠佳的網絡環境,使得 ASP 沒有受到市場的熱烈歡迎,進而導緻大批相關廠商破産但在 2003 年後,在 Salesforce 的帶領下,慘存的 ASP 企業喊出了 SaaS 這個口号,并随着技術和商業這兩方面地不斷成熟,使得 Salesforce 、 WebEx 和 Zoho 等國外 SaaS 企業得到了成功,而國内的,諸如用友、金算盤、金碟、阿裡巴巴和八百客等企業也加入到 SaaS 的浪潮中。

  2.2.2 相關産品

  由于 SaaS 産品起步較早,而且開發成本低,是以在現在的市場上, SaaS 産品不論是在數量,還是在類别,都非常豐富,而且也出現了多款經典産品,其中最具代表性的莫過于 Google Apps 、 Salesforce CRM 、 Office Web Apps 和 Zoho :

  (1)    Google Apps :中文名為“ Google 企業應用套件”,提供包括企業版 Gmail 、 Google 月曆、 Google 文檔和 Google 協作平台等多個線上辦公工具,而且價格低廉,使用友善,并且已經有超過兩百萬家企業購買了 Google Apps 服務。

  (2)    Salesforce CRM :它是一款線上客戶管理工具,并在銷售、市場營銷、服務和合作夥伴這四個商業領域上提供完善的 IT 支援,還提供強大的定制和擴充機制,來讓使用者的業務更好地運作在 Salesforce 的平台上。這款産品常被業界視為 SaaS 産品的“開山之作”。

  (3)    Office Web Apps :它是微軟所開發的線上版 Office ,提供基于 Office 2010 技術的簡易版 Word 、 Excel 、 PowerPoint 及 OneNote 等功能,屬于 Windows Live 的一部分,并與微軟的 SkyDrive 雲存儲服務有深度地整合,而且相容 Firefox 、 Safari 和 Chrome 等非 IE 系列浏覽器。和其他線上 Office 相比,它的最大優勢是,由于其本身屬于 Office 2010 的一部分,是以在與 Office 文檔的相容性方面遠勝其他線上 Office 服務。

  (4)    Zoho : Zoho 是 AdventNet 公司開發的一款線上辦公套件,在功能方面絕對是現在業界最全面的,它包括郵件、 CRM 、項目管理、 Wiki 、線上會議、論壇和人力資源管理等幾十個線上工具供使用者選擇。同時包括美國通用電氣在内的多家大中型企業已經開始在其内部引入 Zoho 的線上服務, Zoho 在國内的代理商為百會。

  2.2.3 優勢

  雖然和傳統桌面軟體相比,現有的 SaaS 服務在功能方面還稍遜一籌,但是在其他一些方面還是具有一定的優勢,下面是其中的四個方面:

  (1)    使用簡單:在任何時候或者任何地點,隻要接上網絡,使用者就能通路這個 SaaS 服務,而且無需任何地安裝、更新和維護。

  (2)    支援公開協定:現有的 SaaS 服務都在公開協定(比如 HTML4/5 )的支援方面做的很好,使得使用者隻需一個浏覽器就能對 SaaS 應用進行使用和通路,這樣對使用者而言,非常友善。

  (3)    安全保障: SaaS 供應商需要提供一定的安全機制,不僅要使存儲在雲端的使用者資料處于絕對安全的境地,而且也要通過一定的安全機制(比如 HTTPS 等)來確定與使用者之間通信的安全。

  (4)    初始成本低:使用 SaaS 服務不僅無需在使用前購買昂貴的許可證,而且幾乎所有的 SaaS 供應商都提供免費的試用。

  2.2.4 技術

  由于 SaaS 層離普通使用者非常接近,是以在 SaaS 層所使用到的技術,大多耳熟能詳,下面是其中最主要的五種:

  (1)    HTML :标準的 Web 頁面技術,現在主要以 HTML4 為主,但是即将推出的 HTML5 會在很多方面推動 Web 頁面的發展,比如視訊和本地存儲等方面。

  (2)    JavaScript :一種用于 Web 頁面的動态語言,通過 JavaScript ,能夠極大地豐富 Web 頁面的功能,最流行的 JS 架構有 jQuery 和 Prototype 。

  (3)    CSS :主要用于控制 Web 頁面的外觀,而且能使頁面的内容與其表現形式之間進行優雅地分離。

  (4)    Flash :業界最常用的 RIA ( Rich Internet Applications )技術,能夠在現階段提供 HTML 等技術所無法提供的基于 Web 的富應用,而且在使用者體驗方面,非常不錯。

  (5)    Silverlight :來自業界巨擎微軟的 RIA 技術,雖然其現在市場占有率稍遜于 Flash ,但由于其可以使用 C# 來進行程式設計,是以對開發者非常友好。

  在 SaaS 層的技術選型上,首先,由于通用性和較低的學習成本,大多數雲計算産品都會比較傾向 HTML 、 JavaScript 和 CSS 這對黃金組合,但是在 HTML5 被大家廣泛接受之前, RIA 技術在使用者體驗方面,還是具有一定的優勢,是以 Flash 和 Silverlight 也将會有一定的用武之地,比如 VMware vCloud 就采用了基于 Flash 的 Flex 技術,而微軟的雲計算産品肯定會在今後大量使用 Silverlight 技術。

  2.3 PaaS

  通過 PaaS 這種模式,使用者可以在一個提供 SDK ( Software Development Kit, 即軟體開發工具包)、文檔、測試環境和部署環境等在内的開發平台上非常友善地編寫和部署應用,而且不論是在部署,還是在運作的時候,使用者都無需為伺服器、 作業系統、網絡和存儲等資源的運維而操心,這些繁瑣的工作都由 PaaS 雲供應商負責。而且 PaaS 在整合率上面非常驚人,比如一台運作 Google App Engine 的伺服器能夠支撐成千上萬的應用,也就是說, PaaS 是非常經濟的。 PaaS 主要面對的使用者是開發人員。

  2.3.1 曆史

  PaaS 是雲服務這三層之中出現最晚的,業界第一個 PaaS 平台誕生在 2007 年,是 Salesforce 的 Force.com ,通過這個平台不僅能使用 Salesforce 提供的完善的開發工具和架構來輕松地開發應用,而且能把應用直接部署到 Salesforce 的基礎設施上,進而能利用其強大的多租戶系統。接着,在 2008 年四月, Google 推出了 Google App Engine ,進而将 PaaS 所支援的範圍從線上商業應用擴充到普通的 Web 應用,也使得越來越多的人開始熟悉和使用功能強大的 PaaS 服務。

  2.3.2 相關産品

  和 SaaS 産品百花齊放相比, PaaS 産品主要以少而精為主,其中比較著名的産品有: Force.com 、 Google App Engine 、 Windows Azure Platform 和 Heroku 。

  (1)    Force.com :就像上面所說的 Force.com 是業界第一個 PaaS 平台,其主要通過提供完善的開發環境和強健的基礎設施等來幫助企業和第三方供應商傳遞健壯的、可靠的和可伸縮的線上應用。還有, Force.com 本身是基于 Salesforce 著名的多租戶的架構。

  (2)    Google App Engine : Google App Engine 提供 Google 的基礎設施來讓大家部署應用,它還提供一整套開發工具和 SDK 來加速應用的開發,并提供大量的免費額度來節省使用者的開支。

  (3)    Windows Azure Platform :它是微軟推出的 PaaS 産品,并運作在微軟資料中心的伺服器和網絡基礎設施上的,通過公共網際網路來對外提供服務,它由具有高擴充性雲作業系統、資料存儲網絡和相關服務組成,而且 服務都是通過實體或虛拟的 Windows Server 2008 執行個體提供。還有,其附帶的 Windows Azure SDK (軟體開發包)提供了一整套開發、部署和管理 Windows Azure 雲服務所需要的工具和 API 。

  (4)    Heroku :是一個用于部署 Ruby On Rails 應用的 PaaS 平台,并且其底層基于 Amazon EC2 的 IaaS 服務,而且在 Ruby 程式員中有非常好的口碑。

  2.3.3 優勢

  和現有的基于本地的開發和部署環境相比, PaaS 平台主要有下面這六方面有非常大的優勢:

  (1)    友好的開發環境:通過提供 SDK 和 IDE ( Integrated Development Environment ,內建開發環境)等工具來讓使用者不僅能在本地友善地進行應用的開發和測試,而且能進行遠端部署。

  (2)    豐富的服務: PaaS 平台會以 API 的形式将各種各樣的服務提供給上層的應用。

  (3)    精細的管理和監控: PaaS 能夠提供應用層的管理和監控,比如,能夠觀察應用運作的情況和具體數值(比如吞吐量( Throughput )和響應時間( Response Time )等)來更好地衡量應用的運作狀态,還有能夠通過精确計量應用使用所消耗的資源來更好地計費。

  (4)    伸縮性強: PaaS 平台會自動調整資源來幫助運作于其上的應用更好地應對突發流量。

  (5)    多住戶( Multi-Tenant )機制:許多 PaaS 平台都自帶多住戶機制,不僅能更經濟地支撐龐大的使用者規模,而且能提供一定的可定制性以滿足使用者的特殊需求。

  (6)    整合率和經濟性: PaaS 平台整合率是非常高,比如 PaaS 的代表 Google App Engine 能在一台伺服器上承載成千上萬的應用。

  2.3.4 技術

  在 SaaS 層所采用的技術不同的是, PaaS 層的技術比較多樣性,下面是常見的五種:

  (1)    REST :通過 REST ( Representational State Transfer ,表述性狀态轉移)技術,能夠非常友善和優雅地将中間件層所支撐的部分服務提供給調用者。

  (2)    多租戶:就是能讓一個單獨的應用執行個體可以為多個組織服務,而且能保持良好的隔離性和安全性,并且通過這種技術,能有效地降低應用的購置和維護成本。

  (3)    并行處理:為了處理海量的資料,需要利用龐大的 X86 叢集進行規模巨大的并行處理, Google 的 MapReduce 是這方面的代表之作。

  (4)    應用伺服器:在原有的應用伺服器的基礎上為雲計算做了一定程度的優化,比如用于 Google App Engine 的 Jetty 應用伺服器。

  (5)    分布式緩存:通過分布式緩存技術,不僅能有效地降低對背景伺服器的壓力,而且還能加快相應的反應速度,最著名的分布式緩存例子莫過于 Memcached 。

  對于很多 PaaS 平台,比如用于部署 Ruby 應用的 Heroku 雲平台,應用伺服器和分布式緩存都是必備的,同時 REST 技術也常用于對外的接口,多租戶技術則主要用于 SaaS 應用的背景,比如用于支撐 Salesforce 的 CRM 等應用的 Force.com 多租戶核心,而并行處理技術常被作為單獨的服務推出,比如 Amazon 的 Elastic MapReduce 。

  2.4 IaaS

  通過 IaaS 這種模式,使用者可以從供應商那裡獲得他所需要的計算或者存儲等資源來裝載相關的應用,并隻需為其所租用的那部分資源進行付費,而同時這些基礎設施繁瑣的管理工作則交給 IaaS 供應商來負責。

  2.4.1 曆史

  和 SaaS 一樣,類似 IaaS 想法其實已經出現了很久了,比如,過去的 IDC ( Internet Data Center ,網際網路資料中心)和 VPS ( Virtual Private Server ,虛拟專用伺服器)等,但由于技術、性能、價格和使用等方面的缺失,使得這些服務并沒有得到大中型企業廣泛地采用。但在 2006 年底 Amazon 釋出了 EC2 ( Elastic Compute Cloud ,靈活計算雲)這個 IaaS 雲服務,由于 EC2 在技術和性能等多方面的優勢,使得這類型的技術終于得到業界廣泛地認可和接受,其中就包括部分大型企業,比如著名的紐約時報。

  2.4.2 相關産品

  最具代表性的 IaaS 産品和服務有: Amazon EC2 、 IBM Blue Cloud 、 Cisco UCS 和 Joyent 。

  (1)    Amazon EC2 : EC2 主要以提供不同規格的計算資源(也就是虛拟機)為主,并基于著名的開源虛拟化技術 Xen ,通過 Amazon 的各種優化和創新,使得 EC2 不論在性能上,還是在穩定性上,都已經滿足企業級的需求,而且 Amazon EC2 還提供完善的 API 和 Web 管理界面,來友善使用者的使用。

  (2)    IBM Blue Cloud :“藍雲”解決方案是由 IBM 雲計算中心開發的業界第一個,同時也是在技術上比較領先的企業級雲計算解決方案。該解決方案可以對企業現有的基礎架構進行整合,通過虛拟化技術和自動化管 理技術,來建構企業自己的雲計算中心,并實作對企業硬體資源和軟體資源的統一管理、統一配置設定、統一部署、統一監控和統一備份,也打破了應用對資源的獨占, 進而幫助企業能享受到雲計算所帶來的諸多優越性。

  (3)    Cisco UCS :它是下一代資料中心平台,在一個緊密結合的系統中整合了計算、網絡、存儲與虛拟化功能。該系統包含一個低延時無丢包萬兆以太網統一網絡陣列,以及多台企 業級 x86 架構刀片伺服器等裝置,并在一個統一的管理域中管理所有資源。使用者可以通過在 UCS 上安裝 VMWare vSphere 來支撐多達幾千台虛拟機的運作。通過 Cisco UCS ,能夠讓企業快速在本地資料中心搭建基于虛拟化技術的雲環境。

  (4)    Joyent :它提供基于 Open Solaris 技術的 IaaS 服務,其 IaaS 服務中最核心的,莫屬 Joyent Accelecator ,它能夠為 Web 應用開發人員提供基于标準的、非專有的、按需供應的虛拟化計算和存儲解決方案。基于 Joyent Accelerator ,使用者可以使用具備多核 CPU 、海量記憶體和存儲的伺服器裝置來搭建了自己的網絡服務,并提供超快的通路、處理速度和超高的可靠性。

  2.4.3 優勢     IaaS 服務和傳統的企業資料中心相比,在很多方面都存在一定的優勢,下面是最明顯的五個。

  (1)    免維護:主要的維護工作都有 IaaS 雲供應商負責,是以不必使用者操心。

  (2)    非常經濟:首先免去了使用者前期的硬體購置成本,而且由于 IaaS 雲大都采用虛拟化技術,是以在應用和伺服器的整合率普遍在 10 以上,這樣能有效降低使用成本。

  (3)    開放标準:雖然很多 IaaS 平台都存在一定的私有功能,但是由于 OVF 等應用釋出協定的誕生,使得 IaaS 在跨平台方面穩步前進,進而使得應用能在多個 IaaS 雲上靈活的遷移,而不會被固定在某個企業資料中心内。

  (4)    支援的應用:因為 IaaS 主要是提供虛拟機,而且普通的虛拟機能支援多種作業系統,是以 IaaS 所支援應用的範圍是非常廣泛的。

  (5)    伸縮性強: IaaS 雲隻需幾分鐘就能提供使用者一個新的計算資源,而傳統的企業資料中心則往往需要幾周時間,并且計算資源可以根據使用者需求來調整其資源的大小。

  2.4.4 技術

  在 IaaS 所采用的技術方面,都是一些比較底層的技術,其中有四種技術是比較常用的:

  (1)    虛拟化:也可以了解它為基礎設施層的“多租戶”,因為通過虛拟化技術,能夠在一個實體伺服器上生成多個虛拟機,并且能在這些虛拟機之間能實作全面的隔離, 這樣不僅能減低伺服器的購置成本,而且還能同時降低伺服器的運維成本,成熟的 X86 虛拟化技術有 VMware 的 ESX 和開源的 Xen 。

  (2)    分布式存儲:為了承載海量的資料,同時也要保證這些資料的可管理性,是以需要一整套分布式的存儲系統,在這方面, Google 的 GFS 是典範之作。

  (3)    關系型資料庫:基本是在原有的關系型資料庫的基礎上做了擴充和管理等方面的優化,使其在雲中更适應。

  (4)    NoSQL :為了滿足一些關系資料庫所無法滿足的目标,比如支撐海量的資料等,一些公司特地設計一批不是基于關系模型的資料庫,比如 Google 的 BigTable 和 Facebook 的 Cassandra 等。

  現在大多數的 IaaS 服務都是基于 Xen 的,比如 Amazon 的 EC2 等,但 VMware 也推出了基于 ESX 技術的 vCloud ,同時業界也有幾個基于關系型資料庫的雲服務,比如 Amazon 的 RDS ( Relational Database Service ,關系型資料庫服務)和 Windows Azure SDS ( SQL Data Services , SQL 資料庫服務)等。關于分布式存儲和 NoSQL ,它們已經被廣泛用于雲平台的後端,比如 Google App Engine 的 Datastore 就是基于 BigTable 和 GFS 這兩個技術之上的,而 Amazon 則推出基于 NoSQL 技術的 Simple DB 。

雲計算核心技術剖析

 吳朱華編著 

敬請關注:@圖靈教育(新浪微網誌)

繼續閱讀