關(guān)于我們
書單推薦
新書推薦
|
云計算原理與實踐
本書跨越云計算的各個層次,全面、系統(tǒng)地介紹了云計算的基本概念、原理和技術(shù),并結(jié)合產(chǎn)業(yè)實踐介紹了云計算的新發(fā)展和相關(guān)的工程問題。本書內(nèi)容涵蓋云計算的價值和技術(shù)框架、數(shù)據(jù)中心、網(wǎng)絡(luò)、虛擬化技術(shù)、分布式存儲技術(shù)、云數(shù)據(jù)庫、中間件和分布式部署,并從產(chǎn)業(yè)角度給出了對云計算的理解和思考以及云上架構(gòu)設(shè)計的常用方法和佳實踐。本書適合作為高等院校計算機、電子工程及相關(guān)專業(yè)云計算課程的教材,也適合作為對云計算技術(shù)有興趣的技術(shù)人員和研究人員的參考書。
PREFACE前言Computation may someday be organized as a public utility.——John McCarthy(美國計算機科學(xué)家和認(rèn)知科學(xué)家,1971年圖靈獎獲得者)讓計算以公共資源的形式更加便捷地服務(wù)于這個世界——這一想法早在20世紀(jì)60年代就已出現(xiàn)。幾十年過去,云計算概念的提出將愿望化作現(xiàn)實。毫無疑問,云計算是進入20世紀(jì)以來最重要的信息技術(shù)變革之一。雖然云不是某種特定的算法,也不是某個安裝在電腦中的軟件,更不是一個新興的硬件設(shè)備,但它卻成為當(dāng)今信息社會的重要基礎(chǔ)設(shè)施。無論是政府、企業(yè)、高校,還是其他團體或個人,都日益依賴云計算帶來的便捷。
盡管云計算已飛速發(fā)展多年,但目前市面上關(guān)于云計算的教材卻屈指可數(shù),將云計算的基本理論與產(chǎn)業(yè)實踐結(jié)合的教材更是鳳毛麟角。為此,上海交通大學(xué)計算機科學(xué)與工程學(xué)院申報了“教育部-阿里云產(chǎn)學(xué)合作協(xié)同育人項目”,在該項目的支持下進行云計算課程的建設(shè),并基于課程編寫了本書。本書是校企聯(lián)合建設(shè)課程并編寫教材的有益嘗試。在內(nèi)容上,本書全面系統(tǒng)地介紹了云計算的相關(guān)概念、方法、技術(shù)與現(xiàn)狀,充分融入產(chǎn)業(yè)界的先進理念,結(jié)合產(chǎn)業(yè)一線實踐,既反映了編者在云計算和互聯(lián)網(wǎng)規(guī)模系統(tǒng)設(shè)計領(lǐng)域的主要教學(xué)和科研成果,也展現(xiàn)了阿里云公司有關(guān)專家和工程師多年的技術(shù)積淀和開發(fā)經(jīng)驗。
本書有兩個突出的特點。首先,全書跨越云的各個層次,內(nèi)容全面而新穎。雖然以云計算為核心,但同樣重視云存儲;雖然主要著眼于云的系統(tǒng)平臺和軟件環(huán)境,但對同樣關(guān)鍵的硬件基礎(chǔ)設(shè)施(即數(shù)據(jù)中心)也做了較為詳盡的介紹。其次,本書是一部理論和實踐相結(jié)合的教材,論述深入淺出、易于理解。書中不僅介紹了經(jīng)典的虛擬化理論、網(wǎng)絡(luò)理論等,還以阿里云的真實系統(tǒng)為例,闡述了云計算實踐過程中的工程和技術(shù)問題。
本書面向計算機、電子工程等相關(guān)專業(yè)的學(xué)生,以及對云計算技術(shù)感興趣的技術(shù)人員和研究人員。第1章對云計算的基礎(chǔ)概念進行了闡述,使讀者初步了解云計算的誕生和發(fā)展,為后續(xù)的學(xué)習(xí)奠定基礎(chǔ)。第2章介紹數(shù)據(jù)中心及架構(gòu),讀者從中可以理解云計算這一無形服務(wù)的硬件根基和運行環(huán)境。第3章重點介紹云計算中的網(wǎng)絡(luò)技術(shù),由于云數(shù)據(jù)中心的訪問量大,因此對網(wǎng)絡(luò)有很高的要求。第4章重點介紹云計算的重要系統(tǒng)支撐——虛擬化技術(shù),本章對于理解云計算環(huán)境中的資源管理具有重要參考價值。第5章介紹分布式存儲技術(shù),在云環(huán)境下,數(shù)據(jù)存儲是核心問題之一,該章將應(yīng)用大量的案例來進行說明。第6章在云存儲基礎(chǔ)上介紹云數(shù)據(jù)庫的知識,建議想了解云計算對大數(shù)據(jù)的支持的讀者深入學(xué)習(xí)這一章。第7章和第8章分別對中間件和分布式部署進行介紹,其中包含豐富的實際產(chǎn)品細(xì)節(jié),建議學(xué)有余力的學(xué)生在此基礎(chǔ)上增加實踐操作。第9章從產(chǎn)業(yè)角度給出了對云計算的理解和思考,以及云上架構(gòu)設(shè)計的常用方法和最佳實踐,并對云計算的未來進行了展望。
本質(zhì)上,云計算不是一門獨立的技術(shù)領(lǐng)域,而是構(gòu)筑在多門已經(jīng)成熟的計算機技術(shù)領(lǐng)域之上的一個綜合體系。因此,本書可以看作是云計算相關(guān)技術(shù)體系的總覽,并以本書內(nèi)容為主線延伸到其他專業(yè)課程的學(xué)習(xí)中。在上海交通大學(xué)計算機科學(xué)與工程系的教學(xué)實踐中,學(xué)生通過這門課收獲最多的是關(guān)乎原理的“為何”(比如為何選擇虛擬化,為何不選擇傳統(tǒng)架構(gòu)等),然后是關(guān)乎技術(shù)的“如何”(比如如何實現(xiàn)高可靠性,如何分布式部署等),最后是關(guān)乎云計算實踐的應(yīng)用技巧和方法等。全書各章最后均附相關(guān)的習(xí)題,供讀者思考和練習(xí)。此外,每章之后還附有參考文獻,除相關(guān)書籍和論文外,我們還提供了主要技術(shù)開發(fā)者社區(qū)的博客和文章鏈接。考慮到云計算是一個技術(shù)快速更新的領(lǐng)域,讀者可以通過互聯(lián)網(wǎng)了解技術(shù)的最新動態(tài)和進展。
本書的成稿得益于很多人的付出和努力。感謝教育部高等學(xué)校計算機類專業(yè)教學(xué)指導(dǎo)委員會“系統(tǒng)能力培養(yǎng)研究項目”專家組的指導(dǎo),感謝上海交通大學(xué)計算機科學(xué)與工程系相關(guān)老師的付出,感謝阿里云公司唐洪、李妹芳、劉澍泉、任華華、文榮、姚偉斌、易立、湯志敏、曹鋒、林曉斌、鐘華、趙杰輝、李毅、王宇德、張良模、王曉斐等專家對本書技術(shù)內(nèi)容的指導(dǎo)和建議,感謝阿里云公司章文嵩、吳結(jié)生、盧毅軍、曲海峰、祝順民、朱照遠(yuǎn)、張獻濤、董元元、徐立、李文兆、陳舟鋒、周琦、仇應(yīng)俊、占超群、李妹芳等專家在授課過程中為本書提供了素材,特別感謝阿里云公司李妹芳以及機械工業(yè)出版社華章公司各位編輯的辛苦工作和大力支持。
云計算是一個充滿生機和活力的領(lǐng)域,限于作者的學(xué)識及視野,本書難免存在疏漏和理解不到位之處,歡迎各位同行和讀者批評指正。我們將不勝感激!
作者2017年7月
工學(xué)博士,現(xiàn)任上海交通大學(xué)計算機科學(xué)與技術(shù)系教授,博士生導(dǎo)師,電信學(xué)院一級責(zé)任教授。國家杰出青年基金獲得者。
CONTENTS
目 錄
叢書序言
本書編委會
序
前言
第1章 云計算概述 1
1.1 云計算的產(chǎn)生及發(fā)展 1
1.1.1 云計算的產(chǎn)生背景 1
1.1.2 云計算的特點 2
1.1.3 云計算發(fā)展簡史 3
1.1.4 知名的云計算服務(wù)提供商 3
1.2 云計算的基礎(chǔ)知識 4
1.2.1 云計算的概念 4
1.2.2 云服務(wù)的使用形態(tài) 5
1.2.3 云計算的服務(wù)類型 7
1.3 云計算的價值與典型的使用場景 8
1.3.1 云計算的價值 8
1.3.2 云計算典型的使用場景 9
1.4 云計算平臺架構(gòu) 11
1.4.1 AWS平臺架構(gòu) 11
1.4.2 阿里云平臺架構(gòu) 12
1.4.3 谷歌云平臺 13
1.4.4 幾種云計算平臺的特點 15
1.5 云計算部署小實例 15
1.6 云計算的核心技術(shù) 18
1.7 云計算的生態(tài) 22
本章小結(jié) 23
習(xí)題 24
參考文獻與進一步閱讀 24
第2章 數(shù)據(jù)中心 25
2.1 數(shù)據(jù)中心基礎(chǔ)設(shè)施 25
2.1.1 數(shù)據(jù)中心的基本組成 26
2.1.2 機房規(guī)劃與設(shè)計 30
2.1.3 基礎(chǔ)設(shè)施運維 33
2.1.4 數(shù)據(jù)中心的評價 35
2.2 云計算數(shù)據(jù)中心 41
2.2.1 云數(shù)據(jù)中心的發(fā)展 41
2.2.2 互聯(lián)網(wǎng)數(shù)據(jù)中心 42
2.2.3 多租戶數(shù)據(jù)中心 42
2.2.4 數(shù)據(jù)中心多級架構(gòu) 43
2.2.5 模塊化設(shè)計與硬件重構(gòu) 43
2.3 阿里云數(shù)據(jù)中心 45
2.3.1 綠色環(huán)保新實踐 45
2.3.2 數(shù)據(jù)中心設(shè)計新實踐 46
2.3.3 云計算應(yīng)用新實踐 46
本章小結(jié) 46
習(xí)題 47
參考文獻與進一步閱讀 47
第3章 網(wǎng)絡(luò) 48
3.1 網(wǎng)絡(luò)架構(gòu) 48
3.1.1 數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu) 49
3.1.2 區(qū)域網(wǎng)絡(luò)架構(gòu) 50
3.1.3 核心網(wǎng)架構(gòu) 51
3.1.4 邊緣或內(nèi)容分發(fā)網(wǎng)絡(luò)架構(gòu) 52
3.2 數(shù)據(jù)中心網(wǎng)絡(luò) 53
3.2.1 數(shù)據(jù)中心網(wǎng)絡(luò)概述 53
3.2.2 數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)技術(shù)演進 54
3.3 邊界網(wǎng)絡(luò)和CDN 57
3.3.1 HTTP 58
3.3.2 DNS 59
3.3.3 CDN的基本原理 61
3.3.4 CDN的應(yīng)用 66
3.3.5 阿里云CDN 68
3.3.6 CDN的安全 71
3.4 網(wǎng)絡(luò)虛擬化技術(shù) 72
3.4.1 網(wǎng)絡(luò)虛擬化的概念 72
3.4.2 網(wǎng)絡(luò)虛擬化的原理 74
3.4.3 虛擬網(wǎng)絡(luò)互聯(lián) 76
3.4.4 主流開源項目介紹 79
3.4.5 阿里云的虛擬專有網(wǎng)絡(luò) 81
3.5 負(fù)載均衡技術(shù) 83
3.5.1 負(fù)載均衡的原理 83
3.5.2 四層負(fù)載均衡 84
3.5.3 七層負(fù)載均衡 86
3.5.4 DNS負(fù)載均衡 88
3.5.5 開源負(fù)載均衡概述 88
3.5.6 阿里云負(fù)載均衡服務(wù) 90
本章小結(jié) 92
習(xí)題 92
參考文獻與進一步閱讀 93
第4章 虛擬化 95
4.1 虛擬化技術(shù)概述 95
4.1.1 概念和歷史 95
4.1.2 虛擬化的意義 96
4.2 虛擬機的核心原理和技術(shù) 96
4.2.1 機器與接口 96
4.2.2 系統(tǒng)接口 96
4.2.3 運行模式 98
4.2.4 虛擬機的分類 99
4.3 虛擬化的實現(xiàn) 101
4.3.1 Xen虛擬機技術(shù) 101
4.3.2 KVM技術(shù) 103
4.3.3 其他資源虛擬化技術(shù) 104
4.4 虛擬機管理與調(diào)度 106
4.4.1 典型管理問題 106
4.4.2 彈性伸縮 108
4.5 容器技術(shù) 109
4.5.1 操作系統(tǒng)級虛擬化 109
4.5.2 Docker 110
4.5.3 容器與傳統(tǒng)虛擬機 111
4.5.4 Docker服務(wù)編排 112
4.5.5 Docker對云的擴展 114
4.6 阿里云虛擬化實踐 114
4.6.1 云服務(wù)器ECS 114
4.6.2 彈性伸縮機制 115
4.6.3 計費方式 116
4.6.4 阿里云虛擬化安全 116
4.6.5 阿里云容器服務(wù) 117
本章小結(jié) 125
習(xí)題 126
參考文獻與進一步閱讀 126
第5章 分布式存儲 127
5.1 分布式存儲基礎(chǔ) 127
5.1.1 分布式存儲面臨的問題和挑戰(zhàn) 127
5.1.2 帽子理論 128
5.1.3 數(shù)據(jù)一致性協(xié)議 132
5.2 數(shù)據(jù)復(fù)制與備份技術(shù) 140
5.2.1 數(shù)據(jù)復(fù)制技術(shù) 140
5.2.2 數(shù)據(jù)備份技術(shù) 143
5.2.3 歸檔存儲 145
5.3 存儲陣列和糾刪碼技術(shù) 150
5.3.1 RAID概述 150
5.3.2 RAID的級別 150
5.3.3 糾刪碼技術(shù) 152
5.3.4 云存儲系統(tǒng)的糾刪碼 154
5.4 塊存儲 156
5.4.1 塊存儲概述 156
5.4.2 常見的塊存儲設(shè)備 156
5.4.3 云存儲系統(tǒng)的塊設(shè)備 158
5.4.4 塊設(shè)備的存儲管理 159
5.5 文件存儲 162
5.5.1 文件存儲概述 162
5.5.2 NAS及其架構(gòu) 162
5.5.3 阿里云文件存儲 167
5.5.4 阿里云文件存儲的典型應(yīng)用 167
5.6 對象存儲 169
5.6.1 對象存儲概述 169
5.6.2 對象存儲設(shè)備及其關(guān)鍵技術(shù) 170
5.6.3 阿里云對象存儲 173
5.6.4 阿里云對象存儲的典型應(yīng)用 178
5.7 分布式索引技術(shù) 179
5.7.1 哈希表 179
5.7.2 B+樹 180
5.7.3 LSM樹 181
5.8 分布式鎖服務(wù) 183
5.8.1 Google Chubby 183
5.8.2 ZooKeeper 186
5.8.3 阿里云Nuwa 188
5.9 分布式文件系統(tǒng) 189
5.9.1 Google文件系統(tǒng) 190
5.9.2 Hadoop分布式文件系統(tǒng) 192
5.9.3 Ceph 195
5.9.4 Lustre 199
5.9.5 GlasterFS 200
5.9.6 阿里云Pangu 200
本章小結(jié) 202
習(xí)題 202
參考文獻與進一步閱讀 203
第6章 云數(shù)據(jù)庫 204
6.1 云數(shù)據(jù)庫概述 204
6.1.1 云數(shù)據(jù)庫的現(xiàn)狀和演化 204
6.1.2 OLTP和OLAP 205
6.1.3 常見的數(shù)據(jù)庫類型及其管理系統(tǒng) 206
6.1.4 云數(shù)據(jù)庫關(guān)鍵組件及應(yīng)用場景 207
6.2 云數(shù)據(jù)庫的設(shè)計和架構(gòu) 208
6.2.1 高可靠性 208
6.2.2 高可用性 209
6.2.3 高安全性 210
6.2.4 良好的兼容性 210
6.2.5 云數(shù)據(jù)庫架構(gòu) 210
6.3 云數(shù)據(jù)庫的關(guān)鍵技術(shù) 213
6.3.1 數(shù)據(jù)庫的擴展 213
6.3.2 大規(guī)模數(shù)據(jù)庫的實現(xiàn) 213
6.3.3 共享型和分布式數(shù)據(jù)庫 215
6.3.4 智能運維和數(shù)據(jù)化管理 215
6.4 表格存儲 216
6.4.1 表格存儲概述 216
6.4.2 一些業(yè)界產(chǎn)品 218
6.4.3 阿里云表格存儲 219
6.4.4 典型案例分析 221
6.5 關(guān)系型數(shù)據(jù)庫 222
6.5.1 關(guān)系型數(shù)據(jù)庫概述 222
6.5.2 常用的關(guān)系型數(shù)據(jù)庫 222
6.5.3 阿里云關(guān)系數(shù)據(jù)庫RDS 223
6.6 分布式數(shù)據(jù)庫 225
6.6.1 分布式數(shù)據(jù)庫概述 225
6.6.2 分布式數(shù)據(jù)庫的發(fā)展 226
6.6.3 常用的分布式數(shù)據(jù)庫 228
6.7 內(nèi)存數(shù)據(jù)庫 230
6.7.1 內(nèi)存數(shù)據(jù)庫概述 230
6.7.2 內(nèi)存數(shù)據(jù)庫的歷史和發(fā)展 231
6.7.3 常用的內(nèi)存數(shù)據(jù)庫 232
6.7.4 內(nèi)存數(shù)據(jù)庫存在的問題 234
本章小結(jié) 236
習(xí)題 236
參考文獻與進一步閱讀 237
第7章 云計算中間件 238
7.1 中間件概述 238
7.1.1 應(yīng)用的復(fù)雜性 239
7.1.2 中間件的產(chǎn)生和發(fā)展 240
7.1.3 中間件與SOA、微服務(wù)之間的關(guān)系 242
7.1.4 中間件的分類 243
7.1.5 云計算中間件 243
7.1.6 主流廠商的中間件 245
7.2 云計算中間件的關(guān)鍵技術(shù) 248
7.2.1 架構(gòu)設(shè)計原則 248
7.2.2 高性能服務(wù)框架 252
7.2.3 消息服務(wù) 252
7.2.4 分布式事務(wù) 253
7.2.5 數(shù)據(jù)化運維 254
7.2.6 服務(wù)化和服務(wù)治理 254
7.2.7 容器 255
7.3 日志服務(wù) 255
7.3.1 典型應(yīng)用場景 256
7.3.2 常見的日志系統(tǒng) 258
7.3.3 阿里云日志服務(wù) 261
7.4 消息中間件 263
7.4.1 使用場景和特點 263
7.4.2 同步/異步調(diào)用模式 266
7.4.3 點對點和發(fā)布/訂閱模型 267
7.4.4 主流消息中間件 269
7.4.5 案例分析:抽獎系統(tǒng) 273
7.5 阿里云企業(yè)級分布式應(yīng)用服務(wù) 274
7.5.1 應(yīng)用場景需求 274
7.5.2 系統(tǒng)架構(gòu) 275
7.5.3 服務(wù)化和服務(wù)治理 276
7.5.4 核心組件和功能 278
7.6 云計算中間件發(fā)展趨勢 280
7.6.1 產(chǎn)品化和智能化 280
7.6.2 平臺化和深度融合 281
本章小結(jié) 281
習(xí)題 281
參考文獻與進一步閱讀 281
第8章 分布式部署與監(jiān)控 283
8.1 軟件分布式部署概述 283
8.1.1 功能模塊 283
8.1.2 軟件部署的內(nèi)容 283
8.1.3 軟件部署模式 284
8.1.4 軟件的分布式部署 284
8.2 互聯(lián)網(wǎng)大規(guī)模的軟件分布式部署的設(shè)計 285
8.2.1 三大技術(shù)挑戰(zhàn) 285
8.2.2 設(shè)計原則 285
8.3 分布式部署系統(tǒng)案例 287
8.3.1 微軟Autopilot系統(tǒng) 287
8.3.2 谷歌Borg系統(tǒng) 288
8.3.3 Facebook的Dynamo系統(tǒng) 289
8.4 阿里云天基系統(tǒng) 290
8.4.1 基本概念 290
8.4.2 工作原理 291
8.4.3 部署與擴容 291
8.4.4 升級 292
8.4.5 自動修復(fù) 293
8.4.6 調(diào)度系統(tǒng) 293
8.4.7 監(jiān)控系統(tǒng) 294
8.5 阿里云監(jiān)控 295
8.5.1 核心監(jiān)控服務(wù) 296
8.5.2 服務(wù)調(diào)用方式 296
8.5.3 云主機監(jiān)控 297
8.5.4 云服務(wù)監(jiān)控 298
本章小結(jié) 299
習(xí)題 299
參考文獻與進一步閱讀 300
第9章 云計算產(chǎn)業(yè)實踐 301
9.1 云計算帶來的產(chǎn)業(yè)變革 301
9.2 云計算的價值 302
9.2.1 商業(yè)價值 302
9.2.2 技術(shù)價值 304
9.3 云上架構(gòu)設(shè)計最佳實踐 306
9.3.1 安全 306
9.3.2 高可用 310
9.3.3 可擴展 312
9.3.4 高性能 316
9.3.5 成本效益 319
9.3.6 可運維 320
9.4 行業(yè)解決方案 321
9.4.1 行業(yè)解決方案的多維性 322
9.4.2 應(yīng)用案例:游戲行業(yè)的日志分析 322
9.4.3 從1到千萬用戶的方案演進 326
9.4.4 行業(yè)客戶案例 329
9.5 云上典型應(yīng)用開發(fā) 331
9.5.1 云上應(yīng)用開發(fā)原則 331
9.5.2 從0開始搭建網(wǎng)站 333
9.6 云計算趨勢的思考 336
9.6.1 公共云和混合云 336
9.6.2 極“智”未來 336
9.6.3 IoT遇上大數(shù)據(jù) 337
9.6.4 云生態(tài) 337
9.6.5 云上獨角獸 337
9.6.6 全球化 337
本章小結(jié) 338
習(xí)題 338
參考文獻與進一步閱讀 338
你還可能感興趣
我要評論
|