云计算的概况和发展:Ubiquitous Supercomputing Power
引言:
近年來, 業界對高級計算能力的需求的日益增長,導致了信息技術的突破和數據科學的崛起。其中,云計算作為分布式計算中的一種高效率的架構方案,引起了產業界、學術界和政府部門的高度關注。云計算以對海量數據的處理技術優勢,推動當今高新技術的變革和產業結構的升級。本文介紹了云計算誕生的背景和基本概念,并詳細介紹了核心技術概況,并對云計算未來的發展趨勢進行了展望。
關鍵詞:云計算,大數據,分布式計算
一、云計算背景:
早在20世紀60年代, 美國科學家約翰·麥卡錫 (John Mc Carthy) 就提出將計算能力作為一種公共設施提供給公眾, 使人們能夠像使用水、電那樣使用計算資源。針對此問題, 可以通過將所有的計算資源集中起來, 采用類似“效用計算”和“軟件即服務”的分布式計算技術為人們提供“隨需隨用”的計算資源。在此背景下, 用戶的使用觀念會發生徹底的改變, 即從“購買產品”到“購買服務”轉變, 因為他們直接面對的不再是復雜的硬件和軟件, 而是最終的服務。用戶不需要擁有看得見、摸得著的硬件設施, 也不需要為機房配置專門維護人員等, 只需要把錢匯給服務的提供商, 就會得到所需的服務。
伴隨著互聯網技術的發展和普及, 特別是Web2.0的飛速發展, 各種媒體數據呈現指數增長, 逐步遞增的海量異構媒體數據以及數據和服務的Web化趨勢使得傳統的計算模式在進行大數據處理時, 其表現有些力不從心。比如傳統計算模型至少在以下兩個方面已經不能適應新的需求:一是計算速度上受限于內核性能和個數;二是待處理數據量受限于內存和磁盤容量。對此, 人們很容易想到, 能否將數量可觀的計算機連接起來以獲得更快的計算速度、更強大的處理能力和存儲能力?
針對上述構思的解決方案,在谷歌(Google)、亞馬遜(Amazon)等著名IT企業大力推動下,為實現資源和計算能力的共享以及應對互聯網上各種媒體數據高速增長的勢頭,提出了- -種以數據為中心的新的商業計算模式一云計算 (Cloud Computing)。
二、云計算概述:
云計算(Cloud Computing)是由分布式計算(Distributed Computing)、并行處理(Parallel
Computing)、網格計算(Grid Computing)發展來的,是一種新興的商業計算模型。目前,對于云計算的認識在不斷的發展變化,云計算沒仍沒有普遍一致的定義。中國網格計算、云計算專家劉鵬給出如下定義 :“云計算將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和各種軟件服務”。
計算并不是一個全新的概念。 它是并行計算、分布式計算和網格計算的發 展,或者說是虛擬化、效用計算、軟件即服務等概念混合演進并躍升的結果。 計算為人們描繪出了一個誘人的藍圖。在云環境下,通過虛擬化技術建立的功能強大的、具有可伸縮性的數據和服務中心,為用戶提供足夠強的計算能力和足夠大的存儲空間。在任何時間和任何地點,戶只要擁有一個可以上網的終端比如手機,就可以訪問云,實現隨需隨用。為了實現這一宏偉藍圖, 諸多關鍵性的技術或理論問題亟需解決,比如支撐云計算的是大規模的集群計算系統,當系統規模增大后,可靠性和穩定性就成為最大的挑戰之一;云計算在發展過程中也會面臨著各種挑戰,比如在云計算環境下,絕大多數應用軟件和數據信息都被轉移到了云服務提供商的云數據中心,而最終享受云服務的用戶對其所操作和產生的數據的物理存在狀態是完全未知的,因此,如何確保用戶數據的安全性和云服務提供商不泄露用戶的隱私是云計算所面臨的挑戰之一。
云計算還處于萌芽階段,有龐雜的各類廠商在開發不同的云計算服務。云計算的表現形式多種多樣,簡單的云計算在人們日常網絡應用中隨處可見,比如騰訊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服務提供商將應用軟件統一部署在自己的服務器上,用戶根據需求通過互聯網向廠商訂購應用軟件服務,服務提供商根據客戶所定軟件的數量、時間的長短等因素收費,并且通過瀏覽器向客戶提供軟件的模式。
(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的優點是用戶只需低成本硬件,按需租用相應計算能力和存儲能力,大大降低了用戶在硬件上的開銷。
三、云計算核心技術:
云計算是一種以數據為中心的數據密集型計算模式, 它是多種分布式計算技術及其商業模式演進的產物。其中,推進云計算產業發展的核心技術列舉如下。
3.1 虛擬化技術
虛擬化技術由于其在提高基礎設施可靠性和提升資源利用效率等方面的巨大優勢,應用領域越來越廣泛。特別是新興起的云計算,更需要虛擬化技術的支撐。
虛擬化技術的起源最早可以追溯到1959年,克里斯托弗(Christopher Strachey)發表了一篇名為"Time Sharing in Large Fast Computers"的學術論文,這篇文章被認為是虛擬化技術的最早論述。隨后的十幾年,虛擬化技術過了初始發展階段。20世紀60年代,國際商業機器公司IBM為期型機發明了一種虛擬機監控器技術。20世紀70年代后, IBM、HP和SUN等公司將虛擬化技術引入各自的高端精簡指令集服務器和小型計算機中。由于不同廠商的產品和技術不能很好地兼容,使得虛擬化技術的發展進程有所減慢。1999年, 威睿(VM-ware)公司提出了一套似虛擬機監控器為中心的軟件解決方案, 在全虛擬化模式中使PC服務器平臺實現虛擬化。這是x86架構上的第一款虛擬化商用軟件。 虛擬機技術從此進入個人計算機領域并重新得到快速發展。2003年, 用最新半虛擬化技術實現的開源虛擬監視器Xen推出,并在數據中心用戶群體中流行開來。Xen的推出使得 虛擬化技術的研究和應用更加普及。在2005年和2006年,兩大CPU生產商英特爾(Intel)和超微半導體公司AMD對硬件進行修改,分別推出支持硬件虛擬化技術的產品。這項技術改變了x86架構對虛擬化支持的效能,x86架構由此成為了虛擬化技術發揮作用的重要平臺之一。
隨著云計算的興起,虛擬化技術走進了一個全面鼎盛的發展時期。虛擬機技術是云計算系統中的核心關鍵技術之- ,它是可以將各種計算及存儲資源充分整合和高效利用的關鍵技術。過虛擬化手段將系統中的各種異構的硬件資源轉換成為靈活統一的虛擬資源池, 從而形成云計算基礎設施,為上層云計算平臺和云服務提供相應的支撐。但是,虛擬化技術也會引入比物理主機更多的安全風險,因為同一物理主機上的虛擬機之間可以不經過防火墻與交換機設備相互訪問。因此,使用虛擬技術的云計算平臺須向其用戶提供安全性和隔離保證。目前,已有很多研究者針對虛擬化系統和虛擬化管理的安全問題進行探討,有學者提出基于嵌套虛擬化技術的可信基構建方法、基于現有硬件特性的安全監控和基于高權限虛擬機的數據隔離機制,為河信云服務提供了新的途徑。
3.2 編程模式
高性能計算機的發展促使高效能程序設計環境的產生與發展。然而,基于傳統并行編程模型的高效并行程序的編寫并不容易。同時,隨著領域中數據高速的增長,傳統并行計算編程模型在處理大數據集時也存在性能瓶頸。針對. 上述2個問題, Google公司研發了-種新的并行編程模型Map Reduce。作為一種解決方案, Map Reduce計算模型有效地解決了傳統算法處理大數據集時的性能瓶頸問題,同時它以易使用和易理解的方式簡單高效地解決了傳統并行計算編程效率不高的問題。
伴隨著應用范圍的擴大, Map Reduce的不足越來越明顯。很多學者進行了相關的研究,對Map Reduce進行了改進。改進的Map Reduce模型,對Map和Reduce過程進行了優化,適應多核的Map Reduce并行編程支撐平臺HPMR。針對Map Reduce計算框架不適合迭代計算和交互式計算的問題,加州伯克利大學的研究者開發了一個基于內存的計算框架Spark,它將數據盡可能放到內存中以提高迭代應用和交式應用的計算效率。針對Map Reduce不適合進行流式計算、實時分析等問題,人們開發了實時性要遠好于Map Reduce的計算框架Storm[10]。
研究者還針對多核、多處理器等不同平臺實現了Map Reduce模型。比如為了在多核平臺.上高效地執行程序,斯坦福大學的科爾比(Colby)等人實現了一個基于多核平臺的Map Reduce的系統Phoenix。針對GPU,香港科技大學與微軟使用英偉達(NVIDIA)公司的CUDA技術,在GPU上實現了一個Map Reduce系統Mars[12]。
3.3 數據存儲管理技術
云計算系統底層需要大數據的存儲支持,可以對外提供云存儲服務。云存儲克服了傳統存儲系統在容量和性能擴展上存在的瓶頸,以其擴展性強、性價比高、容錯性好等優勢得到了業界的廣泛認同。
為保證用戶所存儲數據的高可用和高可靠,云計算的分布式文件系統多采冗余的存儲方式,即為同一份數據存儲多個副本,比如Google的GFS和阿帕奇(Apache)的HDFS都是采用三副本來保證數據的冗余。這是一個簡單有效但不是最優的方法。針對此問題,研究者一直在探討能否使用類似的策略在不降低存儲可靠性的前提下降低存儲副本數目。比如二代Google分布式文件系統Colossus, 即GFS2中使用里德-所羅門擦除碼(Reed Solomon Erasure Code)實現成本更低的可靠存儲。微軟的Azure平臺采用擦除碼技術來降低存儲成本。臉書(Facebook)在開源Hadoop的基礎上實現了一套基于擦除碼的RAID方案。實驗表明,對同樣的數據,此方案能夠節約25%- -30%的HDFS集群的存儲空間。
由于云計算對大數據的讀操作頻率遠大于數據的更新頻率,因此,計算的數據管理通常會采用分布式列存儲技術。列存儲模型最大的特點是方便存儲結構化和半結構化數據,方便做數據壓縮,對針對某一列或者幾列的查詢應用有著非常大的/O優勢。當前比較典型的基于列存儲模型的分布式數據存儲系統是Google公司的BigTable和Apache的HBase。
3.4 節能技術
在云計算環境中, 數據中心是云計算硬件架構底層的獨立計算單位。數據中心的基礎設施通常由數以萬計的計算機構成,隨之而來的一個亟待解決的問題是數據中心巨大的能源消耗。針對此問題,國內外學者及相關機構已經對諸多節能技術進行研究,很多降低能耗的方法被提出。
3.5 云計算平臺管理技術
云計算資源規模龐大,服務器數量眾多并分布在不同的地點,同時運行著數百種應用,如何有效的管理這些服務器,保證整個系統提供不間斷的服務是巨大的挑戰。云計算系統的平臺管理技術能夠使大量的服務器協同工作,方便的進行業務部署和開通,快速發現和恢復系統故障,通過自動化、智能化的手段實現大規模系統的可靠運營。
總結
以上是生活随笔為你收集整理的云计算的概况和发展:Ubiquitous Supercomputing Power的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 次世代建模师进阶指南,挑战百万年薪就靠它
- 下一篇: MATLAB实验四:MATLAB数据分析