1. 程式人生 > >雲端計算平臺簡介

雲端計算平臺簡介

雲端計算:

 

   雲端計算(cloud computing)是基於網際網路的相關服務的增加、使用和交付模式,通常涉及通過網際網路來提供動態易擴充套件且經常是虛擬化的資源。雲是網路、網際網路的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示網際網路和底層基礎設施的抽象。狹義雲端計算指IT基礎設施的交付和使用模式,指通過網路以按需、易擴充套件的方式獲得所需資源;廣義雲端計算指服務的交付和使用模式,指通過網路以按需、易擴充套件的方式獲得所需服務。這種服務可以是IT和軟體、網際網路相關,也可是其他服務。它意味著計算能力也可作為一種商品通過網際網路進行流通。

 

雲端計算平臺:

 

雲端計算平臺[1]可以劃分為3類:以資料儲存為主的儲存型雲平臺

雲平臺

,以資料處理為主的計算型雲平臺以及計算和資料儲存處理兼顧的綜合雲端計算平臺。[1]

 

Amazon、google、IBM、microsoft雲端計算主要平臺:
Amazon的EC2
Google的App Engine
IBM的Blue Cloud
microsoft的Azure

 

一、Amazon的彈性計算雲

Amazon將自己的彈性計算雲建立在公司內部的大規模叢集計算的平臺上,而使用者可以通過彈性計算雲的網路介面去操作在雲端計算平臺上執行的各個例項(instance)。使用者使用例項的付費方式由使用者的使用狀況決定,即使用者只需為自己所使用的計算平臺例項付費,執行結束後計費也隨之結束。這裡所說的例項即是由使用者控制的完整的虛擬機器執行例項。通過這種方式,使用者不必自己去建立雲端計算平臺,節省了裝置與維護費用

亞馬遜是網際網路上最大的線上零售商,但是同時也為獨立開發人員以及開發商提供雲端計算服務平臺。亞馬遜將他們的雲端計算平臺稱為彈性計算雲(Elastic Compute Cloud,EC2),它是最早提供遠端雲端計算平臺服務的公司。

Amazon EC2 (Elastic Compute Cloud)是一個讓使用者可以租用雲電腦執行所需應用的系統。EC2藉由提供web服務的方式讓使用者可以彈性地執行自己的Amazon機器映象檔案,使用者將可以在這個虛擬機器上執行任何自己想要的軟體或應用程式。

使用者可以隨時建立、執行、終止自己的虛擬伺服器,使用多少時間算多少錢,也因此這個系統是"彈性"使用的。EC2讓使用者可以控制執行虛擬伺服器的主機地理位置,這可以讓延遲還有備援性最高。例如,為了讓系統維護時間最短,使用者可以在每個時區都執行自己的虛擬伺服器。Amazon以Amazon Web

Services (AWS)的品牌提供EC2的服務。

EC2的主要特性:

(1)靈活性:可自行配置執行的例項型別、數量,還可以選擇例項執行的地理位置。可以根據使用者的需求隨時改變例項的使用數量。

(2)低成本:按小時計費

(3)安全性:SSH、可配置的防火牆機制、監控等

(4)易用性:使用者可以根據Amazon提供的模組自由構建自己的應用程式,同時EC2還會對使用者的服務請求自動進行負載平衡

(5)容錯性:彈性IP

二、Google 的雲端計算平臺
Google的硬體條件優勢,大型的資料中心、搜尋引擎的支柱應用,促進Google雲端計算迅速發展。Google的雲端計算主要由MapReduce、Google檔案系統(GFS)、BigTable組成。它們是Google內部雲端計算基礎平臺的3個主要部分。Google 還構建其他雲端計算元件,包括一個領域描述語言以及分散式鎖服務機制等。Sawzall是一種建立在MapReduce基礎上的領域語言,專門用於大規模的資訊處理。Chubby是一個高可用、分散式資料鎖服務,當有機器失效時,Chubby使用Paxos演算法來保證備份。

