编辑点评:云计算原理与实践pdf
云计算原理与实践,这套丛书还有 《Spark编程基础(数据科学与大数据技术专业系列规划教材)》,《机器学习》,《大数据技术基础(数据科学与大数据技术专业系列规划教材)》,《NoSQL数据库原理》,《Hadoop集群程序设计与开发》 等。
作者简介
同济大学计算机科学与技术系副教授,博士生导师,中国计算机学会会员,中国计算机学会教育工作委员会委员、中国计算机学会大数据专委会通讯委员、中国计算机学会体系结构专委会委员、
上海计算机学会体系结构专委会委员、开源社理事会成员。荣获“第 二届中国大数据创新百人”称号。
美国Wisconsin大学Madison分校作访问学者,美国Florida大学作CSC访问学者,曾挂职于上海徐汇区行政服务中心(副主任)。入选《同济大学青年人才培养行动计划》、
《同济大学青年英才计划(青年教师计划)》及《同济大学青年英才计划(青年教学科研骨干计划)》。研究方向包括:云计算、大数据、时序数据分析、大规模在线学习系统
相关内容部分预览
目录
第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 云计算作为一种商业模式 20
1.3.2 云计算作为一种计算范式 21
1.3.3 云计算作为一种实现方式 22
1.4 云计算的开源方法论 23
1.4.1 开源定义和相关概念 23
1.4.2 开源的价值和意义 25
1.4.3 开源发展历程 26
1.4.4 开源是种方法论 27
1.4.5 开源对云计算人才培养带来的挑战 28
1.5 实践:GitHub 30
1.5.1 GitHub简介 30
1.5.2 使用GitHub 31
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 分布式系统概述 49
2.3.1 分布式系统的基础知识 49
2.3.2 分布式系统的特性 50
2.3.3 分布式存储系统实例:Apache Hadoop 51
2.4 分布式系统的进阶 53
2.4.1 分布式存储系统 54
2.4.2 分布式计算系统 55
2.4.3 分布式资源管理系统 57
2.5 典型的分布式系统 60
2.5.1 网格系统 60
2.5.2 P2P系统 63
2.5.3 透明计算 65
2.5.4 区块链系统 68
2.6 本章小结 74
第3章 云计算架构 75
3.1 云计算的本质 75
3.1.1 革命性概念:IT作为服务 75
3.1.2 云之道 75
3.1.3 云计算系统工程 76
3.1.4 云数据中心 77
3.1.5 云的工作负载模式 77
3.1.6 云计算的规模效应 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 继续发展的推动力 98
3.4.3 软件定义的必要性 99
3.4.4 软件定义数据中心的架构分析 100
3.4.5 软件定义数据中心的发展 102
3.5 实践:OpenStack 104
3.5.1 OpenStack是什么? 104
3.5.2 OpenStack组件介绍 107
3.5.3 体验使用OpenStack 108
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 安装Docker 134
4.8.2 运行第 一个Docker容器 136
4.9 本章小结 137
第5章 分布式存储 138
5.1 分布式存储的基础 138
5.1.1 基本概念 138
5.1.2 分布式存储分类 139
5.1.3 分布式存储的发展历史 141
5.2 文件存储 144
5.2.1 单机文件系统 144
5.2.2 网络文件系统 144
5.2.3 并行文件系统 145
5.2.4 分布式文件系统 146
5.2.5 高通量文件系统 146
5.3 从单机存储系统到分布式存储系统 147
5.3.1 单机存储系统 147
5.3.2 分布式存储系统 148
5.4 实践:分布式存储系统Ceph 152
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 搭建数据中心仿真环境 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 Neutron 180
6.4.3 Group-Based Policy 183
6.5 实践:用Mininet搭建OpenFlow实验环境 185
6.5.1 Mininet入门 186
6.5.2 Mininet实验 187
6.6 本章小结 189
第7章 云计算安全 190
7.1 云安全概述 190
7.1.1 云计算安全挑战 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 安全云存储系统概述 204
7.3.3 安全云存储系统的一般架构 204
7.3.4 安全云存储系统的关键技术 205
7.4 云数据安全 207
7.4.1 云数据面临的安全威胁 208
7.4.2 云数据安全研究内容 209
7.4.3 云数据安全研究进展 209
7.5 实践:全同态加密算法 210
7.5.1 HElib库的调试与分析 210
7.5.2 FHE-CODE的调试与分析 212
7.5.3 全同态加密方案对比与分析 213
7.6 本章小结 216
第8章 云原生应用的开发 217
8.1 云原生的相关概念 217
8.1.1 云原生简介 217
8.1.2 云原生的内容 218
8.1.3 云原生应用的技术手段 222
8.2 云原生应用开发实践的12要素 225
8.3 云原生应用开发 234
8.3.1 云原生应用开发的原则 234
8.3.2 云原生的落地:Kubernetes 236
8.4 实践:基于Node.js的云原生应用开发 238
8.5 本章小结 245
第9章 云计算操作系统 246
9.1 计算机软件与操作系统 246
9.1.1 计算机软件的发展 246
9.1.2 操作系统的发展简史 247
9.1.3 操作系统的软件定义本质 249
9.2 UNIX类操作系统的发展 250
9.2.1 UNIX系统简介 250
9.2.2 UNIX家族的演化 251
9.2.3 类UNIX系统的发展 253
9.2.4 UNIX系统的展望 254
9.3 云操作系统概述 255
9.3.1 基本概念 255
9.3.2 云操作系统实例 256
9.3.3 云操作系统的挑战 257
9.3.4 新一代云操作系统的职责与功能 258
9.4 云计算编程模型与环境 259
9.4.1 云计算环境下的编程困惑 259
9.4.2 云计算编程模型 260
9.5 云操作系统的资源调度 262
9.5.1 资源调度简介 263
9.5.2 云操作系统下资源调度的挑战 263
9.5.3 云计算资源调度的策略和算法 264
9.6 实践:Mesos 266
9.6.1 Mesos架构 267
9.6.2 Mesos设计解读 269
9.6.3 在Mesos上运行Spark 270
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 云件的开发、部署和运行模式 280
10.2 云件系统的架构设计与运行原理 281
10.2.1 计算与存储的分离的设计理念 281
10.2.2 基于微服务架构的云件模型 282
10.2.3 云件的系统级架构设计 286
10.3 云件的开发模式与效果 289
10.3.1 云件的开发模式 289
10.3.2 云件的效果展示 292
10.4 云件在大规模在线实训平台中的应用 293
10.4.1 实训平台提出的背景 293
10.4.2 构建基于云件系统的大数据工程实训平台 294
10.5 实践:云件应用开发实例 298
10.6 本章小结 300
第11章 云计算运维 301
11.1 云服务环境的监控 301
11.1.1 云监控概述 301
11.1.2 云监控特性 302
11.1.3 云监控需求 302
11.1.4 云监控结构 304
11.1.5 关键技术 306
11.2 云监控解决方案 308
11.2.1 云监控的通用技术 308
11.2.2 容器的监控 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 人工智能技术在大视频运维系统中的应用 328
11.5 本章小结 333
第12章 桌面云 334
12.1 桌面云概述 334
12.1.1 桌面云的发展历史 334
12.1.2 什么是桌面云? 335
12.2 桌面云架构与关键技术 337
12.2.1 传输协议 337
12.2.2 服务层 340
12.2.3 资源层 341
12.2.4 安全 342
12.2.5 桌面云面临的挑战 344
12.3 桌面云典型应用案例 344
12.3.1 桌面云在政府中的应用 345
12.3.2 桌面云在运营商中的应用 346
12.3.3 桌面云在教育中的应用 348
12.3.4 桌面云在电力中的应用 349
12.3.5 桌面云在医疗中的应用 352
12.3.6 桌面云在工业中的应用 354
12.4 实践:基于OpenStack的桌面云 355
12.4.1 Windows镜像的制作 355
12.4.2 配置SPICE实现远程访问 359
12.5 本章小结 360
第13章 软件开发云 361
13.1 软件开发云的概念 361
13.1.1 传统软件开发中的挑战 361
13.1.2 云计算给软件开发带来的新可能 362
13.1.3 云时代的软件开发 363
13.2 华为软件开发云服务 364
13.2.1 软件交付的趋势和挑战 364
13.2.2 DevCloud是什么 365
13.2.3 DevCloud核心理念 366
13.3 DevCloud技术方案 366
13.3.1 DevCloud总体架构 366
13.3.2 DevCloud主要服务 367
13.4 实践:DevCloud实战 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 发布 375
13.4.7 部署 376
13.4.8 流水线 377
13.5 本章小结 378
第14章 大数据与人工智能 379
14.1 什么是大数据? 379
14.1.1 大数据的发展背景 379
14.1.2 大数据的定义 381
14.1.3 大数据的技术 383
14.2 什么是人工智能? 385
14.2.1 人工智能的历史及概念 385
14.2.2 人工智能的特征与参考框架 388
14.2.3 人工智能的发展趋势 390
14.3 云计算、大数据与人工智能的关系 392
14.3.1 云计算与大数据的融合 393
14.3.2 云计算与人工智能的融合 394
14.4 本章小结 395
参考文献 396
论文阅读 399
精彩书摘
《云计算原理与实践》
若本地域名服务器不能回答主机提出的查询时,它会进一步向根域名服务器进行查询,该查询方式一般为迭代查询方式。这种查询方式的特点是本地服务器需要亲自向不同的域名服务器进行询问,
以得到最后的查询结果。其基本流程是:当根域名服务器收到本地域名服务器的查询请求时,要么返回正确的解析结果,要么告诉本地域名服务器下一步应该访问的域名服务器的地址,
然后本地域名服务器再根据该地址进行下一步的查询。同样的,域名服务器要么返回正确的解析结果,要么告诉本地域名服务器下一步应该向哪一个权限域名服务器进行询问。就这样,依次迭代查询,本地域名服务器会将所查询到的结果返回给主机,这样便完成了一次DNS查询。
(应用实践)实现一个Web服务器
在介绍了HTTP协议和域名解析系统DNS之后,我们来实践一下,以便更好地理解用户上网的基本流程。
搭建Web服务器是建设网站的必要条件,有了合适的网站运行环境,才能使网站顺利运行。因此,我们先在阿里云服务器上实现一个Web服务器,并在阿里云上设置相应的DNS
,以加深对于从用户输入网址到获取内容的全过程的理解,同时熟悉在阿里云系统上的操作。
云计算的概念和原理
云计算cloud computing,分布式计算技术的一种,其最基本的概念,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。
透过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大效能的网络服务。
最简单的云计算技术在网络服务中已经随处可见,例如搜寻引擎、网络信箱等,使用者只要输入简单指令即能得到大量信息。
未来如手机、GPS等行动装置都可以透过云计算技术,发展出更多的应用服务。
进一步的云计算不仅只做资料搜寻、分析的功能,未来如分析DNA结构、基因图谱定序、解析癌症细胞等,都可以透过这项技术轻易达成。
稍早之前的大规模分布式计算技术即为“云计算”的概念起源。
云计算基本原理
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
这可是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。
云计算的应用包含这样的一种思想,把力量联合起来,给其中的每一个成员使用。
云计算时代
目前,PC依然是我们日常工作生活中的核心工具——我们用PC处理文档、存储资料,通过电子邮件或U盘与他人分享信息。如果PC硬盘坏了,我们会因为资料丢失而束手无策。
而在“云计算”时代,“云”会替我们做存储和计算的工作。“云”就是计算机群,每一群包括了几十万台、甚至上百万台计算机。“云”的好处还在于,其中的计算机可以随时更新,保证“云”长生不老。
Google就有好几个这样的“云”,其他IT巨头,如微软、雅虎、亚马逊(Amazon)也有或正在建设这样的“云”。
届时,我们只需要一台能上网的电脑,不需关心存储或计算发生在哪朵“云”上,但一旦有需要,我们可以在任何地点用任何设备,如电脑、手机等,快速地计算和找到这些资料。我们再也不用担心资料丢失。
在3月17日的新闻发布会上,施密特做了一个形象的比喻。他说,“云计算”就仿佛银行的自动取款机(ATM),我们出门再也不用随身携带大量现钞,可以根据需要随时取用。
Google的工程师谷雪梅则认为,PC时代好比每个人要用电,都得自己购买发电机;而“云计算”时代,每个人不必拥有发电机,直接从大型发电厂买电就好。
“云计算”其实并不是一个新概念。据谷雪梅介绍,“云计算”之前,还有“网格计算”(Grid Computing)等等,理念都是关于计算机如何协同发挥作用。十多年前,她还在读研究生时,就知道这些概念,但问题是,这些概念从来没有很好地得到实现。
在谷雪梅加入Google以后,她发现这一类概念已经得到了实践。Google的技术,可以让几十万台计算机一起发挥作用,组成强大的数据中心。Google中国CEO李开复此前接受《财经》记者专访时说,
Google真正的竞争力就在于有这些“云”,他们让Google有了无与伦比的存储和计算全球数据的能力。
Google在创立之初,并没有刻意地去追求“云计算”和“网格计算”等概念。但作为一家搜索引擎,Google在客观上需要拥有这些“云”。实际上,雅虎的搜索同样用到了“云计算”。
云计算是一种新兴的共享基础架构的方法,它可以将巨大的系统池连接在一起以提供各种IT服务。很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、 SOA 的采用以及搜索、开放协作、
社会网络和移动商务等这样的 Web 2.0 应用的急剧增长。另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而进一步加强了对一个由统一的云进行管理的需求。
Comments