雲計算:科學與工程實踐指南
內容描述
本書向科學家、工程師和學生介紹雲計算,
內容涵蓋雲計算的支撐技術、解決雲技術問題的新方法,
以及將雲服務集成到科學工作中所需要的概念。
具體包括:管理雲中的資料,以及如何對這些服務進行程式設計;
在雲計算中,從部署單一虛擬機器或容器到支持基本的互動式科學實驗,
從而收集機器集群的資料以進行分析;
將雲作為自動化分析程式、機器學習和分析流資料的平臺;
用開源軟體構建自己的雲;雲安全。
目錄大綱
出版者的話
譯者序
前言
致謝
第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
作者介紹
伊恩·福斯特(Ian Foster)
知名電腦科學家,芝加哥大學教授,阿貢國家實驗室傑出研究員。
他是網格計算理論的創始人和積極宣導者,被尊稱為“網格計算之父”。
鄧尼斯·B. 甘農(Dennis B. Gannon)
印第安那大學電腦科學系榮譽退休教授。
曾任微軟雲研究戰略總監,向全球的研究和教育機構提供Azure雲計算資源。