(1)Google File System 檔案系統

  為了滿足Google迅速增長的資料處理需求,Google設計並實現了Google檔案系統(GFS,Google File System)。GFS與過去的分散式檔案系統擁有許多相同的目標,例如效能、可伸縮性、可靠性以及可用性。然而,它的設計還受到Google應用負載和技術環境的影響。主要體現在以下四個方面:

  1. 叢集中的節點失效是一種常態,而不是一種異常。由於參與運算與處理的節點數目非常龐大,通常會使用上千個節點進行共同計算,因此,每時每刻總會有節點處在失效狀態。需要通過軟體程式模組,監視系統的動態執行狀況,偵測錯誤,並且將容錯以及自動恢復系統整合在系統中。

  2. Google系統中的檔案大小與通常檔案系統中的檔案大小概念不一樣,檔案大小通常以G位元組計。另外檔案系統中的檔案含義與通常檔案不同,一個大檔案可能包含大量數目的通常意義上的小檔案。所以,設計預期和引數,例如I/O操作和塊尺寸都要重新考慮。

  3. Google檔案系統中的檔案讀寫模式和傳統的檔案系統不同。在Google應用(如搜尋)中對大部分檔案的修改,不是覆蓋原有資料,而是在檔案尾追加新資料。對檔案的隨機寫是幾乎不存在的。對於這類巨大檔案的訪問模式,客戶端對資料塊快取失去了意義,追加操作成為效能優化和原子性(把一個事務看做是一個程式。它要麼被完整地執行,要麼完全不執行)保證的焦點。

  4. 檔案系統的某些具體操作不再透明,而且需要應用程式的協助完成,應用程式和檔案系統API的協同設計提高了整個系統的靈活性。例如,放鬆了對GFS一致性模型的要求,這樣不用加重應用程式的負擔,就大大簡化了檔案系統的設計。還引入了原子性的追加操作,這樣多個客戶端同時進行追加的時候,就不需要額外的同步操作了。

(2)MapReduce分散式程式設計環境

  為了讓內部非分散式系統方向背景的員工能夠有機會將應用程式建立在大規模的叢集基礎之上,Google還設計並實現了一套大規模資料處理的程式設計規範Map/Reduce系統。這樣,非分散式專業的程式編寫人員也能夠為大規模的叢集編寫應用程式而不用去顧慮叢集的可靠性、可擴充套件性等問題。應用程式編寫人員只需要將精力放在應用程式本身,而關於叢集的處理問題則交由平臺來處理。

  Map/Reduce通過“Map(對映)”和“Reduce(化簡)”這樣兩個簡單的概念來參加運算,使用者只需要提供自己的Map函式以及Reduce函式就可以在叢集上進行大規模的分散式資料處理。

(3)分散式大規模資料庫管理系統BigTable

  構建於上述兩項基礎之上的第三個雲端計算平臺就是Google關於將資料庫系統擴充套件到分散式平臺上的BigTable系統。很多應用程式對於資料的組織還是非常有規則的。一般來說,資料庫對於處理格式化的資料還是非常方便的,但是由於關係資料庫很強的一致性要求,很難將其擴充套件到很大的規模。為了處理Google內部大量的格式化以及半格式化資料,Google構建了弱一致性要求的大規模資料庫系統BigTable。

三、IBM“藍雲”計算平臺

“藍雲”解決方案是由IBM雲端計算中心開發的企業級雲端計算解決方案。該解決方案可以對企業現有的基礎架構進行整合,通過虛擬化技術和自動化技術,構建企業自己擁有的雲端計算中心,實現企業硬體資源和軟體資源的統一管理、統一分配、統一部署、統一監控和統一備份,打破應用對資源的獨佔,從而幫助企業實現雲端計算理念。

