当前: 首页 - 图书专区 - 云计算原理与实践
云计算原理与实践


  在线购买
过敏意 主编 吴晨涛 李超 阮娜 陈雨亭 编著
978-7-111-57970-0
79.00
358
2017年09月21日

计算机 > 软件与程序设计 > 分布式系统设计

184
简体中文
16

教材
计算机类专业系统能力培养系列教材








本书介绍了云计算的基本概念、原理,内容包括数据中心、虚拟化、容器、网络、云数据库、云存储、CDN、高性能计算等,并通过阿里云的实际产品案例说明这些原理的实际应用。
在教育部高等学校计算机类专业教学指导委员会“系统能力培养研究项目”研制的课程体系中,云计算是一个重要的课程方向。本书是将云计算的相关理论与工程实践有机融合、创新课程内容的有益尝试,对高校系统能力培养课程改革将起到积极的作用。
—— 王志英  国防科技大学教授,教育部高等学校计算机类专业教学指导委员会副主任
人类科技的变革总是会伴生一些关键词:蒸汽机、电、汽车、互联网、云计算、AI,而云计算是这十年乃至未来十年的一个关键科技领域,它代表了科技产业在标准、成本、效率、能力的重新定义,认识云计算就是了解通往未来的必经之路。
—— 李津  阿里云资深总监

云计算是21世纪重要的信息技术之一,它使计算能力成为一种即取即用的资源,为大数据、智能等变革做好了基础设施的准备。本质上,云计算是建立在多门已经成熟的计算机技术领域之上的一个综合体系,是对多种计算机技术的综合运用。尽管云计算已经飞速发展多年,但关于云计算的教材仍屈指可数。本书是在“教育部-阿里云产学合作协同育人项目”和教育部高等学校计算机类专业教学指导委员会“系统能力培养研究项目”的支持下,基于上海交通大学开设的云计算课程,由课程教师和企业专家共同编写而成的,旨在帮助读者全面了解云计算。
本书特点
全面、系统地展现了云计算技术体系,通过学习本书,读者可掌握云计算相关的概念、方法、技术与现状,了解云计算领域的研究热点和技术进展,具备初步的云计算开发和实战能力。
内容跨越云的各个层次,以全新的视角安排教材内容。以云计算为核心,但同样重视云存储;主要着眼于云的系统平台和软件环境,但同样关注硬件基础设施(即数据中心)等。这样的安排有助于读者从系统角度认识云计算,理解其产生和发展。
力求做到理论和实践相结合。本书不仅涵盖经典的虚拟化、分布式、存储、网络等理论,还融入了以阿里云为代表的真实系统的案例,将云计算实践过程中沉淀的工程化方法和思考呈现在读者面前。
作者简介
过敏意 教授,博士生导师,国家杰出青年科学基金获得者,2010年入选国家千人计划。现任上海交通大学计算机科学与工程系主任,上海交通大学“致远”讲席教授,教育部创新团队学术带头人。研究方向为嵌入式与普适计算、并行与分布式计算、编译与程序优化等,在各种学术期刊、会议上发表了超过300篇论文,出版英文著作3部。主持973计划项目、国家杰出青年科学基金、国家自然科学基金重点项目、863项目等,并担任多个国际著名期刊编委。
——John McCarthy(美国计算机科学家和认知科学家,1971年图灵奖获得者)

