云计算:科学与工程实践指南
作者 : [美]伊恩·福斯特(Ian Foster) 丹尼斯·B. 甘农(Dennis B. Gannon) 著
译者 : 赵勇 黄毅 译
丛书名 : 计算机科学丛书
出版日期 : 2018-08-22
ISBN : 978-7-111-60672-7
定价 : 69.00元
教辅资源
扩展信息
语种 : 简体中文
页数 : 242
开本 : 16
原书名 : Cloud Computing for Science and Engineering
原出版社: MIT Press
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书向科学家、工程师和学生介绍云计算,内容涵盖云计算的支撑技术、解决云技术问题的新方法,以及将云服务集成到科学工作中所需要的概念。具体包括:管理云中的数据,以及如何对这些服务进行编程;在云计算中,从部署单一虚拟机或容器到支持基本的交互式科学实验,从而收集机器集群的数据以进行分析;将云作为自动化分析程序、机器学习和分析流数据的平台;用开源软件构建自己的云;云安全。

图书特色

图书前言

文明的进步,是不断增加我们能够进行的重要操作的数量,而不需要考虑如何进行这些操作。
—Alfred North Whitehead,《数学简介》
本书讨论云计算以及如何让读者—也就是你—把它应用在科学和工程领域。这是一本实用指南,涵盖了很多动手实践的案例,这些案例都可以在线获得,以帮助读者了解怎样使用云计算解决技术计算方面的特定问题,我们还就日常工作中如何使用云计算提出了可行的建议。
云计算作为技术术语最早出现在1996年。发展至今,这一词汇在机场的广告牌上已随处可见。你可能会困惑于它是一项技术、一种趋势还是旧概念的重新包装,或者仅仅是一个市场宣传口号。其实它是所有这些的集合而且还不限于此。最重要的是,云计算是一种我们以往多有忽视的处理事务方式上的重大转变,不论是在科学方面还是在日常生活的其他方面。就如提姆·布瑞(Tim Bray)在2015年所写:“计算正转向一个效用模型。你可以在一个公有云里做各种在自己的计算机房很难完成或者很昂贵的事。公有云可以提供比你自己建造的环境更加优越的在线时间、安全性保障和有效的分配。”[77]
功能强大、随时在线、可访问的云设施的出现,已经转变了我们作为消费者和信息技术互动的方式,我们可以在Netflix上持续流畅地观看视频(托管在亚马逊云平台上),通过谷歌搜寻网站内容(使用谷歌云平台),通过脸书更新朋友圈动态,通过Alexa购买我们的日用品。云技术让许多公司得以将其信息技术外包到云供应商,从而削减了成本,提高了速率。大量以前的手工工作通过运行在云设施上的软件得以自动化,正如1960年McCarthy所设想的以及20世纪90年代网格所探索的那样,现在则通过像亚马逊、谷歌和微软这样的云供应商得以大规模实现。
那么云计算在科学和工程方面的应用是怎样的呢?许多科学家和工程师在工作中使用像Dropbox、GitHub、Google Docs、Skype甚至Twitter这样的云服务。但是他们还远远没有享受到云计算的全面福利。有一些技术应用运行在云计算机上,但是很少有研究人员将其他部分外包到云平台上。这是一种机会的浪费。毕竟,科学和工程虽然是令人着迷且开发心智的专业,但是也包含许多平凡的很花费时间的活动。为什么不通过自动化和外包来加速科学探索(并享有更多乐趣)呢?我们相信对这个问题的答案是肯定的,这就是我们为什么写这本书。
在接下来的章节里,我们调研了支撑云的新技术,云所提供的解决技术问题的新方法,以及在研究方面有效应用云的新思考方式。我们不奢望能够提供一本全面的云计算指导,因为主要的云供应商运行着成百上千的服务,当然有许多在科学和工程方面可以有效应用的服务没有涵盖在本书中。但我们确实描述了精华的部分,并给出了把你的工作整合到云服务中的必要概念。
下面是一些大家常问的问题,我们也将在书中尽力提供答案:我应该买一个集群还是使用云?如果使用商务云,我的基金会为此付费吗?我可以把数据导到云里面吗?那儿安全吗?我可以和我的同事分享吗?我怎么在云里计算?云计算可以大规模化吗?如果我想计算大量数据会怎样?我应该在工作中使用云平台服务吗? 哪些是对科学和工程有用的?我怎么建立自己的云服务?我可以使它们按需规模化以解决真正的大问题吗?在科学和工程方面使用云有哪些成功的例子?我怎么建立自己的云?等等。
没有洞察一切的水晶球,我们不能提供这些问题的确切答案。但是我们至少可以提供一些信息和观点,以帮助你做决定。
一切都在流动,没有什么是静止的。就如2500年前Heraclitus所写的,软件行业尤其是这样。本书中一些技术细节的有效性会比我们所想的更加短暂。但是不要沮丧。你可以帮助我们和你的同仁,请在Cloud4SciEng.org中告诉我们。我们会更新网站,并准备本书的第2版。

