內容簡介
本書是中國雲計算專家委員會劉鵬教授主編的系統講解雲計算技術的專業書籍,重點闡述了雲計算領域具代表性的Google、亞馬遜和微軟三個雲計算平台的技術原理和套用方法,並介紹了以hadoop為代表的開源雲計算技術和雲計算仿真器cloudsim,分析了雲計算領域的理論研究熱點問題,給出了雲計算套用實例以及雲計算實驗的詳細步驟。本書主要內容包括:Google的GFS、MapReduce、BigTable、Chubby和App Engine等;亞馬遜的Dynamo、EC2、S3、SQS、SimpleDB和CloudFront等;微軟的Azure、SQL服務、.Net服務和Live服務等;開源雲計算技術的hdfs、HBase和Eucalyptus等。讀者可從本書配套網站中國雲計算(http://www.chinacloud.cn)獲取更多資料和求解疑難問題。本書緊跟雲計算的發展前沿,既有理論深度,又有實用價值,可作為高校教材使用,也可作為雲計算研發人員和愛好者的學習和參考資料。
圖書在版編目(CIP)數據
雲計算/劉鵬主編. —北京:電子工業出版社,2010.3ISBN 978-7-121-10199-1
Ⅰ. 雲… Ⅱ. 劉… Ⅲ. 計算機網路-研究 Ⅳ. TP393
中國版本圖書館CIP數據核字(2010)第001568號
責任編輯:董亞峰
印 刷:北京季蜂印刷有限公司
裝 訂:北京季蜂印刷有限公司
出版發行:電子工業出版社
北京市海淀區萬壽路173信箱 郵編 100036
開 本:787×1092 1/16 印張:16 字數:480千字
印 次:2010年3月第1次印刷
印 數: 冊 定價:38.00元
凡所購買電子工業出版社圖書有缺損問題,請向購買書店調換。若書店售缺,請與本社發行部聯繫,聯繫及郵購電話:(010)88254888。
質量投訴請發郵件至[email protected],盜版侵權舉報請發郵件至[email protected]。
服務熱線:(010)88258888。
主編作者簡介
劉鵬清華大學博士,解放軍理工大學教授、學科帶頭人,中國雲計算專家委員會委員。主要研究方向為信息格線和雲計算,完成科研課題18項,發表論文70餘篇,獲部級科技進步獎6項。曾奪得國際計算機排序比賽冠軍,並兩次奪得全國高校科技比賽最高獎,獲“全軍十大學習成才標兵”、“南京十大傑出青年”和“清華大學學術新秀”等稱號。2002年首倡的“格線計算池”和2003年研發的“反垃圾郵件格線”分別為雲計算和雲安全的前身。
封底介紹文字
一年前,公眾和專家還在質疑雲計算是不是一種炒作起來的概念。然而,在近一年時間裡,全球範圍內成千上萬家採用雲計算技術的創新企業正在興起, IT巨頭們搖身一變成了雲計算巨頭,傳統企業紛紛轉型,頗像30多年前的個人計算機浪潮及10多年前的網際網路浪潮,新一場信息技術革命開始上演。谷歌、亞馬遜、微軟和IBM等的雲計算平台已經達到幾十萬乃至上百萬台計算機的規模。由於規模經濟性和眾多新技術的運用,加之擁有很高的資源利用率,雲計算的性價比較之傳統模式可以達到驚人的30倍以上。認真學完本書,您將明白其中的奧秘,並學會構建自己的雲計算平台。
雲計算與當今同樣倍受關注的3G和物聯網是互為支撐、交相輝映的關係。3G為雲計算帶來數以億計的寬頻移動用戶,雲計算將為他們提供前所未有的服務體驗;物聯網將採集到極其海量的數據,必然需要匯聚到雲計算設施進行存儲和處理,從而更加迅速、準確、智慧型、低成本地對物理世界進行管理和控制。
由於雲計算技術起源於企業界而非學術界,各種技術文獻很難尋獲,目前還未見到對雲計算技術進行全面、深入剖析的教科書式出版物。我們理解廣大讀者渴望弄清雲計算技術本質和細節的迫切心情,組織在網路計算領域有十年研究經驗的團隊編寫了這本書,希望能夠解渴。同時,建議全國高校儘早開設《雲計算》課程。
目錄下載:http://www.chinacloud.cn/cloudindex.doc
前言
隨著網路頻寬的不斷增長,通過網路訪問非本地的計算服務(包括數據處理、存儲和信息服務等)的條件越來越成熟,於是就有了今天我們稱作“雲計算”的技術。之所以稱作“雲”,是因為計算設施不在本地而在網路中,用戶不需要關心它們所處的具體位置,於是我們就像以前畫網路圖那樣,用“一朵雲”來代替了。其實,雲計算模式的形成由來已久(谷歌公司從誕生之初就採用了這種模式),但只有當寬頻網普及到一定程度,且格線計算、虛擬化、SOA和容錯技術等成熟到一定程度並融為一體,又有業界主要大公司的全力推動和吸引人的成功套用案例時,它才如同一顆新星閃亮登場。既然雲計算的服務設施不受用戶端的局限,就意味著它們的規模和能力不可限量。谷歌、亞馬遜、微軟和IBM等的雲計算平台已經達到幾十萬乃至上百萬台計算機的規模。由於規模經濟性和眾多新技術的運用,加之擁有很高的資源利用率,雲計算的性能價格比較之傳統模式可以達到驚人的30倍以上——這使得雲計算成為一種劃時代的技術。
雲計算與當今同樣倍受關注的3G和物聯網是什麼關係呢?是互為支撐、交相輝映的關係。3G為雲計算帶來數以億計的寬頻移動用戶。移動終端的計算能力和存儲空間有限,卻有很強的聯網能力,如果有雲計算平台的支撐,移動用戶將獲得前所未有的服務體驗;物聯網使用數量驚人的感測器、RFID和視頻監控單元等,採集到極其海量的數據,通過3G和寬頻網際網路進行傳輸,如果匯聚到雲計算設施進行存儲和處理,則可以更加迅速、準確、智慧型、低成本地對物理世界進行管理和控制,大幅提高社會生產力水平和生活質量。
雲計算的影響將是深遠的,它將徹底改變IT產業的架構和運行方式。可以預見,高性能計算機、高端伺服器、高端存儲器和高端處理器的市場將被數量眾多、低成本、低能耗和高性價比的雲計算硬體市場所擠占;傳統網際網路數據中心(IDC)將迅速被成本低一個數量級的雲計算數據中心所取代;絕大多數軟體將以服務方式呈現,甚至連大多數遊戲都將在“雲”里運行;呼叫中心、網路會議中心、智慧型監控中心、數據交換中心、視頻監控中心和銷售管理中心等,將越來越向某些雲計算設施集中而獲取高得多的性價比。放眼遠眺,雲計算將與格線計算融為一體,實現雲計算平台之間的互操作和資源共享,實現緊耦合高性能科學計算與松耦合高吞吐量商業計算的融合,使網際網路上的主要計算設施融為一個有機整體——作者稱之為雲格(Gloud,即Grid+Cloud)。
因為雲計算如此重要,與雲計算相關的書籍應運而生。但由於雲計算技術起源於企業界而非學術界,各種技術文獻很難尋獲,目前還未見到對雲計算技術進行全面、深入剖析的教科書式出版物。本書編寫團隊核心成員自2000年起就從事格線計算研發,並一直緊跟國際形勢從事雲計算領域研發,運營了中國格線(http://www.chinagrid.net)和中國雲計算(http://www.chinacloud.cn)網站,並承擔了知名企業的雲計算技術培訓工作。我們能夠感受到廣大讀者渴望弄清雲計算技術本質和細節的迫切心情,集中力量編寫了這本書,希望能夠解渴。本書剖析了最具代表性的谷歌、亞馬遜和微軟三家公司的雲計算平台技術原理和使用方法,並介紹了以Hadoop為代表的開源雲計算技術和雲計算仿真器CloudSim,還分析了雲計算領域的理論研究熱點問題。另外,一些雲計算套用實例和雲計算實驗的詳細步驟,將使您感覺到雲計算並非遙不可及。
本書適合不同層次的讀者閱讀。根據作者的經驗,讀一本書,面面俱到的方法不可取——耗時過長、印象不深。建議讀者帶著自己的疑問,尋找感興趣的閱讀點,直奔主題而去:希望了解雲計算的概念、本質和發展趨勢的讀者,可以重點閱讀第1、9章;希望學習雲計算技術原理的讀者,可以將重點放在第2、3、4、5章;希望動手從事雲計算開發工作的讀者,可重點閱讀第6章,並著手附錄中的實驗;希望從事雲計算理論研究的學術界同仁,可重點閱讀第7、8章。
此書非常適合於作為高校教材使用。建議高校為高年級本科生和研究生開設《雲計算》課程。目前解放軍理工大學已經為四年級本科生開設了《雲計算》課程。本課程教學時數建議為40學時,如要開展實驗教學則另加10學時。建議各位老師在中國雲計算網站上共享自己的教案和課件,爭取依靠大家的共同努力把它做成精品課程。另外,本書編寫團隊有配套的雲計算深度培訓系列課程可對外提供。
感謝中國雲計算專家委員會主任委員李德毅院士和林潤華秘書長對我們雲計算研究工作的指導和鼓勵。感謝在我攻讀碩、博士學位期間,我的導師謝希仁教授和李三立院士分別在計算機網路和格線計算方向對我的悉心指導。
由於雲計算技術較為前沿,加之作者水平有限、時間較緊,書中難免存在謬誤,懇請讀者批評指正。意見和建議請發到[email protected]。歡迎在本書配套網站中國雲計算(http://www.chinacloud.cn)上獲取更多資料,並交流與雲計算相關的任何問題。我們將密切跟蹤雲計算技術的發展,吸收您的意見,適時編撰本書的升級版本。
解放軍理工大學 劉鵬
2010年2月1日
目 錄
第1章 緒論... 11.1 雲計算的概念... 1
1.2 雲計算發展現狀... 3
1.3 雲計算實現機制... 4
1.4 格線計算與雲計算... 6
參考文獻... 8
第2章 Google雲計算原理... 10
2.1 Google檔案系統GFS. 10
2.1.1 系統架構... 11
2.1.2 容錯機制... 13
2.1.3 系統管理技術... 13
2.2 並行數據處理MapReduce. 14
2.2.1 產生背景... 14
2.2.2 編程模型... 15
2.2.3 實現機制... 15
2.2.4 案例分析... 17
2.3 分散式鎖服務Chubby. 19
2.3.1 Paxos算法... 19
2.3.2 Chubby系統設計... 20
2.3.3 Chubby檔案系統... 21
2.3.4 通信協定... 23
2.3.5 正確性與性能... 24
2.4 分散式結構化數據表Bigtable. 25
2.4.1 設計動機與目標... 25
2.4.2 數據模型... 26
2.4.3 系統架構... 27
2.4.4 主伺服器... 28
2.4.5 子表伺服器... 29
2.4.6 性能最佳化... 32
參考文獻... 34
第3章 Google應用程式引擎... 35
3.1 Google App Engine簡介... 35
3.2 應用程式環境... 37
3.3 Google App Engine資料庫... 38
3.4 Google App Engine服務... 39
3.4.1 圖像操作API 39
3.4.2 郵件API 40
3.4.3 Memcache API 42
3.4.4 網址抓取API 44
3.4.5 用戶API 45
3.4.6 資料庫API 46
3.5 編程實例:Hello World. 52
3.5.1 創建簡單請求處理程式... 53
3.5.2 使用webapp框架... 55
3.5.3 使用用戶服務... 56
3.5.4 用webapp處理表單... 57
3.5.5 使用資料庫... 59
3.5.6 使用模板... 61
3.5.7 套用實例:搭建CDN.. 61
3.6 套用實例:用iPhone訪問Google App Engine. 63
3.7 套用實例:基於位置的聊天... 66
參考文獻... 68
第4章 亞馬遜雲計算AWS. 69
4.1 簡介... 69
4.2 亞馬遜平台基礎存儲架構:Dynamo. 69
4.2.1 Dynamo在亞馬遜服務平台的地位... 69
4.2.2 Dynamo架構的主要技術... 71
4.3 彈性計算雲EC2. 76
4.3.1 EC2的主要特性... 77
4.3.2 EC2基本架構及主要概念... 77
4.3.3 常用API 81
4.4 簡單存儲服務S3. 82
4.4.1 基本概念和操作... 82
4.4.2 數據一致性模型... 84
4.4.3 S3安全措施... 85
4.4.4 常用API 87
4.5 簡單佇列服務SQS. 87
4.5.1 SQS基本模型... 88
4.5.2 兩個重要概念... 88
4.5.3 訊息... 89
4.5.4 身份認證... 90
4.5.5 常用API 90
4.6 簡單資料庫服務SimpleDB. 91
4.6.1 重要概念... 91
4.6.2 與關係型資料庫的比較... 93
4.6.3 存在的問題及解決辦法... 93
4.6.4 SDB和其他AWS的結合使用... 94
4.6.5 常用API 94
4.7 彈性MapReduce服務... 95
4.7.1 彈性MapReduce. 95
4.7.2 常用API 96
4.8 內容推送服務CloudFront 96
4.8.1 CDN.. 97
4.8.2 CloudFront 98
4.8.3 常用API 100
4.9 電子商務服務DevPay和FPS. 100
4.9.1 DevPay. 100
4.9.2 FPS. 103
4.9.3 常用API 104
4.10 其他亞馬遜雲計算服務... 105
4.10.1 簡單支付服務Simple Pay. 105
4.10.2 亞馬遜完成Web服務... 106
4.10.3 土耳其機器人... 106
4.10.4 Alexa Web服務... 107
4.10.5 常用API 108
4.11 AWS套用實例... 108
4.11.1 線上照片存儲共享網站Smugmug. 109
4.11.2 線上視頻製作網站Animoto. 110
參考文獻... 110
第5章 微軟雲計算Windows Azure. 113
5.1 微軟雲計算服務平台... 113
5.2 微軟雲作業系統Windows Azure. 114
5.2.1 概述... 114
5.2.2 Windows Azure存儲服務... 116
5.2.3 Windows Azure計算服務... 127
5.2.4 Fabric. 129
5.2.5 使用Windows Azure. 130
5.3 SQL服務... 130
5.3.1 SQL數據服務... 130
5.3.2 SDS數據模型... 131
5.3.3 訪問SDS. 132
5.4 .NET服務... 132
5.4.1 概述... 132
5.4.2 訪問控制服務... 133
5.4.3 .NET服務匯流排... 135
5.4.4 工作流服務... 139
5.5 Live服務... 143
5.5.1 概述... 143
5.5.2 Live框架... 144
5.5.3 訪問數據... 145
5.5.4 使用網路... 146
5.5.5 Mesh-Enabled應用程式... 147
5.6 小結... 148
參考文獻... 148
第6章 開源雲計算系統... 149
6.1 開源雲計算系統簡介... 149
6.1.1 Hadoop. 149
6.1.2 Eucalyptus. 151
6.1.3 Enomaly ECP. 152
6.1.4 Nimbus. 152
6.1.5 Sector and Sphere. 153
6.1.6 abiquo. 155
6.1.7 MongoDB. 156
6.2 HDFS:GFS的開源實現... 157
6.2.1 設計前提與目標... 157
6.2.2 體系結構... 158
6.2.3 保障可靠性的措施... 159
6.2.4 提升性能的措施... 161
6.2.5 訪問接口... 162
6.3 MapReduce的開源實現... 163
6.3.1 邏輯模型... 163
6.3.2 實現機制... 164
6.4 HBase:Bigtable的開源實現... 165
6.4.1 邏輯模型... 165
6.4.2 物理模型... 165
6.4.3 子表伺服器... 166
6.4.4 主伺服器... 167
6.4.5 元數據表... 167
6.5 Eucalyptus:EC2的開源實現... 168
6.5.1 背景... 168
6.5.2 體系結構... 169
6.5.3 主要構件... 171
6.5.4 訪問接口... 172
6.5.5 服務等級協定... 173
6.5.6 虛擬組網... 174
參考文獻... 175
第7章 雲計算仿真器CloudSim.. 177
7.1 CloudSim簡介... 177
7.2 CloudSim體系結構... 178
7.2.1 SimJava層... 179
7.2.2 GridSim層... 179
7.2.3 CloudSim層... 179
7.2.4 用戶代碼層... 180
7.3 CloudSim技術實現... 180
7.4 CloudSim的使用方法... 182
參考文獻... 185
第8章 雲計算理論研究熱點... 186
8.1 體系結構研究... 186
8.1.1 Youseff劃分方法... 186
8.1.2 Lenk劃分方法... 188
8.2 關鍵技術研究... 190
8.2.1 虛擬機... 190
8.2.2 安全管理... 191
8.2.3 雲監測... 192
8.2.4 能耗管理... 194
8.2.5 數據管理... 196
8.2.6 資源調度... 197
8.3 編程模型研究... 198
8.3.1 All-Pairs編程模型... 198
8.3.2 GridBatch編程模型... 199
8.4 支撐平台研究... 200
8.4.1 cumulus:數據中心科學雲... 200
8.4.2 CARMEN:e-Science雲計算... 201
8.4.3 RESERVOIR:雲服務融合平台... 202
8.4.4 TPlatform:Hadoop的變種... 203
8.4.5 P2P環境的MapReduce. 203
8.4.6 Yahoo雲計算平台... 205
8.5 套用研究... 205
8.5.1 語義分析套用... 205
8.5.2 生物學套用... 206
8.5.3 資料庫套用... 207
8.5.4 地理信息套用... 208
8.5.5 商業套用... 209
8.6 雲安全研究... 211
8.6.1 Anti-Spam Grid:反垃圾郵件格線... 211
8.6.2 CloudAV:終端惡意軟體檢測... 213
8.6.3 AMSDS:惡意軟體簽名自動檢測... 214
8.6.4 雲平台上的數字身份認證... 215
參考文獻... 216
第9章 總結與展望
9.1 Google、亞馬遜和微軟雲計算對比... 220
9.1.1 套用場景... 220
9.1.2 使用流程... 221
9.1.3 體系結構... 222
9.1.4 實現技術... 223
9.1.5 小結... 224
9.2 雲計算壓倒性的成本優勢... 226
9.3 雲計算的歷史坐標與發展方向... 229
9.3.1 網際網路發展的階段劃分... 229
9.3.2 3G、物聯網與雲計算... 231
9.3.3 雲格(Gloud)—雲計算的未來... 232
參考文獻... 234
附錄A 雲計算實驗——Hadoop安裝與使用... 235
A.1 實驗目的及環境... 235
A.2 在Linux系統中安裝使用Hadoop. 235
A.2.1 實驗準備... 235
A.2.2 實驗步驟... 236
A.3 在Windows系統中安裝使用Hadoop. 243
A.3.1 實驗準備... 243
A.3.2 實驗步驟... 244
A.4 注意事項... 249
附錄B 雲計算實驗——HDFS使用... 250
B.1 實驗目的... 250
B.2 實驗環境... 250
B.3 實驗步驟... 250
附錄C 雲計算實驗——HDFS和MapReduce編程... 254
C.1 實驗目的... 254
C.2 實驗環境... 254
C.3 實驗步驟... 254
C.4 注意事項... 259
附錄D 雲計算實驗——HBase安裝使用... 260
D.1 實驗目的... 260
D.2 實驗環境... 260
D.3 實驗步驟... 260
D.4 注意事項... 264
附錄E 雲計算實驗——CloudSim編程... 265
E.1 實驗目的... 265
E.2 實驗環境... 265
E.3 實驗步驟... 265