- 云計算
- 劉鵬主編
- 2340字
- 2018-12-28 21:52:24
1.1 云計算的概念
云計算(Cloud Computing)是在2007年第3季度才誕生的新名詞,但僅僅過了半年多,其受到關注的程度就超過了網格計算(Grid Computing),如圖1-1所示。

圖1-1 云計算和網格計算在Google中的搜索趨勢
然而,對于到底什么是云計算,至少可以找到100種解釋,目前還沒有公認的定義。本書給出一種定義,供讀者參考。
云計算是一種商業計算模型,它將計算任務分布在大量計算機構成的資源池上,使用戶能夠按需獲取計算力、存儲空間和信息服務。
這種資源池稱為“云”?!霸啤笔且恍┛梢宰晕揖S護和管理的虛擬計算資源,通常是一些大型服務器集群,包括計算服務器、存儲服務器和寬帶資源等。云計算將計算資源集中起來,并通過專門軟件實現自動管理,無需人為參與。用戶可以動態申請部分資源,支持各種應用程序的運轉,無需為煩瑣的細節而煩惱,能夠更加專注于自己的業務,有利于提高效率、降低成本和技術創新。云計算的核心理念是資源池,這與早在2002年就提出的網格計算池(Computing Pool)的概念非常相似[3][4]。網格計算池將計算和存儲資源虛擬成為一個可以任意組合分配的集合,池的規??梢詣討B擴展,分配給用戶的處理能力可以動態回收重用。這種模式能夠大大提高資源的利用率,提升平臺的服務質量。
之所以稱為“云”,是因為它在某些方面具有現實中云的特征:云一般都較大;云的規??梢詣討B伸縮,它的邊界是模糊的;云在空中飄忽不定,無法也無需確定它的具體位置,但它確實存在于某處。之所以稱為“云”,還因為云計算的鼻祖之一亞馬遜公司將大家曾經稱為網格計算的東西,取了一個新名稱“彈性計算云”(Elastic Computing Cloud),并取得了商業上的成功。
有人將這種模式比喻為從單臺發電機供電模式轉向了電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水和電一樣,取用方便,費用低廉。最大的不同在于,它是通過互聯網進行傳輸的。
云計算是并行計算(Parallel Computing)、分布式計算(Distributed Computing)和網格計算(Grid Computing)的發展,或者說是這些計算科學概念的商業實現。云計算是虛擬化(Virtualization)、效用計算(Utility Computing)、將基礎設施作為服務IaaS (Infrastructure as a Service)、將平臺作為服務PaaS (Platform as a Service)和將軟件作為服務SaaS (Software as a Service)等概念混合演進并躍升的結果。
從研究現狀上看,云計算具有以下特點。
1)超大規模?!霸啤本哂邢喈數囊幠?,Google 云計算已經擁有100多萬臺服務器,亞馬遜、IBM、微軟和Yahoo 等公司的“云”均擁有幾十萬臺服務器?!霸啤蹦苜x予用戶前所未有的計算能力。
2)虛擬化。云計算支持用戶在任意位置、使用各種終端獲取服務。所請求的資源來自“云”,而不是固定的有形的實體。應用在“云”中某處運行,但實際上用戶無需了解應用運行的具體位置,只需要一臺筆記本或一個PDA,就可以通過網絡服務來獲取各種能力超強的服務。
3)高可靠性?!霸啤笔褂昧藬祿喔北救蒎e、計算節點同構可互換等措施來保障服務的高可靠性,使用云計算比使用本地計算機更加可靠。
4)通用性。云計算不針對特定的應用,在“云”的支撐下可以構造出千變萬化的應用,同一片“云”可以同時支撐不同的應用運行。
5)高可擴展性。“云”的規??梢詣討B伸縮,滿足應用和用戶規模增長的需要。
6)按需服務。“云”是一個龐大的資源池,用戶按需購買,像自來水、電和煤氣那樣計費。
(7)極其廉價?!霸啤钡奶厥馊蒎e措施使得可以采用極其廉價的節點來構成云;“云”的自動化管理使數據中心管理成本大幅降低;“云”的公用性和通用性使資源的利用率大幅提升;“云”設施可以建在電力資源豐富的地區,從而大幅降低能源成本。因此“云”具有前所未有的性能價格比。Google中國區前總裁李開復稱,Google每年投入約16億美元構建云計算數據中心,所獲得的能力相當于使用傳統技術投入640億美元,節省了40倍的成本。因此,用戶可以充分享受“云”的低成本優勢,需要時,花費幾百美元、一天時間就能完成以前需要數萬美元、數月時間才能完成的數據處理任務。
云計算按照服務類型大致可以分為三類:將基礎設施作為服務IaaS、將平臺作為服務PaaS和將軟件作為服務SaaS,如圖1-2所示。

