本書主要講解了構建基于IaaS的云計算架構時所必備的基礎知識。云計算架構的最大特征是可以通過API來控制基礎設施,因此可以完成在傳統(tǒng)環(huán)境中無法完成的構建和應用。本書內容以API為中心展開,首先說明了云計算的概念、通用組件及API的機制等基礎知識,然后逐一講解了服務器、存儲和網絡等組件,以及這些組件是如何通過API控制的,最后介紹了多重云的配置要點和不可變基礎設施等云原生架構的管理方法。
從基礎知識到內部原理,219張圖全面了解云計算架構!
1.網羅云架構基礎知識,架構工程師和應用工程師皆適用;
2.專業(yè)人士撰寫,理論結合實際;
3.講解細致,圖文并茂,深入淺出,直觀易懂。
基礎設施的搭建和運維+API的運行機制
→掌握不依賴于特定云服務的云計算本質
→躋身云時代的全棧云架構師
平山毅(作者)
畢業(yè)于日本東京理科大學理工學院,專業(yè)是計算機科學與統(tǒng)計學。曾在Amazon Web Services同時擔任架構師與顧問雙職。獲得過AWS Certified Solutions Architect-Professional和AWS Certified DevOps Engineer-Professional等多項技術認證。
中島倫明(作者)
2012年起開始擔任日本OpenStack用戶協(xié)會會長;2015年起擔任日本東京大學外聘講師。目前就職于伊藤忠技術解決方案公司,從事以開源軟件為主的新一代云技術的開發(fā)與策劃工作。
中井悅司(作者)
技術指南與雜志文章作者。就職于紅帽公司,致力于推進Linux和開源軟件在企業(yè)系統(tǒng)中的應用。
矢口悟志(作者)
工學博士,工商管理學碩士。2007年進入野村綜合研究所,任高級技術工程師和認證IT架構師。目前從事云計算的研發(fā)和Amazon Web Services企業(yè)部署的業(yè)務開發(fā)工作。
森山京平(作者)
工學碩士。目前就職于日本惠普公司。作為惠普OpenStack產品Helion OpenStackProfessional Service的技術專家,為亞洲各國的互聯(lián)網與云服務供應商實施OpenStack的整合,并為使用了OpenStack的laaS、PaaS云服務提供支持。
元木顯弘(作者)
就職于日本電氣股份有限公司的OSS推進中心。作為OpenStack服務Neutron和Horizon的核心開發(fā)者,在開發(fā)工作之余,運維著使用OpenStack搭建的私有云,并為云項目提供支持。
胡屹(譯者)
Web后端工程師、技術圖書譯者。已有《計算機是怎樣跑起來的》《自制搜索引擎》等。
第 1章 API在云計算中的作用 1
1.1 云計算的現(xiàn)狀 2
1.1.1 云計算的誕生 2
1.1.2 公有云和私有云的區(qū)別 3
1.1.3 IaaS、PaaS、SaaS的不同 5
1.2 云帶來了基礎設施的標準化 8
1.2.1 云帶來了搭建過程的標準化 8
1.2.2 云帶來了組件的抽象化 11
1.2.3 API帶來了操作的自動化 13
1.3 以充分利用云計算為目標 16
第 2章 云上具有代表性的組件 19
2.1 云環(huán)境的全貌 20
2.1.1 租戶 20
2.1.2 區(qū)域 21
2.1.3 可用區(qū) 22
2.2 網絡資源 26
2.2.1 路由器 26
2.2.2 交換機(子網) 27
2.2.3 公有IP地址 29
2.2.4 安全組 30
2.3 服務器資源 31
2.3.1 模板鏡像 32
2.3.2 實例類型 32
2.3.3 連接網絡和安全組 34
2.3.4 用于登錄認證的密鑰對 35
2.4 塊存儲資源 36
2.4.1 虛擬存儲的基本功能 36
2.4.2 從虛擬存儲啟動 37
2.5 對象存儲的基本功能 38
2.5.1 對象存儲的基本功能 38
2.5.2 版本控制和托管靜態(tài)網站 40
2.5.3 虛擬存儲的備份 40
2.6 搭建Web應用系統(tǒng)的示例 41
2.6.1 由多可用區(qū)構成的冗余架構 41
2.6.2 用虛擬存儲實現(xiàn)數(shù)據保護 44
第3章 API是如何控制云的 47
3.1 云和API的關系 48
3.1.1 什么是API 48
3.1.2 Web API 49
3.1.3 從互聯(lián)網服務開始的Web API和 HTTP 50
3.1.4 Amazon引領了將 Web API應用到云計算中的潮流 51
3.1.5 虛擬化技術和云計算 52
3.1.6 SOA技術和云計算——面向API經濟 53
3.1.7 Web API的構成要素 54
3.1.8 Web API的概念 55
3.1.9 資源 56
3.1.10 動作 57
3.2 構成資源的URI 58
3.2.1 域、域樹、FQDN 58
3.2.2 DNS、虛擬主機和域名注冊管理機構 60
3.2.3 URI 64
3.2.4 端點 66
3.2.5 端點內的路徑設計和版本管理 69
3.2.6 資源名稱和資源屬性類型 73
3.3 HTTP協(xié)議 74
3.3.1 HTTP、Cookie、HTTP持久連接 74
3.3.2 HTTP請求 75
3.3.3 HTTP響應 76
3.3.4 HTTP方法 77
3.3.5 HTTP消息頭 80
3.3.6 HTTP狀態(tài)碼 84
3.3.7 SOAP、REST 85
3.3.8 XML、JSON 87
3.3.9 cURL、REST Client 89
3.4 ROA 91
3.4.1 REST的四條原則 91
3.4.2 用面向軟件的方式借助UML和ER模型使云基礎設施可視化 93
3.4.3 獲取API的調用記錄 96
3.4.4 構建自定義的API 97
3.5 CLI、SDK、Console 98
3.5.1 CLI 98
3.5.2 SDK 99
3.5.3 Console 101
3.6 小結 101
第4章 IT基礎設施的發(fā)展和API的概念 103
4.1 搭建服務器的必要步驟 104
4.1.1 在物理環(huán)境中的搭建步驟 105
4.1.2 在服務器虛擬化環(huán)境中的搭建步驟 105
4.1.3 服務器虛擬化的優(yōu)點和局限性 106
4.2 云時代的搭建步驟 109
4.2.1 云環(huán)境中的搭建步驟 109
4.2.2 云改變了什么 111
4.2.3 云帶來了高效率 117
4.3 如何充分利用云API 118
第5章 操作服務器資源的機制 121
5.1 服務器資源的基本操作和API 122
5.1.1 服務器資源 122
5.1.2 用API操作服務器資源 122
5.1.3 用于創(chuàng)建虛擬服務器的API流程 124
5.1.4 虛擬服務器的生命周期 129
5.1.5 元數(shù)據和用戶數(shù)據 130
5.1.6 鏡像的創(chuàng)建和共享 132
5.1.7 導入虛擬機鏡像 132
5.2 服務器資源的內部架構 133
5.2.1 正式開始創(chuàng)建虛擬服務器的流程 133
5.2.2 其他API的行為 136
5.2.3 操作服務器資源時的注意事項 137
5.3 服務器資源組件的總結 137
第6章 塊存儲資源的控制機制 139
6.1 塊存儲資源的基本操作與API 140
6.1.1 塊存儲資源 140
6.1.2 使用塊存儲的API 140
6.1.3 操作塊存儲的API的流程 142
6.1.4 卷類型 146
6.1.5 卷的容量 147
6.1.6 吞吐量、IOPS、SR-IOV 148
6.1.7 快照、備份、克隆 151
6.1.8 快照和鏡像的關系 153
6.2 塊存儲的內部結構 154
6.2.1 連接虛擬服務器和存儲 154
6.2.2 不同基礎設施資源間的自主協(xié)調 155
6.2.3 在云內部也能使用的API 157
6.3 操作存儲資源時的注意事項 158
6.4 塊存儲資源組件的總結 160
6.5 有關其他存儲功能的補充 162
第7章 網絡資源管理的機制 163
7.1 網絡資源的基本操作和API 164
7.1.1 云網絡的特性和基本思路 164
7.1.2 網絡資源的全貌 166
7.1.3 虛擬交換機和子網 169
7.1.4 虛擬路由器 173
7.1.5 邏輯端口 176
7.1.6 安全組 178
7.1.7 網絡訪問控制列表 183
7.2 網絡資源的API操作 185
7.2.1 用于搭建網絡的API的調用流程 185
7.2.2 用于將服務器接入網絡的API的流程 188
7.3 網絡資源的內部結構 190
7.3.1 云網絡的隔離 190
7.4 網絡資源組件的總結 195
7.4.1 網絡資源的組件 195
7.4.2 云網絡和SDN 198
第8章 編配(基礎設施即代碼) 201
8.1 編配的基礎知識與模板的語法 202
8.1.1 編配與自動化的概要 202
8.1.2 編配功能中的資源集合的概念 207
8.1.3 使用API操作編配 208
8.1.4 模板的整體定義 210
8.1.5 資源 212
8.1.6 參數(shù) 215
8.1.7 輸出 215
8.1.8 驗證模板 216
8.1.9 模板的兼容性 217
8.1.10 執(zhí)行中的狀態(tài)與故障排除 217
8.1.11 根據現(xiàn)有資源自動創(chuàng)建模板 219
8.1.12 模板的可視化 221
8.2 使用編配的好處、編配的使用方法及注意事項 222
8.2.1 環(huán)境搭建自動化帶來的好處 223
8.2.2 運維上的好處 224
8.2.3 通過復用模板來復制環(huán)境的好處 227
8.2.4 用編配實現(xiàn)持續(xù)集成的好處 228
8.2.5 配置管理、逆向工程上的好處 230
8.2.6 從面向動作到面向資源的轉換與設計模式 230
8.2.7 使用編配時的注意事項 231
8.2.8 棧與模板的最佳粒度與嵌套 233
8.2.9 編配的最佳實踐 235
8.3 編配的基本操作與API 235
8.3.1 編配API的行為 236
8.3.2 編配API的實際行為 236
8.4 編配資源的組件與總結 238
第9章 認證與安全 241
9.1 HTTPS協(xié)議 242
9.1.1 HTTPS協(xié)議的機制 242
9.1.2 證書 243
9.2 用戶、組、角色和策略 244
9.2.1 租戶 244
9.2.2 用戶 244
9.2.3 組 245
9.2.4 策略 246
9.2.5 認證密鑰、令牌 252
9.2.6 簽名 254
9.2.7 IAM角色、基于資源的策略 256
9.2.8 跨租戶的操作權限 257
9.3 聯(lián)合身份驗證 259
9.4 認證資源組件的總結 260
第 10章 控制對象存儲的機制 263
10.1 對象存儲 264
10.1.1 從存儲類型來看對象存儲 264
10.1.2 對象存儲的內部結構與最佳使用方法 265
10.2 與對象存儲的基本操作相關的API 267
10.2.1 構成對象存儲的資源 267
10.2.2 操作賬戶與獲取存儲桶列表 268
10.2.3 創(chuàng)建存儲桶與存儲對象 269
10.2.4 修改存儲桶和對象的配置信息 271
10.2.5 獲取對象列表 274
10.2.6 復制對象 274
10.2.7 分段上傳 274
10.2.8 Amazon S3 CLI 275
10.3 變更對象存儲的配置與相關API 277
10.3.1 啟用 ACL 277
10.3.2 版本控制與生命周期 278
10.3.3 加密 279
10.3.4 網站功能 281
10.3.5 CORS 282
10.4 對象和API的關系 283
10.4.1 最終一致性 283
10.4.2 用 ETag確認對象 285
10.4.3 對象存儲與 REST API的關系 285
10.4.4 與冪等性的關系 286
10.5 對象存儲的內部結構 286
10.5.1 訪問層的架構 287
10.5.2 存儲節(jié)點的架構 288
10.5.3 讀操作和寫操作 289
10.5.4 分布式復制與最終一致性的關系 290
10.5.5 分區(qū)和時間戳的關系 291
10.5.6 前綴與分布的關系 292
10.6 對象存儲資源組件的總結 293
第 11章 多重云 295
11.1 多重云 296
11.1.1 配置多重云的目的 296
11.1.2 多重云的兼容性涉及哪些因素 297
11.1.3 設計多重云時需要研討的事項 297
11.1.4 多重云的模式 299
11.2 專用網絡 301
11.2.1 BGP和AS 301
11.2.2 專線 302
11.2.3 互聯(lián)云 306
11.2.4 互聯(lián)網VPN 307
11.3 CDN 308
11.3.1 從互聯(lián)網的機制來看CDN的基本架構 309
11.3.2 邊緣站點 310
11.3.3 源站 310
11.3.4 分配 311
11.3.5 緩存行為 312
11.3.6 白名單、致歉頁面和自定義證書 313
11.3.7 云私有網絡 314
11.3.8 CDN中的緩存控制機制 315
11.3.9 CDN的路由 316
11.3.10 CDN在多重云中的作用 317
11.4 API的通信路徑和兼容性 317
11.4.1 API的通信路徑 317
11.4.2 API的兼容性 320
11.4.3 將環(huán)境與數(shù)據遷移到云中的難易程度 324
11.5 軟件市場和生態(tài)系統(tǒng) 327
第 12章 不可變基礎設施 331
12.1 傳統(tǒng)的基礎設施搭建方法和其中存在的問題 332
12.1.1 傳統(tǒng)系統(tǒng)的生命周期 332
12.2 何為不可變基礎設施 334
12.2.1 貼合業(yè)務需求的系統(tǒng)生命周期 334
12.2.2 不可變基礎設施的生命周期 335
12.3 不可變基礎設施與基礎設施即代碼 337
12.4 藍綠部署 338
12.5 不可變基礎設施和應用程序架構 340
12.6 微服務和不可變基礎設施 342
12.7 容器虛擬化技術和不可變基礎設施 343
12.8 Docker和容器集群管理框架 345
12.8.1 構成 Docker的技術 345
12.8.2 Docker的生命周期 347
12.8.3 容器集群功能 348
12.9 總結 349
具有代表性的API 350
參考文獻 352
作者介紹 355