本書系統(tǒng)地講解了云計算的知識框架,包括云計算的三大認識角度(商業(yè)模式、計算范式、實現方式)、四個關鍵技術(計算、存儲、網絡、安全)、四種開發(fā)運維維度(云原生應用、云操作系統(tǒng)、云端軟件、云運維),以及三大應用場景(云桌面、開發(fā)云、大數據與人工智能)。
本書在大部分的章中安排了一個或多個基于開源軟件的實訓內容,以幫助讀者更有效地動手實踐,包括GitHub、Hadoop、OpenStack、KVM、Docker、Ceph、Mininet、Mesos、Kubernetes等。
1.云計算專家,同濟大學教授力作
2.華為公司提供真實企業(yè)開發(fā)案例
3.提供典型開源軟件實訓與案例
4.突出云計算系統(tǒng)內容,包括分布式計算、云計算架構、虛擬化技術及行業(yè)應用等
5.配套數字課程資源實訓平臺,并提供多媒體課件、案例代碼等豐富的配套資源
同濟大學計算機科學與技術系副教授,博士生導師,中國計算機學會會員,中國計算機學會教育工作委員會委員、中國計算機學會大數據專委會通訊委員、中國計算機學會體系結構專委會委員、上海計算機學會體系結構專委會委員、開源社理事會成員。榮獲第 二屆中國大數據創(chuàng)新百人稱號。
美國Wisconsin大學Madison分校作訪問學者,美國Florida大學作CSC訪問學者,曾掛職于上海徐匯區(qū)行政服務中心(副主任)。入選《同濟大學青年人才培養(yǎng)行動計劃》、《同濟大學青年英才計劃(青年教師計劃)》及《同濟大學青年英才計劃(青年教學科研骨干計劃)》。研究方向包括:云計算、大數據、時序數據分析、大規(guī)模在線學習系統(tǒng)
第 1章 云計算概述1
1.1初識云計算1
1.1.1云計算的定義1
1.1.2計算模式的演進過程4
1.1.3云計算簡史10
1.1.4云計算的推動力11
1.2云計算的公共特征與分類13
1.2.1云計算的公共特征13
1.2.2云計算的分類13
1.2.3與云計算有關的技術17
1.3云計算的三元認識論20
1.3.1 云計算作為一種商業(yè)模式20
1.3.2 云計算作為一種計算范式21
1.3.3 云計算作為一種實現方式22
1.4云計算的開源方法論23
1.4.1開源定義和相關概念23
1.4.2開源的價值和意義25
1.4.3開源發(fā)展歷程26
1.4.4開源是種方法論27
1.4.5開源對云計算人才培養(yǎng)帶來的挑戰(zhàn)28
1.5實踐:GitHub30
1.5.1 GitHub簡介30
1.5.2使用GitHub31
1.5.3 Github界面總覽37
1.6本章小結38
第 2章 分布式計算39
2.1分布式計算概述39
2.1.1基本概念39
2.1.2分布式計算的原理40
2.2分布式計算的理論基礎41
2.2.1 ACID原則41
2.2.2 CAP理論41
2.2.3 BASE理論44
2.2.4最終一致性45
2.2.5一致性散列46
2.3分布式系統(tǒng)概述49
2.3.1分布式系統(tǒng)的基礎知識49
2.3.2分布式系統(tǒng)的特性50
2.3.3分布式存儲系統(tǒng)實例:Apache Hadoop51
2.4分布式系統(tǒng)的進階53
2.4.1分布式存儲系統(tǒng)54
2.4.2分布式計算系統(tǒng)55
2.4.3分布式資源管理系統(tǒng)57
2.5典型的分布式系統(tǒng)60
2.5.1網格系統(tǒng)60
2.5.2 P2P系統(tǒng)63
2.5.3透明計算65
2.5.4區(qū)塊鏈系統(tǒng)68
2.6本章小結74
第3章 云計算架構75
3.1云計算的本質75
3.1.1革命性概念:IT作為服務75
3.1.2 云之道75
3.1.3云計算系統(tǒng)工程76
3.1.4云數據中心77
3.1.5云的工作負載模式77
3.1.6云計算的規(guī)模效應79
3.2云計算的架構81
3.2.1計算架構的進化81
3.2.2一般云計算架構的二維視角84
3.3云棧和云體87
3.3.1云棧87
3.3.2云體93
3.3.3 IT作為服務94
3.4軟件定義的數據中心95
3.4.1數據中心的歷史96
3.4.2繼續(xù)發(fā)展的推動力98
3.4.3軟件定義的必要性99
3.4.4軟件定義數據中心的架構分析100
3.4.5軟件定義數據中心的發(fā)展102
3.5實踐:OpenStack104
3.5.1 OpenStack是什么?104
3.5.2 OpenStack組件介紹107
3.5.3體驗使用OpenStack108
3.6本章小結109
第4章 虛擬化技術110
4.1虛擬化的定義110
4.2服務器虛擬化111
4.2.1 x86架構對虛擬化的限制112
4.2.2全虛擬化113
4.2.3半虛擬化114
4.2.4硬件輔助虛擬化114
4.3商用虛擬機技術115
4.4新型硬件虛擬化117
4.4.1硬件虛擬化背景117
4.4.2硬件虛擬化的代表118
4.4.3硬件虛擬化的未來119
4.5實踐:Xen虛擬化技術120
4.5.1 Xen的歷史120
4.5.2 Xen功能概覽120
4.5.3 Xen實際操作121
4.6實踐:KVM虛擬化技術125
4.6.1 KVM簡介125
4.6.2 KVM的基本安裝操作125
4.7輕量級虛擬化130
4.7.1容器技術簡介130
4.7.2容器與虛擬機的對比131
4.7.3 容器背后的內核知識132
4.8實踐:Docker容器134
4.8.1安裝Docker134
4.8.2運行第 一個Docker容器136
4.9本章小結137
第5章 分布式存儲138
5.1分布式存儲的基礎138
5.1.1基本概念138
5.1.2分布式存儲分類139
5.1.3分布式存儲的發(fā)展歷史141
5.2文件存儲144
5.2.1單機文件系統(tǒng)144
5.2.2網絡文件系統(tǒng)144
5.2.3并行文件系統(tǒng)145
5.2.4分布式文件系統(tǒng)146
5.2.5高通量文件系統(tǒng)146
5.3從單機存儲系統(tǒng)到分布式存儲系統(tǒng)147
5.3.1單機存儲系統(tǒng)147
5.3.2分布式存儲系統(tǒng)148
5.4實踐:分布式存儲系統(tǒng)Ceph152
5.4.1概述152
5.4.2設計思想153
5.4.3整體架構154
5.4.4集群部署156
5.5本章小結160
第6章 云計算網絡161
6.1基本概念161
6.1.1計算機網絡161
6.1.2覆蓋網絡162
6.1.3大二層網絡164
6.1.4租戶網絡164
6.2數據中心網絡:云計算的骨架165
6.2.1數據中心網絡拓撲165
6.2.2用 Mininet 搭建數據中心仿真環(huán)境167
6.3網絡虛擬化169
6.3.1靈活控制:軟件定義網絡(SDN)170
6.3.2快速部署:網絡功能虛擬化(NFV)176
6.4租戶網絡管理179
6.4.1網絡功能即服務(Network Function as a Service)180
6.4.2 OpenStack Neutron180
6.4.3 Group-Based Policy183
6.5實踐:用Mininet搭建OpenFlow實驗環(huán)境185
6.5.1 Mininet入門186
6.5.2 Mininet實驗187
6.6本章小結189
第7章 云計算安全190
7.1云安全概述190
7.1.1云計算安全挑戰(zhàn)190
7.1.2云計算安全現狀193
7.1.3云計算安全技術框架193
7.1.4云計算安全關鍵技術195
7.2虛擬機安全196
7.2.1虛擬化軟件棧安全威脅197
7.2.2虛擬化軟件棧安全防御201
7.2.3虛擬化安全總結202
7.3云存儲安全203
7.3.1云存儲的安全需求203
7.3.2安全云存儲系統(tǒng)概述204
7.3.3安全云存儲系統(tǒng)的一般架構204
7.3.4安全云存儲系統(tǒng)的關鍵技術205
7.4云數據安全207
7.4.1云數據面臨的安全威脅208
7.4.2云數據安全研究內容209
7.4.3云數據安全研究進展209
7.5實踐:全同態(tài)加密算法210
7.5.1 HElib庫的調試與分析210
7.5.2 FHE-CODE的調試與分析212
7.5.3全同態(tài)加密方案對比與分析213
7.6本章小結216
第8章 云原生應用的開發(fā)217
8.1云原生的相關概念217
8.1.1云原生簡介217
8.1.2云原生的內容218
8.1.3云原生應用的技術手段222
8.2云原生應用開發(fā)實踐的12要素225
8.3云原生應用開發(fā)234
8.3.1云原生應用開發(fā)的原則234
8.3.2云原生的落地:Kubernetes236
8.4實踐:基于Node.js的云原生應用開發(fā)238
8.5本章小結245
第9章 云計算操作系統(tǒng)246
9.1計算機軟件與操作系統(tǒng)246
9.1.1計算機軟件的發(fā)展246
9.1.2操作系統(tǒng)的發(fā)展簡史247
9.1.3操作系統(tǒng)的軟件定義本質249
9.2 UNIX類操作系統(tǒng)的發(fā)展250
9.2.1 UNIX系統(tǒng)簡介250
9.2.2 UNIX家族的演化251
9.2.3類UNIX系統(tǒng)的發(fā)展253
9.2.4 UNIX系統(tǒng)的展望254
9.3云操作系統(tǒng)概述255
9.3.1基本概念255
9.3.2云操作系統(tǒng)實例256
9.3.3云操作系統(tǒng)的挑戰(zhàn)257
9.3.4新一代云操作系統(tǒng)的職責與功能258
9.4云計算編程模型與環(huán)境259
9.4.1云計算環(huán)境下的編程困惑259
9.4.2云計算編程模型260
9.5云操作系統(tǒng)的資源調度262
9.5.1資源調度簡介263
9.5.2云操作系統(tǒng)下資源調度的挑戰(zhàn)263
9.5.3云計算資源調度的策略和算法264
9.6實踐:Mesos266
9.6.1 Mesos架構267
9.6.2 Mesos設計解讀269
9.6.3 在Mesos上運行Spark270
9.6.4 Mesos實現容器編排272
9.7本章小結273
第 10章 云端軟件274
10.1從軟件到云件274
10.1.1云件的基本概念274
10.1.2從軟件到云件的變遷275
10.1.3云件的關鍵技術279
10.1.4云件的開發(fā)、部署和運行模式280
10.2云件系統(tǒng)的架構設計與運行原理281
10.2.1計算與存儲的分離的設計理念281
10.2.2基于微服務架構的云件模型282
10.2.3云件的系統(tǒng)級架構設計286
10.3云件的開發(fā)模式與效果289
10.3.1云件的開發(fā)模式289
10.3.2云件的效果展示292
10.4云件在大規(guī)模在線實訓平臺中的應用293
10.4.1實訓平臺提出的背景293
10.4.2構建基于云件系統(tǒng)的大數據工程實訓平臺294
10.5實踐:云件應用開發(fā)實例298
10.6本章小結300
第 11章 云計算運維301
11.1云服務環(huán)境的監(jiān)控301
11.1.1云監(jiān)控概述301
11.1.2云監(jiān)控特性302
11.1.3云監(jiān)控需求302
11.1.4云監(jiān)控結構304
11.1.5關鍵技術306
11.2云監(jiān)控解決方案308
11.2.1云監(jiān)控的通用技術308
11.2.2容器的監(jiān)控310
11.3智能運維314
11.3.1智能運維的歷史315
11.3.2智能運維的內容316
11.3.3 AIOps的關鍵場景與技術319
11.3.4智能運維的展望326
11.4實例:智能運維在大視頻運維中的應用327
11.4.1背景介紹327
11.4.2人工智能技術在大視頻運維系統(tǒng)中的應用328
11.5本章小結333
第 12章 桌面云334
12.1桌面云概述334
12.1.1桌面云的發(fā)展歷史334
12.1.2什么是桌面云?335
12.2桌面云架構與關鍵技術337
12.2.1傳輸協(xié)議337
12.2.2服務層340
12.2.3資源層341
12.2.4安全342
12.2.5桌面云面臨的挑戰(zhàn)344
12.3桌面云典型應用案例344
12.3.1桌面云在政府中的應用345
12.3.2桌面云在運營商中的應用346
12.3.3桌面云在教育中的應用348
12.3.4桌面云在電力中的應用349
12.3.5桌面云在醫(yī)療中的應用352
12.3.6桌面云在工業(yè)中的應用354
12.4實踐:基于OpenStack的桌面云355
12.4.1Windows鏡像的制作355
12.4.2配置SPICE實現遠程訪問359
12.5本章小結360
第 13章 軟件開發(fā)云361
13.1軟件開發(fā)云的概念361
13.1.1傳統(tǒng)軟件開發(fā)中的挑戰(zhàn)361
13.1.2云計算給軟件開發(fā)帶來的新可能362
13.1.3云時代的軟件開發(fā)363
13.2華為軟件開發(fā)云服務364
13.2.1軟件交付的趨勢和挑戰(zhàn)364
13.2.2 DevCloud是什么 365
13.2.3 DevCloud核心理念366
13.3DevCloud技術方案366
13.3.1 DevCloud總體架構366
13.3.2 DevCloud主要服務367
13.4實踐:DevCloud實戰(zhàn)368
13.4.1 DevCloud登錄368
13.4.2項目管理369
13.4.3代碼托管370
13.4.4構建373
13.4.5測試374
13.4.6發(fā)布375
13.4.7部署376
13.4.8流水線377
13.5本章小結378
第 14章 大數據與人工智能379
14.1什么是大數據?379
14.1.1大數據的發(fā)展背景379
14.1.2大數據的定義381
14.1.3大數據的技術383
14.2什么是人工智能?385
14.2.1人工智能的歷史及概念385
14.2.2 人工智能的特征與參考框架388
14.2.3 人工智能的發(fā)展趨勢390
14.3云計算、大數據與人工智能的關系392
14.3.1云計算與大數據的融合393
14.3.2云計算與人工智能的融合394
14.4本章小結395
參考文獻396
論文閱讀399