圖1-2 云計算的服務類型
IaaS 將硬件設備等基礎資源封裝成服務供用戶使用,如亞馬遜云計算AWS (Amazon Web Services)的彈性計算云EC2和簡單存儲服務S3。在IaaS 環境中,用戶相當于在使用裸機和磁盤,既可以讓它運行Windows,也可以讓它運行Linux,因而幾乎可以做任何想做的事情,但用戶必須考慮如何才能讓多臺機器協同工作起來。AWS 提供了在節點之間互通消息的接口簡單隊列服務SQS (Simple Queue Service)。IaaS最大的優勢在于它允許用戶動態申請或釋放節點,按使用量計費。運行IaaS 的服務器規模達到幾十萬臺之多,用戶因而可以認為能夠申請的資源幾乎是無限的。同時,IaaS 是由公眾共享的,因而具有更高的資源使用效率。
PaaS 對資源的抽象層次更進一步,它提供用戶應用程序的運行環境,典型的如Google App Engine。微軟的云計算操作系統Microsoft Windows Azure也可大致歸入這一類。PaaS 自身負責資源的動態擴展和容錯管理,用戶應用程序不必過多考慮節點間的配合問題。但與此同時,用戶的自主權降低,必須使用特定的編程環境并遵照特定的編程模型。這有點像在高性能集群計算機里進行MPI 編程,只適用于解決某些特定的計算問題。例如,Google App Engine只允許使用Python和Java語言、基于稱為Django的Web應用框架、調用Google App Engine SDK來開發在線應用服務。
SaaS的針對性更強,它將某些特定應用軟件功能封裝成服務,如Salesforce公司提供的在線客戶關系管理CRM (Client Relationship Management)服務。SaaS既不像PaaS一樣提供計算或存儲資源類型的服務,也不像IaaS 一樣提供運行用戶自定義應用程序的環境,它只提供某些專門用途的服務供應用調用。
需要指出的是,隨著云計算的深化發展,不同云計算解決方案之間相互滲透融合,同一種產品往往橫跨兩種以上類型。例如,Amazon Web Services是以IaaS發展的,但新提供的彈性MapReduce服務模仿了Google的MapReduce,簡單數據庫服務SimpleDB 模仿了Google 的Bigtable,這兩者屬于PaaS 的范疇,而它新提供的電子商務服務FPS 和DevPay以及網站訪問統計服務Alexa Web服務,則屬于SaaS的范疇。
- 程序員修煉之道:從小工到專家
- 數據可視化:從小白到數據工程師的成長之路
- 從零開始學Hadoop大數據分析(視頻教學版)
- Hands-On Machine Learning with Microsoft Excel 2019
- Redis應用實例
- 數據驅動設計:A/B測試提升用戶體驗
- ZeroMQ
- 圖數據實戰:用圖思維和圖技術解決復雜問題
- 淘寶、天貓電商數據分析與挖掘實戰(第2版)
- INSTANT Android Fragmentation Management How-to
- 菜鳥學SPSS數據分析
- 大數據與機器學習:實踐方法與行業案例
- 大數據時代系列(套裝9冊)
- 大數據分析:R基礎及應用
- Access 2016數據庫應用基礎