让计算以公共资源的形式更加便捷地服务于这个世界——这一想法早在20世纪60年代就已出现。几十年过去,云计算概念的提出将愿望化作现实。毫无疑问,云计算是进入20世纪以来最重要的信息技术变革之一。虽然云不是某种特定的算法,也不是某个安装在电脑中的软件,更不是一个新兴的硬件设备,但它却成为当今信息社会的重要基础设施。无论是政府、企业、高校,还是其他团体或个人,都日益依赖云计算带来的便捷。
尽管云计算已飞速发展多年,但目前市面上关于云计算的教材却屈指可数,将云计算的基本理论与产业实践结合的教材更是凤毛麟角。为此,上海交通大学计算机科学与工程学院申报了“教育部-阿里云产学合作协同育人项目”,在该项目的支持下进行云计算课程的建设,并基于课程编写了本书。本书是校企联合建设课程并编写教材的有益尝试。在内容上,本书全面系统地介绍了云计算的相关概念、方法、技术与现状,充分融入产业界的先进理念,结合产业一线实践,既反映了编者在云计算和互联网规模系统设计领域的主要教学和科研成果,也展现了阿里云公司有关专家和工程师多年的技术积淀和开发经验。
本书有两个突出的特点。首先,全书跨越云的各个层次,内容全面而新颖。虽然以云计算为核心,但同样重视云存储;虽然主要着眼于云的系统平台和软件环境,但对同样关键的硬件基础设施(即数据中心)也做了较为详尽的介绍。其次,本书是一部理论和实践相结合的教材,论述深入浅出、易于理解。书中不仅介绍了经典的虚拟化理论、网络理论等,还以阿里云的真实系统为例,阐述了云计算实践过程中的工程和技术问题。
本书面向计算机、电子工程等相关专业的学生,以及对云计算技术感兴趣的技术人员和研究人员。第1章对云计算的基础概念进行了阐述,使读者初步了解云计算的诞生和发展,为后续的学习奠定基础。第2章介绍数据中心及架构,读者从中可以理解云计算这一无形服务的硬件根基和运行环境。第3章重点介绍云计算中的网络技术,由于云数据中心的访问量大,因此对网络有很高的要求。第4章重点介绍云计算的重要系统支撑——虚拟化技术,本章对于理解云计算环境中的资源管理具有重要参考价值。第5章介绍分布式存储技术,在云环境下,数据存储是核心问题之一,该章将应用大量的案例来进行说明。第6章在云存储基础上介绍云数据库的知识,建议想了解云计算对大数据的支持的读者深入学习这一章。第7章和第8章分别对中间件和分布式部署进行介绍,其中包含丰富的实际产品细节,建议学有余力的学生在此基础上增加实践操作。第9章从产业角度给出了对云计算的理解和思考,以及云上架构设计的常用方法和最佳实践,并对云计算的未来进行了展望。
本质上,云计算不是一门独立的技术领域,而是构筑在多门已经成熟的计算机技术领域之上的一个综合体系。因此,本书可以看作是云计算相关技术体系的总览,并以本书内容为主线延伸到其他专业课程的学习中。在上海交通大学计算机科学与工程系的教学实践中,学生通过这门课收获最多的是关乎原理的“为何”(比如为何选择虚拟化,为何不选择传统架构等),然后是关乎技术的“如何”(比如如何实现高可靠性,如何分布式部署等),最后是关乎云计算实践的应用技巧和方法等。全书各章最后均附相关的习题,供读者思考和练习。此外,每章之后还附有参考文献,除相关书籍和论文外,我们还提供了主要技术开发者社区的博客和文章链接。考虑到云计算是一个技术快速更新的领域,读者可以通过互联网了解技术的最新动态和进展。
本书的成稿得益于很多人的付出和努力。感谢教育部高等学校计算机类专业教学指导委员会“系统能力培养研究项目”专家组的指导,感谢上海交通大学计算机科学与工程系相关老师的付出,感谢阿里云公司唐洪、李妹芳、刘澍泉、任华华、文荣、姚伟斌、易立、汤志敏、曹锋、林晓斌、钟华、赵杰辉、李毅、王宇德、张良模、王晓斐等专家对本书技术内容的指导和建议,感谢阿里云公司章文嵩、吴结生、卢毅军、曲海峰、祝顺民、朱照远、张献涛、董元元、徐立、李文兆、陈舟锋、周琦、仇应俊、占超群、李妹芳等专家在授课过程中为本书提供了素材,特别感谢阿里云公司李妹芳以及机械工业出版社华章公司各位编辑的辛苦工作和大力支持。
云计算是一个充满生机和活力的领域,限于作者的学识及视野,本书难免存在疏漏和理解不到位之处,欢迎各位同行和读者批评指正。我们将不胜感激!

作 者
2017年7月
丛书序言
本书编委会