IBM在2007年11月15日推出了藍雲端計算平臺,為客戶帶來即買即用的雲端計算平臺。它包括一系列的雲端計算產品,使得計算不僅僅侷限在本地機器或遠端伺服器農場(即伺服器叢集),通過架構一個分散式、可全球訪問的資源結構,使得資料中心在類似於網際網路的環境下執行計算。“藍雲”建立在IBM大規模計算領域的專業技術基礎上,基於由IBM軟體、系統技術和服務支援的開放標準和開源軟體。簡單地說,“藍雲”基於IBM Almaden研究中心(Almaden Research Center)的雲基礎架構,包括Xen和PowerVM虛擬化、Linux作業系統映像以及Hadoop檔案系統與並行構建。“藍雲”由IBM Tivoli軟體支援,通過管理伺服器來確保基於需求的最佳效能。這包括通過能夠跨越多伺服器實時分配資源的軟體,為客戶帶來一種無縫體驗,加速效能並確保在最苛刻環境下的穩定性。藍雲端計算平臺由一個數據中心: IBM Tivoli部署管理軟體(Tivoli Provisioning Manager)、IBM Tivoli監控軟體(IBM Tivoli Monitoring)、IBM WebSphere應用伺服器、IBM DB2資料庫以及一些虛擬化的元件共同組成。

藍雲的硬體平臺並沒有什麼特殊的地方,但是藍雲使用的軟體平臺相較於以前的分散式平臺具有不同的地方,主要體現在對與虛擬機器的使用以及對於大規模資料處理軟體Apache Hadoop的部署。

(1)“藍雲”中的虛擬化

虛擬化的方式在雲端計算中可以在兩個級別上實現。一個級別是在硬體級別上實現虛擬化。硬體級別的虛擬化可以使用IBM p系列的伺服器,獲得硬體的邏輯分割槽LPAR。邏輯分割槽的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使得相應的資源合理地分配到各個邏輯分割槽。P系列系統的邏輯分割槽最小粒度是1/10顆中央處理器(CPU)。

  虛擬化的另外一個級別可以通過軟體來獲得,在藍雲端計算平臺中使用了Xen虛擬化軟體。Xen也是一個開源的虛擬化軟體,能夠在現有的Linux基礎之上執行另外一個作業系統,並通過虛擬機器的方式靈活地進行軟體部署和操作。

  通過虛擬機器的方式進行雲計算資源的管理具有特殊的好處。由於虛擬機器是一類特殊的軟體,能夠完全模擬硬體的執行,因此能夠在上面執行作業系統,進而能夠保留一整套執行環境語義。這樣,可以將整個執行環境通過打包的方式傳輸到其他物理節點上,這樣就能夠使得執行環境與物理環境隔離,方便整個應用程式模組的部署。總體上來說,通過將虛擬化的技術應用到雲端計算的平臺,可以獲得一些良好的特性:

  1. 雲端計算的管理平臺能夠動態地將計算平臺定位到所需要的物理平臺上,而無需停止執行在虛擬機器平臺上的應用程式,這比採用虛擬化技術之前的程序遷移方法更加靈活。

  2. 能夠更加有效率地使用主機資源,將多個負載不是很重的虛擬機器計算節點合併到同一個物理節點上,從而能夠關閉空閒的物理節點,達到節約電能的目的。

  3. 通過虛擬機器在不同物理節點上的動態遷移,能夠獲得與應用無關的負載平衡效能。由於虛擬機器包含了整個虛擬化的作業系統以及應用程式環境,因此在進行遷移的時候帶著整個執行環境,達到了與應用無關的目的。

  4. 在部署上也更加靈活,即可以將虛擬機器直接部署到物理計算平臺當中。

