第1章 緒論 1
1.1 摩爾定律 1
1.2 云計算的出現(xiàn) 3
1.3 從領域應用需求看云計算 5
1.3.1 城市交通系統(tǒng)概述 5
1.3.2 信息處理基礎設施需求 6
1.3.3 海量數(shù)據(jù)集成和處理的需求 7
1.3.4 多應用系統(tǒng)集成和協(xié)同的需求 8
1.3.5 傳統(tǒng)技術面臨的挑戰(zhàn) 10
1.4 云計算能帶來什么 14
1.5 如何盡快學好云計算 15
1.6 思考題 16
第2章 云計算初探 17
2.1 云計算的定義和基本特征 17
2.2 云計算的發(fā)展動因和沿革 19
2.2.1 計算模式的演變 20
2.2.2 互聯(lián)網基礎設施的演變 21
2.2.3 數(shù)據(jù)管理的演變 22
2.2.4 應用軟件形態(tài)的演變 24
2.2.5 人機交互方式的演變 25
2.3 云基礎設施體系架構與核心技術 27
2.4 搭建和使用云基礎設施所要解決的核心問題 29
2.5 小結 31
2.6 思考題 31
第3章 如何實現(xiàn)連網設備的優(yōu)化利用與彈性伸縮 32
3.1 引言 32
3.2 虛擬化 33
3.2.1 虛擬化的定義 34
3.2.2 虛擬化的歷史沿革與分類 35
3.3 服務器虛擬化 36
3.3.1 核心概念 36
3.3.2 關鍵特性 37
3.3.3 面臨的問題 38
3.4 服務器虛擬化關鍵技術 39
3.4.1 服務器虛擬化的實施過程 39
3.4.2 動態(tài)資源優(yōu)化 41
3.4.3 虛擬機遷移 42
3.5 虛擬化資源環(huán)境建設與管理 43
3.5.1 虛擬化資源管理平臺體系架構 44
3.5.2 虛擬化資源管理平臺模塊功能 45
3.5.3 虛擬化資源管理平臺管理流程 47
3.6 小結 48
3.7 思考題 49
第4章 如何實現(xiàn)大規(guī)模數(shù)據(jù)的彈性存儲 50
4.1 引言 50
4.2 彈性存儲的核心問題 51
4.2.1 命名空間 52
4.2.2 元數(shù)據(jù)管理 54
4.2.3 故障和錯誤處理 55
4.2.4 性能和效率 61
4.3 HDFS 62
4.3.1 HDFS的目標和基本假設條件 62
4.3.2 HDFS體系架構 63
4.3.3 性能保障 65
4.3.4 訪問接口 68
4.4 HDFS的管理與應用 69
4.4.1 基于命令行的管理與應用 69
4.4.2 基于Java API的管理與應用 73
4.5 應用實例:視頻文件管理系統(tǒng) 76
4.5.1 需求分析 76
4.5.2 系統(tǒng)設計 77
4.5.3 系統(tǒng)實現(xiàn) 78
4.6 小結 82
4.7 思考題 82
第5章 如何實現(xiàn)海量多元數(shù)據(jù)的高效管理 83
5.1 引言 83
5.2 NoSQL數(shù)據(jù)庫 84
5.2.1 NoSQL數(shù)據(jù)庫設計原理 84
5.2.2 NoSQL數(shù)據(jù)庫數(shù)據(jù)模型 86
5.2.3 NoSQL數(shù)據(jù)庫的數(shù)據(jù)劃分技術 90
5.2.4 NoSQL數(shù)據(jù)庫及其分類 94
5.2.5 NoSQL數(shù)據(jù)庫的優(yōu)勢和劣勢 95
5.3 HBase數(shù)據(jù)庫系統(tǒng) 99
5.3.1 數(shù)據(jù)模型 99
5.3.2 系統(tǒng)架構 101
5.3.3 HBase訪問接口 106
5.4 HBase的管理與應用 106
5.4.1 基于命令行的管理與應用 106
5.4.2 基于Java API的管理與應用 111
5.5 應用實例:交通監(jiān)控圖片管理 116
5.5.1 需求分析 116
5.5.2 系統(tǒng)設計 116
5.5.3 系統(tǒng)實現(xiàn) 117
5.6 小結 122
5.7 思考題 122
第6章 如何實現(xiàn)大規(guī)模數(shù)據(jù)的并行分析與處理 123
6.1 引言 123
6.2 MapReduce的由來和原理 124
6.2.1 一個樸素的單詞計數(shù)程序 124
6.2.2 多線程并行化單詞計數(shù)程序 124
6.2.3 使用分塊存儲的單詞計數(shù)程序 125
6.2.4 在多臺計算機上并行運行的單詞計數(shù)程序 126
6.2.5 MapReduce的提出 127
6.2.6 MapReduce的設計思想 129
6.3 MapReduce的開源實現(xiàn)——Hadoop 131
6.3.1 Hadoop運行環(huán)境 131
6.3.2 Hadoop工作流程 132
6.3.3 Hadoop作業(yè)運行機制 133
6.4 Hadoop中的數(shù)據(jù)類型和格式 140
6.4.1 文件輸入 141
6.4.2 其他輸入格式 143
6.4.3 輸出格式 143
6.5 Hadoop編程案例 143
6.5.1 單詞計數(shù)程序例子回顧 143
6.5.2 數(shù)據(jù)去重 146
6.5.3 數(shù)據(jù)排序 149
6.6 小結 153
6.7 思考題 153
第7章 如何利用云中的各類資源 154
7.1 引言 154
7.2 服務計算基礎 155
7.2.1 服務的基本概念 155
7.2.2 SOA基本原理 156
7.2.3 Web服務的兩種基本形態(tài) 157
7.3 云服務與一切皆服務的交付模式 160
7.3.1 云服務的定義和分類 160
7.3.2 XaaS與一切皆服務的交付模式 162
7.3.3 云服務案例 163
7.4 服務開發(fā)實踐 165
7.4.1 Java與Web服務開發(fā) 165
7.4.2 SOAP服務開發(fā)實踐 166
7.4.3 REST服務開發(fā)實踐 170
7.5 小結 172
7.6 思考題 172
第8章 如何進行云應用開發(fā) 173
8.1 引言 173
8.2 面向多租戶的云應用設計 174
8.2.1 多租戶與應用交付模式 174
8.2.2 多租戶應用的設計要求 175
8.2.3 多租戶應用的實現(xiàn)方法 176
8.2.4 業(yè)界現(xiàn)狀 177
8.3 基于服務組合的云應用開發(fā)方法 178
8.3.1 面向IT開發(fā)人員的服務組合 178
8.3.2 面向最終用戶的服務組合 187
8.4 云應用的部署 198
8.5 小結 201
8.6 思考題 202
第9章 如何保證安全 203
9.1 引言 203
9.2 云基礎設施安全 204
9.2.1 網絡硬件安全 204
9.2.2 主機系統(tǒng)安全 206
9.2.3 安全管理 209
9.3 云數(shù)據(jù)安全 211
9.3.1 數(shù)據(jù)存儲安全 212
9.3.2 數(shù)據(jù)訪問安全 213
9.3.3 數(shù)據(jù)管理安全 214
9.4 云應用安全 215
9.4.1 用戶認證 215
9.4.2 應用授權 216
9.5 云安全標準和法律法規(guī) 219
9.6 小結 221
9.7 思考題 221
第10章 綜合實踐:交通流量監(jiān)控 222
10.1 引言 222
10.2 需求分析 222
10.3 基礎環(huán)境搭建 224
10.4 數(shù)據(jù)準備 228
10.5 數(shù)據(jù)統(tǒng)計和索引 233
10.6 查詢接口封裝 236
10.7 應用界面開發(fā) 238
10.8 云應用開發(fā)總結 239
10.9 思考題 241
附錄A OpenStack的安裝與配置 242
A.1 總體規(guī)劃 242
A.2 操作系統(tǒng)準備 243
A.3 安裝OPENSTACK組件 244
A.4 KEYSTONE的配置、運行與測試 247
A.5 GLANCE的配置、運行與測試 249
A.6 NOVA的配置、運行與測試 251
A.7 HORIZON的配置、運行與測試 255
A.8 安裝與配置計算節(jié)點 257
附錄B Hadoop的安裝與配置 261
B.1 環(huán)境準備 261
B.2 配置在單節(jié)點(偽分布式)環(huán)境下運行HADOOP 262
B.3 在多節(jié)點(分布式)環(huán)境下運行HADOOP 266
B.4 運行WORDCOUNT詞頻統(tǒng)計程序 269
附錄C HBase的安裝與配置 272
C.1 單機版 272
C.2 偽分布模式 273
C.3 完全分布模式 274
參考文獻 277