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