(2)“藍雲”中的儲存結構

  藍雲端計算平臺中的儲存體系結構對於雲端計算來說也是非常重要的,無論是作業系統,服務程式還是使用者應用程式的資料都儲存在儲存體系中。雲端計算並不排斥任何一種有用的儲存體系結構,而是需要跟應用程式的需求結合起來獲得最好的效能提升。總體上來說,雲端計算的儲存體系結構包含類似於Google File System的叢集檔案系統以及基於塊裝置方式的儲存區域網路SAN兩種方式。

  在設計雲端計算平臺的儲存體系結構的時候,不僅僅是需要考慮儲存的容量。實際上隨著硬碟容量的不斷擴充以及硬碟價格的不斷下降,使用當前的磁碟技術,可以很容易通過使用多個磁碟的方式獲得很大的磁碟容量。相較於磁碟的容量,在雲端計算平臺的儲存中,磁碟資料的讀寫速度是一個更重要的問題。單個磁碟的速度很有可能限制應用程式對於資料的訪問,因此在實際使用的過程中,需要將資料分佈到多個磁碟之上,並且通過對於多個磁碟的同時讀寫以達到提高速度的目的。在雲端計算平臺中,資料如何放置是一個非常重要的問題,在實際使用的過程中,需要將資料分配到多個節點的多個磁碟當中。而能夠達到這一目的的儲存技術趨勢當前有兩種方式,一種是使用類似於Google File System的叢集檔案系統,另外一種是基於塊裝置的儲存區域網路SAN系統。

  Google檔案系統在前面已經做過一定的描述。在IBM的藍雲端計算平臺中使用的是它的開源實現Hadoop HDFS (Hadoop Distributed File System)。這種使用方式將磁碟附著於節點的內部,並且為外部提供一個共享的分散式檔案系統空間,並且在檔案系統級別做冗餘以提高可靠性。在合適的分散式資料處理模式下,這種方式能夠提高總體的資料處理效率。Google檔案系統的這種架構與SAN系統有很大的不同。

  SAN系統也是雲端計算平臺的另外一種儲存體系結構選擇,在藍雲平臺上也有一定的體現,IBM也提供SAN的平臺能夠接入到藍雲端計算平臺中。

  SAN系統是在儲存端構建儲存的網路,將多個儲存裝置構成一個儲存區域網路。前端的主機可以通過網路的方式訪問後端的儲存裝置。而且,由於提供了塊裝置的訪問方式,與前端作業系統無關。在SAN連線方式上,可以有多種選擇。一種選擇是使用光纖網路,能夠操作快速的光纖磁碟,適合於對效能與可靠性要求比較高的場所。另外一種選擇是使用乙太網,採取iSCSI協議,能夠執行在普通的區域網環境下,從而降低了成本。由於儲存區域網路中的磁碟裝置並沒有與某一臺主機繫結在一起,而是採用了非常靈活的結構,因此對於主機來說可以訪問多個磁碟裝置,從而能夠獲得性能的提升。在儲存區域網路中,使用虛擬化的引擎來進行邏輯裝置到物理裝置的對映,管理前端主機到後端資料的讀寫。因此虛擬化引擎是儲存區域網路中非常重要的管理模組。

  SAN系統與分散式檔案系統例如Google File System並不是相互對立的系統,而是在構建集群系統的時候可供選擇的兩種方案。其中,在選擇SAN系統的時候,為了應用程式的讀寫,還需要為應用程式提供上層的語義介面,此時就需要在SAN之上構建檔案系統。而Google File System正好是一個分散式的檔案系統,因此能夠建立在SAN系統之上。總體來說,SAN與分散式檔案系統都可以提供類似的功能,例如對於出錯的處理等。至於如何使用還是需要由建立在雲端計算平臺之上的應用程式來決定。

  與Google不同的是,IBM並沒有基於雲端計算提供外部可訪問的網路應用程式。這主要是由於IBM並不是一個網路公司,而是一個IT的服務公司。當然,IBM內部以及IBM未來為客戶提供的軟體服務會基於雲端計算的架構。

四、 微軟雲端計算平臺:Windows Azure

Windows Azure是微軟基於雲端計算的作業系統,和Azure Services Platform一樣,是微軟“軟體和服務”技術的名稱。Windows Azure的主要目標是為開發者提供一個平臺,幫助開發可執行在雲伺服器、資料中心、Web和PC上的應用程式。雲端計算的開發者能使用微軟全球資料中心的儲存、計算能力和網路基礎服務。Azure服務平臺包括了以下主要元件:Windows Azure;Microsoft SQL資料庫服務,Microsoft .Net服務;用於分享、儲存和同步檔案的Live服務;針對商業的Microsoft SharePoint和Microsoft Dynamics CRM服務。