前言
第1章 云计算概述 1
1.1 云计算的产生及发展 1
1.1.1 云计算的产生背景 1
1.1.2 云计算的特点 2
1.1.3 云计算发展简史 3
1.1.4 知名的云计算服务提供商 3
1.2 云计算的基础知识 4
1.2.1 云计算的概念 4
1.2.2 云服务的使用形态 5
1.2.3 云计算的服务类型 7
1.3 云计算的价值与典型的使用场景 8
1.3.1 云计算的价值 8
1.3.2 云计算典型的使用场景 9
1.4 云计算平台架构 11
1.4.1 AWS平台架构 11
1.4.2 阿里云平台架构 12
1.4.3 谷歌云平台 13
1.4.4 几种云计算平台的特点 15
1.5 云计算部署小实例 15
1.6 云计算的核心技术 18
1.7 云计算的生态 22
本章小结 23
习题 24
参考文献与进一步阅读 24
第2章 数据中心 25
2.1 数据中心基础设施 25
2.1.1 数据中心的基本组成 26
2.1.2 机房规划与设计 30
2.1.3 基础设施运维 33
2.1.4 数据中心的评价 35
2.2 云计算数据中心 41
2.2.1 云数据中心的发展 41
2.2.2 互联网数据中心 42
2.2.3 多租户数据中心 42
2.2.4 数据中心多级架构 43
2.2.5 模块化设计与硬件重构 43
2.3 阿里云数据中心 45
2.3.1 绿色环保新实践 45
2.3.2 数据中心设计新实践 46
2.3.3 云计算应用新实践 46
本章小结 46
习题 47
参考文献与进一步阅读 47
第3章 网络 48
3.1 网络架构 48
3.1.1 数据中心网络架构 49
3.1.2 区域网络架构 50
3.1.3 核心网架构 51
3.1.4 边缘或内容分发网络架构 52
3.2 数据中心网络 53
3.2.1 数据中心网络概述 53
3.2.2 数据中心网络架构技术演进 54
3.3 边界网络和CDN 57
3.3.1 HTTP 58
3.3.2 DNS 59
3.3.3 CDN的基本原理 61
3.3.4 CDN的应用 66
3.3.5 阿里云CDN 68
3.3.6 CDN的安全 71
3.4 网络虚拟化技术 72
3.4.1 网络虚拟化的概念 72
3.4.2 网络虚拟化的原理 74
3.4.3 虚拟网络互联 76
3.4.4 主流开源项目介绍 79
3.4.5 阿里云的虚拟专有网络 81
3.5 负载均衡技术 83
3.5.1 负载均衡的原理 83
3.5.2 四层负载均衡 84
3.5.3 七层负载均衡 86
3.5.4 DNS负载均衡 88
3.5.5 开源负载均衡概述 88
3.5.6 阿里云负载均衡服务 90
本章小结 92
习题 92
参考文献与进一步阅读 93
第4章 虚拟化 95
4.1 虚拟化技术概述 95
4.1.1 概念和历史 95
4.1.2 虚拟化的意义 96
4.2 虚拟机的核心原理和技术 96
4.2.1 机器与接口 96
4.2.2 系统接口 96
4.2.3 运行模式 98
4.2.4 虚拟机的分类 99
4.3 虚拟化的实现 101
4.3.1 Xen虚拟机技术 101
4.3.2 KVM技术 103
4.3.3 其他资源虚拟化技术 104
4.4 虚拟机管理与调度 106
4.4.1 典型管理问题 106
4.4.2 弹性伸缩 108
4.5 容器技术 109
4.5.1 操作系统级虚拟化 109
4.5.2 Docker 110
4.5.3 容器与传统虚拟机 111
4.5.4 Docker服务编排 112
4.5.5 Docker对云的扩展 114
4.6 阿里云虚拟化实践 114
4.6.1 云服务器ECS 114
4.6.2 弹性伸缩机制 115
4.6.3 计费方式 116
4.6.4 阿里云虚拟化安全 116
4.6.5 阿里云容器服务 117
本章小结 125
习题 126
参考文献与进一步阅读 126
第5章 分布式存储 127
5.1 分布式存储基础 127
5.1.1 分布式存储面临的问题和挑战 127
5.1.2 帽子理论 128
5.1.3 数据一致性协议 132
5.2 数据复制与备份技术 140
5.2.1 数据复制技术 140
5.2.2 数据备份技术 143
5.2.3 归档存储 145
5.3 存储阵列和纠删码技术 150
5.3.1 RAID概述 150
5.3.2 RAID的级别 150
5.3.3 纠删码技术 152
5.3.4 云存储系统的纠删码 154
5.4 块存储 156
5.4.1 块存储概述 156
5.4.2 常见的块存储设备 156
5.4.3 云存储系统的块设备 158
5.4.4 块设备的存储管理 159
5.5 文件存储 162
5.5.1 文件存储概述 162
5.5.2 NAS及其架构 162
5.5.3 阿里云文件存储 167
5.5.4 阿里云文件存储的典型应用 167
5.6 对象存储 169
5.6.1 对象存储概述 169
5.6.2 对象存储设备及其关键技术 170
5.6.3 阿里云对象存储 173
5.6.4 阿里云对象存储的典型应用 178
5.7 分布式索引技术 179
5.7.1 哈希表 179
5.7.2 B+树 180
5.7.3 LSM树 181
5.8 分布式锁服务 183
5.8.1 Google Chubby 183
5.8.2 ZooKeeper 186
5.8.3 阿里云Nuwa 188
5.9 分布式文件系统 189
5.9.1 Google文件系统 190
5.9.2 Hadoop分布式文件系统 192
5.9.3 Ceph 195
5.9.4 Lustre 199
5.9.5 GlasterFS 200
5.9.6 阿里云Pangu 200
本章小结 202
习题 202
参考文献与进一步阅读 203
第6章 云数据库 204
6.1 云数据库概述 204
6.1.1 云数据库的现状和演化 204
6.1.2 OLTP和OLAP 205
6.1.3 常见的数据库类型及其管理系统 206
6.1.4 云数据库关键组件及应用场景 207
6.2 云数据库的设计和架构 208
6.2.1 高可靠性 208
6.2.2 高可用性 209
6.2.3 高安全性 210
6.2.4 良好的兼容性 210
6.2.5 云数据库架构 210
6.3 云数据库的关键技术 213
6.3.1 数据库的扩展 213
6.3.2 大规模数据库的实现 213
6.3.3 共享型和分布式数据库 215
6.3.4 智能运维和数据化管理 215
6.4 表格存储 216
6.4.1 表格存储概述 216
6.4.2 一些业界产品 218
6.4.3 阿里云表格存储 219
6.4.4 典型案例分析 221
6.5 关系型数据库 222
6.5.1 关系型数据库概述 222
6.5.2 常用的关系型数据库 222
6.5.3 阿里云关系数据库RDS 223
6.6 分布式数据库 225
6.6.1 分布式数据库概述 225
6.6.2 分布式数据库的发展 226
6.6.3 常用的分布式数据库 228
6.7 内存数据库 230
6.7.1 内存数据库概述 230
6.7.2 内存数据库的历史和发展 231
6.7.3 常用的内存数据库 232
6.7.4 内存数据库存在的问题 234
本章小结 236
习题 236
参考文献与进一步阅读 237
第7章 云计算中间件 238
7.1 中间件概述 238
7.1.1 应用的复杂性 239
7.1.2 中间件的产生和发展 240
7.1.3 中间件与SOA、微服务之间的关系 242
7.1.4 中间件的分类 243
7.1.5 云计算中间件 243
7.1.6 主流厂商的中间件 245
7.2 云计算中间件的关键技术 248
7.2.1 架构设计原则 248
7.2.2 高性能服务框架 252
7.2.3 消息服务 252
7.2.4 分布式事务 253
7.2.5 数据化运维 254
7.2.6 服务化和服务治理 254
7.2.7 容器 255
7.3 日志服务 255
7.3.1 典型应用场景 256
7.3.2 常见的日志系统 258
7.3.3 阿里云日志服务 261
7.4 消息中间件 263
7.4.1 使用场景和特点 263
7.4.2 同步/异步调用模式 266
7.4.3 点对点和发布/订阅模型 267
7.4.4 主流消息中间件 269
7.4.5 案例分析:抽奖系统 273
7.5 阿里云企业级分布式应用服务 274
7.5.1 应用场景需求 274
7.5.2 系统架构 275
7.5.3 服务化和服务治理 276
7.5.4 核心组件和功能 278
7.6 云计算中间件发展趋势 280
7.6.1 产品化和智能化 280
7.6.2 平台化和深度融合 281
本章小结 281
习题 281
参考文献与进一步阅读 281
第8章 分布式部署与监控 283
8.1 软件分布式部署概述 283
8.1.1 功能模块 283
8.1.2 软件部署的内容 283
8.1.3 软件部署模式 284
8.1.4 软件的分布式部署 284
8.2 互联网大规模的软件分布式部署的设计 285
8.2.1 三大技术挑战 285
8.2.2 设计原则 285
8.3 分布式部署系统案例 287
8.3.1 微软Autopilot系统 287
8.3.2 谷歌Borg系统 288
8.3.3 Facebook的Dynamo系统 289
8.4 阿里云天基系统 290
8.4.1 基本概念 290
8.4.2 工作原理 291
8.4.3 部署与扩容 291
8.4.4 升级 292
8.4.5 自动修复 293
8.4.6 调度系统 293
8.4.7 监控系统 294
8.5 阿里云监控 295
8.5.1 核心监控服务 296
8.5.2 服务调用方式 296
8.5.3 云主机监控 297
8.5.4 云服务监控 298
本章小结 299
习题 299
参考文献与进一步阅读 300
第9章 云计算产业实践 301
9.1 云计算带来的产业变革 301
9.2 云计算的价值 302
9.2.1 商业价值 302
9.2.2 技术价值 304
9.3 云上架构设计最佳实践 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 行业解决方案 321
9.4.1 行业解决方案的多维性 322
9.4.2 应用案例:游戏行业的日志分析 322
9.4.3 从1到千万用户的方案演进 326
9.4.4 行业客户案例 329
9.5 云上典型应用开发 331
9.5.1 云上应用开发原则 331
9.5.2 从0开始搭建网站 333
9.6 云计算趋势的思考 336
9.6.1 公共云和混合云 336
9.6.2 极“智”未来 336
9.6.3 IoT遇上大数据 337
9.6.4 云生态 337
9.6.5 云上独角兽 337
9.6.6 全球化 337
本章小结 338
习题 338
参考文献与进一步阅读 338
计算机/云计算
读者书评
发表评论



高级搜索
区块链开发指南
Ceph分布式存储实战
分布式实时处理系统:原理、架构与实现


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才