內容簡介
《雲計算(第2版)》強化了可操作性,給出了大量套用實例、編程方法或實驗步驟等。本書主要內容包括:Google的GFS、MapReduce、Bigtable、Chubby、Megastore、Dapper和App Engine等;Amazon的Dynamo、EC2、S3、SQS、SimpleDB和CloudFront等;微軟的Windows Azure、SQL Azure、App Fabric等;VMware的vSphere、vCenter等,開源雲計算技術的Hadoop、Eucalyptus、Cassandra、Hive、VoltDB等。讀者可從本書配套網站中國雲計算(http://www-chinacloud-cn)獲取更多資料和求解疑難問題。 本書緊跟雲計算的發展前沿,既有理論深度,又有實用價值,可作為高校教材使用,也可作為雲計算研發人員和愛好者的學習和參考資料。
《雲計算》分為四大部分:第一部分為理論篇,主要介紹雲計算理論方面的知識;第二部分為產品與技術篇,深入剖析多個頂尖雲計算產品的實現,介紹了雲計算中非常重要的系統虛擬化技術和安全方面的機制;第三部分為實踐篇,將選擇雲的核心模組之一——分散式資料庫作為實踐的方向,並以YunTable這個雲時代的BigTable為例,給大家演示如何手動編寫和設計一個分散式資料庫;最後一部分為展望篇,預測了雲計算和整個科技事業未來的發展。
圖書目錄
目 錄
第1章 緒論 1
1.1 雲計算的概念 1
1.2 雲計算發展現狀 3
1.3 雲計算實現機制 5
1.4 格線計算與雲計算 6
1.5 雲計算的發展環境 9
1.5.1 雲計算與3G 9
1.5.2 雲計算與物聯網 9
1.5.3 雲計算與移動網際網路 10
1.5.4 雲計算與三網融合 11
1.6 雲計算壓倒性的成本優勢 12
習題 15
參考文獻 15
第2章 Google雲計算原理與套用 17
2.1 Google檔案系統GFS 17
2.1.1 系統架構 18
2.1.2 容錯機制 20
2.1.3 系統管理技術 20
2.2 分散式數據處理MapReduce 21
2.2.1 產生背景 21
2.2.2 編程模型 22
2.2.3 實現機制 22
2.2.4 案例分析 24
2.3 分散式鎖服務Chubby 25
2.3.1 Paxos算法 26
2.3.2 Chubby系統設計 27
2.3.3 Chubby中的Paxos 29
2.3.4 Chubby檔案系統 31
2.3.5 通信協定 32
2.3.6 正確性與性能 34
2.4 分散式結構化數據表Bigtable 35
2.4.1 設計動機與目標 35
2.4.2 數據模型 36
2.4.3 系統架構 37
2.4.4 主伺服器 38
2.4.5 子表伺服器 39
2.4.6 性能最佳化 42
2.5 分散式存儲系統Megastore 43
2.5.1 設計目標及方案選擇 44
2.5.2 Megastore數據模型 44
2.5.3 Megastore中的事務及並發控制 46
2.5.4 Megastore基本架構 47
2.5.5 核心技術——複製 49
2.5.6 產品性能及控制措施 52
2.6 大規模分散式系統的監控基礎架構Dapper 54
2.6.1 基本設計目標 54
2.6.2 Dapper監控系統簡介 54
2.6.3 關鍵性技術 57
2.6.4 常用Dapper工具 58
2.6.5 Dapper使用經驗 60
2.7 Google應用程式引擎 62
2.7.1 Google App Engine簡介 62
2.7.2 應用程式環境 63
2.7.3 Google App Engine服務 65
2.7.4 Google App Engine編程實踐 72
習題 86
參考文獻 86
第3章 Amazon雲計算AWS 88
3.1 Amazon平台基礎存儲架構:Dynamo 88
3.1.1 Dynamo在Amazon服務平台的地位 88
3.1.2 Dynamo架構的主要技術 89
3.2 彈性計算雲EC2 97
3.2.1 EC2的主要特性 97
3.2.2 EC2基本架構及主要概念 97
3.2.3 EC2的關鍵技術 99
3.3.4 EC2安全及容錯機制 101
3.3 簡單存儲服務S3 102
3.3.1 基本概念和操作 102
3.3.2 數據一致性模型 104
3.3.3 S3安全措施 105
3.4 簡單佇列服務SQS 107
3.4.1 SQS基本模型 107
3.4.2 兩個重要概念 107
3.4.3 訊息 108
3.4.4 身份認證 109
3.5 簡單資料庫服務Simple DB 109
3.5.1 重要概念 110
3.5.2 存在的問題及解決辦法 112
3.5.3 Simple DB和其他AWS的結合使用 112
3.6 關係資料庫服務RDS 113
3.6.1 SQL和NoSQL資料庫的對比 113
3.6.2 RDS資料庫原理 114
3.6.3 RDS的使用 115
3.7 內容推送服務CloudFront 115
3.7.1 內容推送網路CDN 115
3.7.2 雲內容推送CloudFront 117
3.8 其他Amazon雲計算服務 119
3.8.1 快速套用部署Elastic Beanstalk和服務模板CloudFormation 119
3.8.2 雲中的DNS服務 Router 53 119
3.8.3 虛擬私有雲VPC 120
3.8.4 簡單通知服務SNS和簡單郵件服務SES 120
3.8.5 彈性MapReduce服務 120
3.8.6 電子商務服務DevPay、FPS和Simple Pay 122
3.8.7 Amazon執行網路服務 126
3.8.8 土耳其機器人 127
3.8.9 Alexa Web服務 128
3.9 AWS套用實例 129
3.9.1 線上照片存儲共享網站SmugMug 129
3.9.2 線上視頻製作網站Animoto 130
3.10 小結 131
習題 131
參考文獻 131
第4章 微軟雲計算Windows Azure 135
4.1 微軟雲計算平台 135
4.2 微軟雲作業系統Windows Azure 136
4.2.1 Windows Azure概述 136
4.2.2 Windows Azure計算服務 137
4.2.3 Windows Azure存儲服務 138
4.2.4 Windows Azure Connect 152
4.2.5 Windows Azure CDN 153
4.2.6 Fabric控制器 153
4.2.7 Windows Azure套用場景 155
4.3 微軟雲關係資料庫SQL Azure 157
4.3.1 SQL Azure概述 157
4.3.2 SQL Azure關鍵技術 158
4.3.3 SQL Azure套用場景 160
4.3.4 SQL Azure和SQL Server對比 162
4.4 Windows Azure AppFabric 163
4.4.1 AppFabric概述 163
4.4.2 AppFabric關鍵技術 164
4.5 Windows Azure Marketplace 167
4.6 微軟雲計算編程實踐 168
4.6.1 利用Visual Studio2010開發簡單的雲應用程式 168
4.6.2 向Windows Azure平台發布應用程式 170
習題 173
參考文獻 173
第5章 VMware雲計算 174
5.1 VMware雲產品簡介 174
5.1.1 VMware雲戰略三層架構 174
5.1.2 VMware vSphere架構 175
5.1.3 雲作業系統vSphere 176
5.1.4 底層架構服務vCloud Service Director 177
5.1.5 虛擬桌面產品VMware View 178
5.2 雲管理平台 vCenter 179
5.2.1 虛擬機遷移工具 179
5.2.2 虛擬機數據備份恢復工具 181
5.2.3 虛擬機安全工具 181
5.2.4 可靠性組件FT和HA 182
5.3 雲架構服務提供平台vCloud Service Director 182
5.3.1 創建虛擬數據中心和組織 183
5.3.2 網路的設計 184
5.3.3 目錄管理 184
5.3.4 計費功能 184
5.4 VMware的網路和存儲虛擬化 184
5.4.1 網路虛擬化 184
5.4.2 存儲虛擬化 186
習題 188
參考文獻 188
第6章 Hadoop:Google雲計算的開源實現 189
6.1 Hadoop簡介 189
6.2 Hadoop分散式檔案系統HDFS 190
6.2.1 設計前提與目標 190
6.2.2 體系結構 191
6.2.3 保障可靠性的措施 192
6.2.4 提升性能的措施 194
6.2.5 訪問接口 195
6.3 分散式數據處理MapReduce 196
6.3.1 邏輯模型 196
6.3.2 實現機制 196
6.4 分散式結構化數據表HBase 197
6.4.1 邏輯模型 198
6.4.2 物理模型 198
6.4.3 子表伺服器 199
6.4.4 主伺服器 199
6.4.5 元數據表 200
6.5 Hadoop安裝 200
6.5.1 在Linux系統中安裝Hadoop 200
6.5.2 在Windows系統中安裝Hadoop 208
6.6 HDFS使用 215
6.6.1 HDFS 常用命令 215
6.6.2 HDFS 基準測試 219
6.7 HBase安裝使用 219
6.7.1 HBase的安裝配置 219
6.7.2 HBase的執行 220
6.7.3 Hbase編程實例 221
6.8 MapReduce編程 223
6.8.1 矩陣相乘算法設計 223
6.8.2 編程實現 224
習題 226
參考文獻 226
第7章 Eucalyptus:Amazon雲計算的開源實現 228
7.1 Eucalyptus簡介 228
7.2 Eucalyptus技術實現 229
7.2.1 體系結構 229
7.2.2 主要構件 230
7.2.3 訪問接口 230
7.2.4 服務等級協定 231
7.2.5 虛擬組網 232
7.3 Eucalyptus安裝與使用 233
7.3.1 在Linux系統中安裝Eucalyptus 233
7.3.2 Eucalyptus配置和管理 236
7.3.3 Eucalyptus常用命令的示例和說明 238
習題 240
參考文獻 240
第8章 其他開源雲計算系統 241
8.1 簡介 241
8.1.1 Cassandra 241
8.1.2 Hive 242
8.1.3 VoltDB 242
8.1.4 Enomaly ECP 243
8.1.5 Nimbus 244
8.1.6 Sector and Sphere 245
8.1.7 abiquo 247
8.1.8 MongoDB 247
8.2 Cassandra 249
8.2.1 體系結構 249
8.2.2 數據模型 250
8.2.3 存儲機制 251
8.2.4 讀/寫刪過程 252
8.3 Hive 254
8.3.1 整體構架 254
8.3.2 數據模型 255
8.3.3 HQL語言 257
8.3.4 環境搭建 259
8.4 VoltDB 260
8.4.1 整體架構 260
8.4.2 自動數據分片技術 261
習題 264
參考文獻 264
第9章 雲計算仿真器CloudSim 265
9.1 CloudSim簡介 265
9.2 CloudSim體系結構 265
9.2.1 CloudSim核心模擬引擎 266
9.2.2 CloudSim層 268
9.2.3 用戶代碼層 271
9.3 CloudSim技術實現 271
9.4 CloudSim的使用方法 274
9.4.1 環境配置 274
9.4.2 運行樣例程式 274
9.5 CloudSim的擴展 277
9.5.1 調度策略的擴展 277
9.5.2 仿真核心代碼 280
9.5.3 平台重編譯 286
習題 287
參考文獻 287
第10章 雲計算研究熱點 288
10.1 雲計算體系結構研究 288
10.1.1 Youseff劃分方法 288
10.1.2 Lenk劃分方法 290
10.2 雲計算關鍵技術研究 292
10.2.1 虛擬化技術 292
10.2.2 數據存儲技術 293
10.2.3 資源管理技術 295
10.2.4 能耗管理技術 298
10.2.5 雲監測技術 301
10.3 編程模型研究 303
10.3.1 All-Pairs編程模型 303
10.3.2 GridBatch編程模型 304
10.3.3 其他編程模型 305
10.4 支撐平台研究 306
10.4.1 Cumulus:數據中心科學雲 306
10.4.2 CARMEN:e-Science雲計算 307
10.4.3 RESERVOIR:雲服務融合平台 308
10.4.4 TPlatform:Hadoop的變種 309
10.4.5 P2P環境的MapReduce 309
10.4.6 Yahoo雲計算平台 311
10.4.7 微軟的Dryad框架 311
10.4.8 Neptune框架 312
10.5 套用研究 313
10.5.1 語義分析套用 313
10.5.2 生物學套用 314
10.5.3 資料庫套用 315
10.5.4 地理信息套用 316
10.5.5 商業套用 317
10.5.6 醫學套用 318
10.5.7 社會智慧型套用 319
10.6 雲安全研究 321
10.6.1 Anti-Spam Grid:反垃圾郵件格線 321
10.6.2 CloudAV:終端惡意軟體檢測 323
10.6.3 AMSDS:惡意軟體簽名自動檢測 324
10.6.4 CloudSEC:協作安全服務體系結構 325
習題 327
參考文獻 327
第11章 總結與展望 332
11.1 主流商業雲計算解決方案比較 332
11.1.1 套用場景 332
11.1.2 使用流程 334
11.1.3 體系結構 335
11.1.4 實現技術 335
11.1.5 核心業務 336
11.2 主流開源雲計算系統比較 338
11.2.1 開發目的 338
11.2.2 體系結構 339
11.2.3 實現技術 340
11.2.4 核心服務 340
11.3 國內代表性雲計算平台比較 341
11.3.1 中國移動“大雲” 341
11.3.2 阿里巴巴“阿里雲” 343
11.3.3 “大雲”與“阿里雲”的比較 343
11.4 雲計算的歷史坐標與發展方向 344
11.4.1 網際網路發展的階段劃分 344
11.4.2 雲格(Gloud)——雲計算的未來 346
習題 348
參考文獻 349