上架指导

计算机/云计算

封底文字

本书带领我们深度体验云计算生态体系,对于科学家和学生都很有益。书中不仅包含概念介绍和系统说明,还配有清晰的Python代码示例,甚至还有可下载的Jupyter笔记本。我也要买一本!
—— Simson L. Garfinkel,《Architects of the Information Society》的作者
如果你正在从事数据分析工作,渴望了解并掌握云计算工具和技术,那么一定要读一读这本书!书里干货满满,每一章都涵盖实用的技巧和精心设计的示例。
—— Dan Reed,艾奥瓦大学研究与经济开发部门副主管
云计算在短短几年里彻底变革了企业界,现在,它在科学和工程应用领域也将引领潮流!对于亚马逊、谷歌、微软这三大主导云供应商,书里不仅给出了全面的概念描述,更重要的是教会了读者如何有效地应用这些服务。本书正当其时,必将成为科学家和工程师手中的无价之宝。
—— Tony Hey,卢瑟福·阿普尔顿实验室首席数据科学家

伊恩·福斯特(Ian Foster) 知名计算机科学家,芝加哥大学教授,阿贡国家实验室杰出研究员。他是网格计算理论的创始人和积极倡导者,被尊称为“网格计算之父”。
丹尼斯·B. 甘农(Dennis B. Gannon) 印第安纳大学计算机科学系荣誉退休教授。曾任微软云研究战略总监,向全球的研究和教育机构提供Azure云计算资源。

赵勇 清数科技及融数链创始人,电子科技大学副教授,曾任职于美国微软搜索与广告部,获微软杰出员工奖。博士期间师从Ian Foster教授。
黄毅 美国SkyGlue公司总裁兼CTO,圣何塞大学教授兼大数据实验室主任。曾任职于微软,担任Azure云计算软件开发工程师。博士期间师从Dennis Gannon教授。

作者简介

[美]伊恩·福斯特(Ian Foster) 丹尼斯·B. 甘农(Dennis B. Gannon) 著:---作者简介---
伊恩•福斯特(Ian Foster) 知名计算机科学家,芝加哥大学教授,阿贡国家实验室杰出研究员。他是网格计算理论的创始人和积极倡导者,被尊称为“网格计算之父”。
丹尼斯·B. 甘农(Dennis B. Gannon) 印第安纳大学计算机科学系荣誉退休教授。曾任微软云研究战略总监,向全球的研究和教育机构提供Azure云计算资源。

---译者简介【已更新】---
赵勇 清数科技及融数链创始人,电子科技大学副教授,曾任职于美国微软搜索与广告部,获微软杰出员工奖。博士期间师从Ian Foster教授。
黄毅 美国SkyGlue公司总裁兼CTO,圣何塞大学教授兼大数据实验室主任。曾任职于微软,担任Azure云计算软件开发工程师。博士期间师从Dennis Gannon教授。

译者简介

赵勇 黄毅 译:

译者序

