描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111606727
内容简介
本书向科学家、工程师和学生介绍云计算,内容涵盖云计算的支撑技术、解决云技术问题的新方法,以及将云服务集成到科学工作中所需要的概念。具体包括:管理云中的数据,以及如何对这些服务进行编程;在云计算中,从部署单一虚拟机或容器到支持基本的交互式科学实验,从而收集机器集群的数据以进行分析;将云作为自动化分析程序、机器学习和分析流数据的平台;用开源软件构建自己的云;云安全。
目 录
出版者的话
译者序
前言
致谢
第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.
译者序
前言
致谢
第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.
前 言
文明的进步,是不断增加我们能够进行的重要操作的数量,而不需要考虑如何进行这些操作。
—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版。
—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版。
评论
还没有评论。