The Azure Services Platform (Azure)是一個網際網路級的運行於微軟資料中心繫統上的雲端計算服務平臺,它提供作業系統和可以單獨或者一起使用的開發者服務。Azure是一種靈活和支援互操作的平臺,它可以被用來建立雲中執行的應用或者通過基於雲的特性來加強現有應用。它開放式的架構給開發者提供了Web應用、互聯裝置的應用、個人電腦、伺服器、或者提供最優線上複雜解決方案的選擇。

Windows Azure以雲技術為核心,提供了軟體+服務的計算方法。它是Azure服務平臺的基礎。Azure用於幫助開發者開發可以跨越雲端和專業資料中心的下一代應用程式,在PC、Web和手機等各種終端間創造完美的使用者體驗。

Azure能夠將處於雲端的開發者個人能力,同微軟全球資料中心網路託管的服務,比如儲存、計算和網路基礎設施服務,緊密結合起來。這樣,開發者就可以在“雲端”和“客戶端”同時部署應用,使得企業與使用者都能共享資源。

Windows Azure是專為在微軟建設的資料中心管理所有伺服器,網路以及儲存資源所開發的一種特殊版本Windows Server作業系統,它具有針對資料中心架構的自我管理(autonomous)機能,可以自動監控劃分在資料中心數個不同的分割槽(微軟將這些分割槽稱為Fault Domain)的所有伺服器與儲存資源,自動更新補丁,自動執行虛擬機器部署與映象備份(Snapshot Backup)等能力,Windows Azure被安裝在資料中心的所有伺服器中,並且定時和中控軟體:WindowsAzure Fabric Controller進行溝通,接收指令以及回傳執行狀態資料等等,系統管理人員只要通過Windows Azure Fabric Controller就能夠掌握所有伺服器的執行狀態,Fabric Controller本身是融合了很多微軟系統管理技術的總成,包含對虛擬機器的管理(System Center Virtual Machine Manager),對作業環境的管理(System Center Operation Manager),以及對軟體部署的管理(System Center Configuration Manager)等,在Fabric Controller中被髮揮得淋漓盡致,如此才能夠達成通過Fabric Controller來管理在資料中心中所有伺服器的能力。

Azure服務平臺的設計目標是用來幫開發者更容易地建立web和互聯裝置的應用程式。它提供了最大限度的靈活性、選擇和使用現有技術連線使用者和客戶的控制。Windows Azure服務平臺現在已經包含如下功能:網站、虛擬機器、雲服務、移動應用服務、大資料支援以及媒體功能的支援。

(1)網站

允許使用 ASP.NET、PHP 或 Node.js 構建,並使用 FTP、Git 或 TFS 進行快速部署。支援 SQL Database、Caching、CDN及Storage。

(2)Virtual Machines

在Windows Azure上您可以輕鬆部署並執行 Windows Server 和 Linux 虛擬機器。遷移應用程式和基礎結構,而無需更改現有程式碼。支援 Windows Virtual Machines、Linux Virtual Machines、Storage、Virtual Network、 Identity等功能。

(3)Cloud Services

是Windows Azure 中的企業級雲平臺,使用富平臺即服務 (PaaS) 環境建立高度可用的且可無限縮放的應用程式和服務。支援多層方案、自動化部署和靈活縮放。支援Cloud Services、SQL Database、Caching、Business Analytics、Service Bus、Identity

(4)Mobile 服務

是Windows Azure提供的移動應用程式的完整後端解決方案,加速連線的客戶端應用程式開發。在幾分鐘內併入結構化儲存、使用者身份驗證和推送通知。支援SQL Database、Mobile 服務。

(5)大型資料處理

Windows Azure 提供的海量資料處理能力,可以從資料中獲取可執行洞察力,利用完全相容的企業準備就緒 Hadoop 服務。PaaS 產品/服務提供了簡單的管理,並與 Active Directory 和 System Center 整合。支援Hadoop、Business Analytics、Storage、SQL Database、及線上商店 Marketplace。

(6)Media 媒體支援

支援插入、編碼、保護、流式處理,可以在雲中建立、管理和分發媒體。此 PaaS 產品/服務提供從編碼到內容保護再到流式處理和分析支援的所有內容。支援CDN及Storage儲存。