央視網|中國網絡電視臺|網站地圖
客服設為首頁
登錄

中國網絡電視臺 > 新聞臺 > 新聞 >

雲計算技術的産生、概念、原理、應用和前景

發佈時間:2010年09月02日 15:51 | 進入復興論壇 | 來源:新華網

評分
意見反饋 意見反饋 頂 踩 收藏 收藏
壟!-- /8962/web_cntv/dicengye_huazhonghua01 -->

更多 今日話題

壟!-- /8962/web_cntv/dicengye_huazhonghua02 -->

更多 24小時排行榜

壟!-- /8962/web_cntv/dicengye_huazhonghua03 -->

  2006年谷歌推出了“Google 101計劃”,並正式提出“雲”的概念和理論。隨後亞馬遜、微軟、惠普、雅虎、英特爾、IBM等公司都宣佈了自己的“雲計劃”,雲安全、雲存儲、內部雲、外部雲、公共雲、私有雲……一堆讓人眼花繚亂的概念在不斷衝擊人們的神經。那麼到底什麼是雲計算技術呢?對雲計算技術的産生、概念、原理、應用和前景又在哪?

  一、雲計算思想的産生

  傳統模式下,企業建立一套IT系統不僅僅需要購買硬體等基礎設施,還有買軟體的許可證,需要專門的人員維護。當企業的規模擴大時還要繼續升級各種軟硬體設施以滿足需要。對於企業來説,計算機等硬體和軟體本身並非他們真正需要的,它們僅僅是完成工作、提供效率的工具而已。對個人來説,我們想正常使用電腦需要安裝許多軟體,而許多軟體是收費的,對不經常使用該軟體的用戶來説購買是非常不划算的。可不可以有這樣的服務,能夠提供我們需要的所有軟體供我們租用?這樣我們只需要在用時付少量“租金”即可“租用”到這些軟體服務,為我們節省許多購買軟硬體的資金。

  我們每天都要用電,但我們不是每家自備發電機,它由電廠集中提供;我們每天都要用自來水,但我們不是每家都有井,它由自來水廠集中提供。這種模式極大得節約了資源,方便了我們的生活。面對計算機給我們帶來的困擾,我們可不可以像使用水和電一樣使用計算機資源?這些想法最終導致了雲計算的産生。

  雲計算的最終目標是將計算、服務和應用作為一種公共設施提供給公眾,使人們能夠像使用水、電、煤氣和電話那樣使用計算機資源。

  雲計算模式即為電廠集中供電模式。在雲計算模式下,用戶的計算機會變的十分簡單,或許不大的內存、不需要硬盤和各種應用軟體,就可以滿足我們的需求,因為用戶的計算機除了通過瀏覽器給“雲”發送指令和接受數據外基本上什麼都不用做便可以使用雲服務提供商的計算資源、存儲空間和各種應用軟體。這就像連接“顯示器” 和“主機”的電線無限長,從而可以把顯示器放在使用者的面前,而主機放在遠到甚至計算機使用者本人也不知道的地方。雲計算把連接“顯示器”和“主機”的電線變成了網絡,把“主機”變成雲服務提供商的服務器集群。

  在雲計算環境下,用戶的使用觀念也會發生徹底的變化:從“購買産品”到“購買服務”轉變,因為他們直接面對的將不再是複雜的硬體和軟體,而是最終的服務。用戶不需要擁有看得見、摸得著的硬體設施,也不需要為機房支付設備供電、空調製冷、專人維護等等費用,並且不需要等待漫長的供貨週期、項目實施等冗長的時間,只需要把錢匯給雲計算服務提供商,我們將會馬上得到需要的服務。

  二、雲計算的概念

  雲計算(Cloud Computing)是由分佈式計算(Distributed Computing)、並行處理(Parallel Computing)、網格計算(Grid Computing)發展來的,是一種新興的商業計算模型。目前,對於雲計算的認識在不斷的發展變化,雲計算沒仍沒有普遍一致的定義。

  中國網格計算、雲計算專家劉鵬給出如下定義 :“雲計算將計算任務分佈在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟體服務”。

  狹義的雲計算指的是廠商通過分佈式計算和虛擬化技術搭建數據中心或超級計算機,以免費或按需租用方式向技術開發者或者企業客戶提供數據存儲、分析以及科學計算等服務,比如亞馬遜數據倉庫出租生意。

  廣義的雲計算指廠商通過建立網絡服務器集群,向各種不同類型客戶提供在線軟體服務、硬體租借、數據存儲、計算分析等不同類型的服務。廣義的雲計算包括了更多的廠商和服務類型,例如國內用友、金蝶等管理軟體廠商推出的在線財務軟體,谷歌發佈的Google應用程序套裝等。

  通俗的理解是,雲計算的“雲“就是存在於互聯網上的服務器集群上的資源,它包括硬體資源(服務器、存儲器、CPU等)和軟體資源(如應用軟體、集成開發環境等),本地計算機只需要通過互聯網發送一個需求信息,遠端就會有成千上萬的計算機為你提供需要的資源並將結果返回到本地計算機,這樣,本地計算機幾乎不需要做什麼,所有的處理都在雲計算提供商所提供的計算機群來完成。

  三、雲計算的主要服務形式和典型應用

  雲計算還處於萌芽階段,有龐雜的各類廠商在開發不同的雲計算服務。雲計算的表現形式多種多樣,簡單的雲計算在人們日常網絡應用中隨處可見,比如騰訊QQ空間提供的在線製作Flash圖片,Google的搜索服務,Google Doc, Google Apps等。目前,雲計算的主要服務形式有:SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service)。

  (1)軟體即服務(SaaS)

  SaaS服務提供商將應用軟體統一部署在自己的服務器上,用戶根據需求通過互聯網向廠商訂購應用軟體服務,服務提供商根據客戶所定軟體的數量、時間的長短等因素收費,並且通過瀏覽器向客戶提供軟體的模式。這種服務模式的優勢是,由服務提供商維護和管理軟體、提供軟體運行的硬體設施,用戶只需擁有能夠接入互聯網的終端,即可隨時隨地使用軟體。這種模式下,客戶不再像傳統模式那樣花費大量資金在硬體、軟體、維護人員,只需要支出一定的租賃服務費用,通過互聯網就可以享受到相應的硬體、軟體和維護服務,這是網絡應用最具效益的營運模式。對於小型企業來説,SaaS是採用先進技術的最好途徑。

  以企業管理軟體來説,SaaS模式的雲計算ERP可以讓客戶根據併發用戶數量、所用功能多少、數據存儲容量、使用時間長短等因素不同組合按需支付服務費用,既不用支付軟體許可費用,也不需要支付採購服務器等硬體設備費用,也不需要支付購買操作系統、數據庫等平臺軟體費用,也不用承擔軟體項目定制、開發、實施費用,也不需要承擔IT維護部門開支費用,實際上雲計算ERP正是繼承了開源ERP免許可費用只收服務費用的最重要特徵,是突出了服務的ERP産品。

  目前,Salesforce.com是提供這類服務最有名的公司,Google Doc, Google Apps和Zoho Office也屬於這類服務。

  (2)平臺即服務(PaaS)

  把開發環境作為一種服務來提供。這是一種分佈式平臺服務,廠商提供開發環境、服務器平臺、硬體資源等服務給客戶,用戶在其平臺基礎上定制開發自己的應用程序並通過其服務器和互聯網傳遞給其他客戶。PaaS能夠給企業或個人提供研發的中間件平臺,提供應用程序開發、數據庫、應用服務器、試驗、託管及應用服務。

  Google App Engine, Salesforce的force.com平臺,八百客的800APP是PaaS的代表産品。以Google App Engine為例,它是一個由python應用服務器群、BigTable數據庫及GFS組成的平臺,為開發者提供一體化主機服務器及可自動升級的在線應用服務。用戶編寫應用程序並在Google的基礎架構上運行就可以為互聯網用戶提供服務,Google提供應用運行及維護所需要的平台資源。

  (3)基礎設施服務(IaaS)

  IaaS即把廠商的由多臺服務器組成的“雲端”基礎設施,作為計量服務提供給客戶。它將內存、I/O設備、存儲和計算能力整合成一個虛擬的資源池為整個業界提供所需要的存儲資源和虛擬化服務器等服務。這是一種託管型硬體方式,用戶付費使用廠商的硬體設施。例如Amazon Web服務(AWS), IBM的BlueCloud等均是將基礎設施作為服務出租。

  IaaS的優點是用戶只需低成本硬體,按需租用相應計算能力和存儲能力,大大降低了用戶在硬體上的開銷。

  目前,以Google雲應用最具代表性,例如GoogleDocs、GoogleApps、Googlesites,雲計算應用平臺GoogleApp Engine。

  GoogleDocs是最早推出的雲計算應用,是軟體即服務思想的典型應用。它是類似于微軟的Office的在線辦公軟體。它可以處理和搜索文檔、表格、幻燈片,並可以通過網絡和他人分享並設置共享權限。Google文件是基於網絡的文字處理和電子錶格程序,可提高協作效率,多名用戶可同時在線更改文件,並可以實時看到其他成員所作的編輯。用戶只需一台接入互聯網的計算機和可以使用Google文件的標準瀏覽器即可在線創建和管理、實時協作、權限管理、共享、搜索能力、修訂歷史記錄功能,以及隨時隨地訪問的特性,大大提高了文件操作的共享和協同能力。

  GoogleAPPs是Google企業應用套件,使用戶能夠處理日漸龐大的信息量,隨時隨地保持聯絡,並可與其他同事、客戶和合作夥伴進行溝通、共享和協作。它集成了Cmail、GoogleTalk、Google日曆、GoogleDocs、以及最新推出的雲應用GoogleSites、API擴展以及一些管理功能,包含了通信、協作與發佈、管理服務三方面的應用,並且擁有著雲計算的特性,能夠更好的實現隨時隨地協同共享。另外,它還具有低成本的優勢和託管的便捷,用戶無需自己維護和管理搭建的協同共享平臺。

  Googlesites是Google最新發佈的雲計算應用,作為GoogleApps的一個組件出現。它是一個側重於團隊協作的網站編輯工具,可利用它創建一個各種類型的團隊網站,通過Googlesites可將所有類型的文件包括文檔、視頻、相片、日曆及附件等與好友、團隊或整個網絡分享。

  Google AppEngine是Google在2008年4月發佈的一個平臺,使用戶可以在Google的基礎架構上開發和部署運行自己的應用程序。目前,Google AppEngine支持Python語言和Java語言,每個Google AppEngine應用程序可以使用達到500MB的持久存儲空間及可支持每月500萬綜合瀏覽量的帶寬和CPU。並且,Google AppEngine應用程序易於構建和維護,並可根據用戶的訪問量和數據存儲需要的增長輕鬆擴展。同時,用戶的應用可以和Google的應用程序集成,Google AppEngine還推出了軟體開發套件(SDK),包括可以在用戶本地計算機上模擬所有Google AppEngine服務的網絡服務器應用程序。

  四、雲計算的核心技術

  雲計算系統運用了許多技術,其中以編程模型、數據管理技術、數據存儲技術、虛擬化技術、雲計算平臺管理技術最為關鍵。

  (1)編程模型

  MapReduce是Google開發的java、Python、C++編程模型,它是一種簡化的分佈式編程模型和高效的任務調度模型,用於大規模數據集(大於1TB)的並行運算。嚴格的編程模型使雲計算環境下的編程十分簡單。MapReduce模式的思想是將要執行的問題分解成Map(映射)和Reduce(化簡)的方式,先通過Map程序將數據切割成不相關的區塊,分配(調度)給大量計算機處理,達到分佈式運算的效果,再通過Reduce程序將結果匯整輸出。

  (2) 海量數據分佈存儲技術

  雲計算系統由大量服務器組成,同時為大量用戶服務,因此雲計算系統採用分佈式存儲的方式存儲數據,用冗余存儲的方式保證數據的可靠性。雲計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS。

  GFS即Google文件系統(Google File System),是一個可擴展的分佈式文件系統,用於大型的、分佈式的、對大量數據進行訪問的應用。GFS的設計思想不同於傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的。它運行于廉價的普通硬體上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。

  一個GFS集群由一個主服務器(master)和大量的塊服務器(chunkserver)構成,並被許多客戶(Client)訪問。主服務器存儲文件系統所以的元數據,包括名字空間、訪問控制信息、從文件到塊的映射以及塊的當前位置。它也控制系統範圍的活動,如塊租約(lease)管理,孤兒塊的垃圾收集,塊服務器間的塊遷移。主服務器定期通過HeartBeat消息與每一個塊服務器通信,給塊服務器傳遞指令並收集它的狀態。GFS中的文件被切分為64MB的塊並以冗余存儲,每份數據在系統中保存3個以上備份。

  客戶與主服務器的交換只限于對元數據的操作,所有數據方面的通信都直接和塊服務器聯絡,這大大提高了系統的效率,防止主服務器負載過重。

  (3) 海量數據管理技術

  雲計算需要對分佈的、海量的數據進行處理、分析,因此,數據管理技術必需能夠高效的管理大量的數據。雲計算系統中的數據管理技術主要是Google的BT(BigTable)數據管理技術和Hadoop團隊開發的開源數據管理模塊HBase。

  BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一個大型的分佈式數據庫,與傳統的關系數據庫不同,它把所有數據都作為對象來處理,形成一個巨大的表格,用來分佈存儲大規模結構化數據。

  Google的很多項目使用BT來存儲數據,包括網頁查詢,Google earth和Google金融。這些應用程序對BT的要求各不相同:數據大小(從URL到網頁到衛星圖象)不同,反應速度不同(從後端的大批處理到實時數據服務)。對於不同的要求,BT都成功的提供了靈活高效的服務。

  (4)虛擬化技術

  通過虛擬化技術可實現軟體應用與底層硬體相隔離,它包括將單個資源劃分成多個虛擬資源的裂分模式,也包括將多個資源整合成一個虛擬資源的聚合模式。虛擬化技術根據對象可分成存儲虛擬化、計算虛擬化、網絡虛擬化等,計算虛擬化又分為系統級虛擬化、應用級虛擬化和桌面虛擬化。

  (5)雲計算平臺管理技術

  雲計算資源規模龐大,服務器數量眾多並分佈在不同的地點,同時運行著數百種應用,如何有效的管理這些服務器,保證整個系統提供不間斷的服務是巨大的挑戰。

  雲計算系統的平臺管理技術能夠使大量的服務器協同工作,方便的進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智慧化的手段實現大規模系統的可靠運營。

  五、典型雲計算平臺介紹

  由於雲計算技術範圍很廣,目前各大IT企業提供的雲計算服務主要根據自身的特點和優勢實現的。下面以Google、IBM、Amazon為例説明:

  (1)Google 的雲計算平臺

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

  (2)IBM“藍雲”計算平臺

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

  IBM 的“藍雲”計算平臺是一套軟、硬體平臺,將Internet上使用的技術擴展到企業平臺上,使得數據中心使用類似于互聯網的計算環境。“藍雲”大量使用了IBM先進的大規模計算技術,結合了IBM自身的軟、硬體系統以及服務技術,支持開放標準與開放源代碼軟體。

  “藍雲”基於IBM Almaden研究中心的雲基礎架構,採用了Xen和PowerVM虛擬化軟體,Linux操作系統映像以及Hadoop軟體(Google File System以及MapReduce的開源實現)。IBM已經正式推出了基於x86芯片服務器系統的“藍雲”産品。下圖為IBM “藍雲”的架構:

  由圖可知,“藍雲”計算平臺由一個數據中心、IBM Tivoli部署管理軟體(Tivoli provisioning manager)、IBM Tivoli監控軟體(IBM Tivoli monitoring)、IBM WebSphere應用服務器、IBM DB2數據庫以及一些開源信息處理軟體和開源虛擬化軟體共同組成。“藍雲”的硬體平臺環境與一般的x86服務器集群類似,使用刀片的方式增加了計算密度。“藍雲”軟體平臺的特點主要體現在虛擬機以及對於大規模數據處理軟體Apache Hadoop的使用上。

  “藍雲”平臺的一個重要特點是虛擬化技術的使用。虛擬化的方式在“藍雲”中有兩個級別,一個是在硬體級別上實現虛擬化,另一個是通過開源軟體實現虛擬化。硬體級別的虛擬化可以使用IBM p系列的服務器,獲得硬體的邏輯分區LPAR(logic partition)。邏輯分區的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使相應的資源合理地分配到各個邏輯分區。p系列系統的邏輯分區最小粒度是1/10顆CPU。Xen則是軟體級別上的虛擬化,能夠在Linux基礎上運行另外一個操作系統。

  虛擬機是一類特殊的軟體,能夠完全模擬硬體的執行,運行不經修改的完整的操作系統,保留了一整套運行環境語義。通過虛擬機的方式,在雲計算平臺上獲得如下一些優點 :

  1)雲計算的管理平臺能夠動態地將計算平臺定位到所需要的物理節點上, 而無須停止運行在虛擬機平臺上的應用程序,進程遷移方法更加靈活;

  2)降低集群電能消耗,將多個負載不是很重的虛擬機計算節點合併到同一個物理節點上,從而能夠關閉空閒的物理節點,達到節約電能的目的;

  3)通過虛擬機在不同物理節點上的動態遷移,遷移了整體的虛擬運行環境,能夠獲得與應用無關的負載平衡性能;

  4)在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺上,而虛擬機本身就包括了相應的操作系統以及相應的應用軟體,直接將大量的虛擬機映像複製到對應的物理節點即可。

  “藍雲”計算平台中的存儲體系結構:“藍雲”計算平台中的存儲體系結構對於雲計算來説也是非常重要的,無論是操作系統、服務程序還是用戶的應用程序的數據都保存在存儲體系中。“藍雲”存儲體系結構包含類似于Google File System 的集群文件系統以及基於塊設備方式的存儲區域網絡SAN。

  在設計雲計算平臺的存儲體系結構時,可以通過組合多個磁盤獲得很大的磁盤容量。相對於磁盤的容量,在雲計算平臺的存儲中,磁盤數據的讀寫速度是一個更重要的問題,因此需要對多個磁盤進行同時讀寫。這種方式要求將數據分配到多個節點的多個磁盤當中。為達到這一目的,存儲技術有兩個選擇,一個是使用類似于Google File System的集群文件系統,另一個是基於塊設備的存儲區域網絡SAN系統。

  在藍雲計算平臺上,SAN 系統與分佈式文件系統(例如Google File System)並不是相互對立的系統,SAN提供的是塊設備接口,需要在此基礎上構建文件系統,才能被上層應用程序所使用。而Google File System正好是一個分佈式的文件系統,能夠建立在SAN之上。兩者都能提供可靠性、可擴展性,至於如何使用還需要由建立在雲計算平臺上的應用程序來決定,這也體現了計算平臺與上層應用相互協作的關係。

  (3)Amazon的彈性計算雲

  Amazon是互聯網上最大的在線零售商,為了應付交易高峰,不得不購買了大量的服務器。而在大多數時間,大部分服務器閒置,造成了很大的浪費,為了合理利用空閒服務器,Amazon建立了自己的雲計算平臺彈性計算雲EC2(elastic compute cloud),並且是第一家將基礎設施作為服務出售的公司。

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

  上圖為EC2系統的使用模式。從圖中可以看出,彈性計算雲用戶使用客戶端通過SOAP over HTTPS協議與Amazon彈性計算雲內部的實例進行交互。這樣,彈性計算雲平臺為用戶或者開發人員提供了一個虛擬的集群環境,在用戶具有充分靈活性的同時,也減輕了雲計算平臺擁有者(Amazon公司)的管理負擔。彈性計算雲中的每一個實例代表一個運行中的虛擬機。用戶對自己的虛擬機具有完整的訪問權限,包括針對此虛擬機操作系統的管理員權限。虛擬機的收費也是根據虛擬機的能力進行費用計算的,實際上,用戶租用的是虛擬的計算能力。

  總而言之,Amazon通過提供彈性計算雲,滿足了小規模軟體開發人員對集群系統的需求,減小了維護負擔。其收費方式相對簡單明了:用戶使用多少資源,只需為這一部分資源付費即可。

  為了彈性計算雲的進一步發展,Amazon規劃了如何在雲計算平臺基礎上幫助用戶開發網絡化的應用程序。除了網絡零售業務以外,雲計算也是Amazon公司的核心價值所在。Amazon將來會在彈性計算雲的平臺基礎上添加更多的網絡服務組件模塊,為用戶構建雲計算應用提供方便。

  六、雲計算技術發展面臨的主要問題

  儘管雲計算模式具有許多優點,但是也存在的一些問題,如數據隱私問題、安全問題、軟體許可證問題、網絡傳輸問題等。

   數據隱私問題:如何保證存放在雲服務提供商的數據隱私,不被非法利用,不僅需要技術的改進,也需要法律的進一步完善。

   數據安全性:有些數據是企業的商業機密,數據的安全性關係到企業的生存和發展。雲計算數據的安全性問題解決不了會影響雲計算在企業中的應用。

   用戶使用習慣:如何改變用戶的使用習慣,使用戶適應網絡化的軟硬體應用是長期而艱巨的挑戰。

   網絡傳輸問題:雲計算服務依賴網絡,目前網速低且不穩定,使雲應用的性能不高。雲計算的普及依賴網絡技術的發展。