当我接到出版社的邀请,翻译这本由我的导师Ian Foster和Dennis B. Gannon教授合著的书时,可以说是多种感情交织在一起。一方面,这本书一下子把我拉回了十多年前在芝加哥大学读书和在阿贡国家实验室实习的时光,因为书中很多的项目以及老师和同事的名字都是那么亲切和熟悉。比如Pieper女士,她的文笔是如此精妙,有化腐朽为神奇的力量,每次的项目报告、论文都要经她手进行润色,以至于我的导师为这个过程造了一个动词—Pieperize,就是经由Pieper来处理的意思,就好像我们要在网上搜索什么东西时,会说去Google、去百度一样。Globus网格项目更是我从硕士到博士论文甚至毕业多年以后还在参与的主要项目。所以,这一切让我又重温了那些事,那些人,还有那些周遭。另一方面,两位作者作为网格计算和科学计算领域的“大神”级人物,对于云计算、容器、云存储服务、SaaS、微服务、笔记本、认证和授权等众多时髦的概念和技术,可谓信手拈来,了如指掌,并且将其和科学与工程领域的众多应用紧密结合,深入浅出地阐释给读者。这又让我增添了对这些集科学家、学者、研究者和探索者于一身的前辈的崇敬之情,他们一生都在孜孜不倦地学习和实践,比我们勤奋和仔细,同时又有着像当今很多技术极客一样的热情,乐于帮助大众了解这些先进知识、技术和行业优秀应用案例。
这本书不仅仅有“高大上”的云计算概念,还有对行业各个主流云服务供应商及其产品和服务的全面描述、对比和适用场景分析,同时还有20多个丰富的实践案例。书中手把手地引导读者来走完这些案例的全过程,并提供了可运行的“笔记本”,记录了相应的代码及注释。为了帮助读者理解这些内容,使读者能够跟着进行实践,本书还搭建了配套网站Cloud4SciEng.org,提供了详尽的资料和资源链接。所有这些,都反映了作者严谨治学的态度,以及希望科学和工程界的研究者、工程师、学生等能够学以致用,迅速上手,发挥云计算的巨大能量的拳拳之心。这一切努力都让我深深为之感动!
在本书的翻译过程中,又有幸邀请到硅谷的黄毅博士加盟,他一方面致力于大数据分析方面的创业,另一方面也在圣何塞大学担任大数据实验室主任一职。更巧的是,黄毅博士是本书第二作者Gannon教授的得意门生,所以仿佛冥冥之中自有天意,我们两位译者作为两位作者的门生,也一直在从事云计算和大数据的研究、创业和实践。能够有此机会继续传承导师的衣钵,将本书译为中文,让中国的科学家、工程师、研究者和学生能够借鉴和掌握相关技能和方法,也不枉导师对我们多年的言传身教。念至于此,也是满怀对缘分的感激。
当前中国正在着力发展数字经济,云计算也走过了自2009年以来的探索和成长期,进入了飞速发展的阶段。阿里、腾讯等已经在享受公有云计算服务平台所带来的巨额红利和回报,华为也打出了“all in cloud”的战略口号。我国的天河系列和神威太湖超级计算机已经占据世界超级计算机算力第一名多年,然而云计算和大数据除了在商业应用和硬件设施方面的领先之外,在科学和工程领域的应用、实践和普及方面都还处于早期阶段,与书中所述的国外实践有一定差距,因而本书将有非常大的指导意义。
我们衷心希望年轻的从业者能够认识到两位作者引领实践和无私分享的良苦用心,能够身体力行地将本书中的知识应用到我国科学和工程的各个领域中,充分发挥云计算和大数据的巨大能量,获得良好的成果和进展。
最后,感谢电子科技大学和清数科技的研究生和团队成员为本书所做的文字及校对工作。由于译者的水平所限,难免存在没有有效诠释原作精华的地方,甚至是一些错漏,希望广大读者批评指正,我们也欢迎大家就书中的话题进行讨论和交流。谢谢!

赵勇
2018年初春于成都

图书目录

出版者的话
译者序
前言
致谢
第1章 在云的宇宙中定位 1
1.1 云:计算机、助理和平台 1
1.2 云的概况 2
1.3 本书导读 5
1.4 获取云服务的方式:网站、应用编程接口和软件开发工具包 6
1.4.1 Web界面、应用编程接口、软件开发工具包和命令行界面 6
1.4.2 本地应用和云应用 8
1.5 本书使用的工具 8
1.5.1 Python 8
1.5.2 Jupyter:基于Web的交互式计算工具 9
1.5.3 版本控制系统GitHub 10
1.5.4 Globus 10
1.6 小结 10
1.7 资源 11
第一部分 管理云中的数据
第2章 存储即服务 15
2.1 三个启发式的例子 15
2.2 存储模型 16
2.2.1 文件系统 16
2.2.2 对象存储 17
2.2.3 关系型数据库 17
2.2.4 NoSQL数据库 18
2.2.5 图数据库 19
2.2.6 数据仓库 20
2.3 云存储全景 20
2.3.1 文件系统 20
2.3.2 对象存储 21
2.3.3 NoSQL服务 21
2.3.4 关系型数据库 22
2.3.5 基于数据仓库的数据分析 22
2.3.6 图数据库及其他服务 23
2.3.7 OpenStack存储服务和Jetstream云服务 23
2.4 小结 24
2.5 资源 24
第3章 使用云存储服务 25
3.1 两种访问方式:门户和API 25
3.2 使用Amazon云存储服务 26
3.3 使用Microsoft Azure云存储服务 28
3.4 使用Google云存储服务 31
3.4.1 Google Bigtable 32
3.4.2 Google Cloud Datastore 33
3.5 使用OpenStack云存储服务 34
3.6 用Globus传输和共享数据 35
3.6.1 用Globus传输数据 36
3.6.2 用Globus共享数据 38
3.7 小结 38
3.8 资源 39
第二部分 云中的计算
第4章 计算即服务 43
4.1 虚拟机和容器 43
4.2 先进的计算服务 45
4.3 无服务器计算 46
4.4 公有云计算的优缺点 46
4.5 小结 47
4.6 资源 48
第5章 虚拟机的使用和管理 49
5.1 历史根源 49
5.2 亚马逊的弹性计算云 50
5.2.1 创建虚拟机实例 50
5.2.2 连接存储 52
5.3 Azure虚拟机 54
5.4 谷歌云虚拟机服务 55
5.5 Jetstream虚拟机服务 55
5.6 小结 56
5.7 资源 57
第6章 使用和管理容器 58
6.1 容器的基础知识 58
6.2 Docker和Hub 59
6.3 容器用于科学 61
6.4 构建你自己的容器 62
6.5 小结 63
6.6 资源 63
第7章 弹性部署 64
7.1 云中并行计算的范式 64
7.2 SPMD和HPC风格的并行 65
7.2.1 云中的消息传递接口 65
7.2.2 云中的GPU 65
7.2.3 在Amazon云上部署HPC集群 67
7.2.4 在Azure上部署HPC集群 70
7.2.5 集群的进一步扩展 71
7.3 多任务并行计算 72
7.4 MapReduce和批量同步并行计算 72
7.5 图数据流的执行和Spark 73
7.6 代理和微服务 74
7.6.1 微服务和容器资源管理器 75
7.6.2 在集群中管理身份 75
7.6.3 简单的例子 75
7.6.4 Amazon EC2容器服务 76
7.6.5 Google的Kubernetes 81
7.6.6 Mesos和Mesosphere 84
7.7 HTCondor 86
7.8 小结 86
7.9 资源 87
第三部分 云平台
第8章 云中的数据分析 91
8.1 Hadoop和YARN 91
8.2 Spark 93
8.2.1 一个简单的Spark程序 93
8.2.2 一个更有趣的Spark程序:k均值聚类 94
8.2.3 容器中的Spark 95
8.2.4 Spark中的SQL 96
8.3 Amazon Elastic MapReduce 97
8.4 Azure HDInsight和数据湖 99
8.4.1 Azure Data Lake存储 100
8.4.2 数据湖分析 101
8.5 Amazon Athena分析 102
8.6 Google云数据实验室 102
8.6.1 华盛顿和印第安纳州的风疹 103
8.6.2 寻找气象台的异常 104
8.7 小结 107
8.8 资源 107
第9章 将数据以流式传输到云端 109
9.1 科学流案例 109
9.1.1 广域地球物理传感器网络 110
9.1.2 城市信息学 110
9.1.3 大规模科学数据流 111
9.2 流系统的基本设计挑战 112
9.3 Amazon Kinesis和Firehose 112
9.3.1 Kinesis Streams架构 113
9.3.2 Kinesis和Amazon SQS 114
9.4 Kinesis、Spark和物体阵列 115
9.5 用Azure进行流数据处理 118
9.6 Kafka、Storm和Heron Streams 121
9.7 Google Dataflow和Apache Beam 124
9.8 Apache Flink 126
9.9 小结 127
9.10 资源 128
第10章 基于云的机器学习 129
10.1 Spark机器学习库 129
10.1.1 逻辑回归 130
10.1.2 芝加哥餐厅案例 130
10.2 Azure机器学习空间 133
10.3 Amazon机器学习平台 136
10.4 深度学习浅析 138
10.4.1 深度网络 139
10.4.2 卷积神经网络 140
10.4.3 递归神经网络 141
10.5 Amazon MXNet虚拟机镜像 143
10.6 Google TensorFlow 146
10.7 微软认知工具包 147
10.8 小结 149
10.9 资源 150
第11章 Globus研究数据管理平台 152
11.1 分布式数据的挑战和机遇 152
11.2 Globus平台 153
11.2.1 Globus传输和共享 153
11.2.2 rule_data结构 155
11.3 身份和证书管理 155
11.3.1 Globus Auth授权服务 156
11.3.2 一个典型的Globus Auth工作流 157
11.3.3 Globus Auth身份 158
11.3.4 Globus账户 159
11.3.5 使用Globus Auth身份 159
11.3.6 资源服务器使用Globus Auth 160
11.3.7 其他Globus能力 161
11.4 创建一个远程访问服务 162
11.5 数据研究门户设计模式 163
11.5.1 Science DMZ和DTN的至关重要的作用 164
11.5.2 数据研究门户应用 164
11.5.3 用Globus实现设计模式 166
11.6 重新审视门户设计模式 168
11.7 画个闭环:从门户到Graph服务 169
11.8 小结 170
11.9 资源 171
第四部分 构建你自己的云
第12章 用Eucalyptus构建你自己的云 175
12.1 实现云基础设施抽象 175
12.2 部署计划 176
12.2.1 控制面板部署流程 176
12.2.2 网络 177
12.2.3 存储 177
12.2.4 计算服务器 178
12.2.5 身份管理 178
12.3 单集群Eucalyptus云 178
12.3.1 硬件配置 179
12.3.2 部署 179
12.3.3 软件依赖关系和配置 180
12.3.4 安装 181
12.3.5 头节点配置 182
12.3.6 工作节点配置 183
12.3.7 引导启动 183
12.3.8 镜像安装 186
12.3.9 用户证书 187
12.4 小结 187
12.5 资源 187
第13章 使用OpenStack搭建云 188
13.1 OpenStack核心服务 188
13.2 OpenStack环境中的高性能计算 188
13.3 对科学负载的考虑 189
13.3.1 网络密集输入或输出 189
13.3.2 紧耦合计算 190
13.3.3 分级存储和并行文件系统 190
13.4 部署OpenStack 191
13.5 部署示例 191
13.5.1 硬件组件 192
13.5.2 OpenStack组件 192
13.5.3 通过RDMA启用块存储 192
13.5.4 启用SR-IOV网络 193
13.6 小结 196
13.7 资源 196
第14章 构建你自己的SaaS 197
14.1 SaaS的意义 197
14.2 SaaS架构 198
14.3 SaaS和科学 200
14.4 Globus Genomics生物信息学系统 200
14.4.1 Globus Genomics架构和实现 201
14.4.2 Globus Genomics作为SaaS 203
14.5 Globus研究数据管理服务 203
14.5.1 Globus服务架构 204
14.5.2 Globus服务运营 205
14.6 小结 205
14.7 资源 205
第五部分 安全及其他主题
第15章 安全和隐私 209
15.1 云计算中的安全 209
15.2 基于角色的访问控制 212
15.3 保障云中数据的安全 212
15.3.1 保障传输中的数据安全 213
15.3.2 控制谁能访问数据 213
15.3.3 加密数据 213
15.3.4 敏感数据的复杂性 214
15.4 保障虚拟机和容器安全 215
15.4.1 含毒的虚拟机或容器镜像 215
15.4.2 对运行虚拟机的非法访问 215
15.4.3 截获通信 216
15.4.4 基于虚拟机镜像的信息泄露 216
15.5 保障云软件服务的访问 217
15.6 小结 217
15.7 资源 217
第16章 历史,批评,未来 219
16.1 历史视角 219
16.2 批评 220
16.2.1 成本 221
16.2.2 锁定 221
16.2.3 教育 221
16.2.4 黑盒算法 222
16.2.5 硬件限制 222
16.3 未来 222
16.3.1 原生云应用程序 222
16.3.2 架构演变 223
16.3.3 边缘计算 224
16.4 资源 225
第17章 Jupyter笔记本 226
17.1 环境 226
17.2 笔记本 226
17.3 资源 228
第18章 后记:科学发现云 229
参考文献

教学资源推荐
作者: (美)斯坦伯格(Steinberg, L.)
作者: [美]马克 N.霍伦斯坦(Mark N. Horenstein)著
作者: (美) 爱德华 S.诺库格(Edward S.Neukrug)奥多明尼昂大学 R. 查尔斯&
作者: (美)斯潘塞 A.拉瑟斯(Spencer A. Rathus)著
参考读物推荐
作者: (美)约瑟夫 P. 艾伦(Joseph P. Allen)克劳迪娅 W. 艾伦(Claudia W. Allen) 著
作者: 目丁兔 编著
作者: [美]彼得?孔普(Peter Kump)著
作者: [美] 海伦·帕帕扬尼斯(Helen Papagiannis)著