掌握OpenStack平臺以開發(fā)健壯且可擴展的應(yīng)用
開發(fā)人員對OpenStack趨之若鶩,因為它是一個免費、可依賴、快速和簡單的平臺,用于開發(fā)可擴展的云應(yīng)用而無須擔心底層硬件。OpenStack可兼容多種云技術(shù),允許開發(fā)人員獲取更大的靈活性,而無須妥協(xié)性能和安全性。本書是開發(fā)健壯OpenStack應(yīng)用的專業(yè)路線圖,在大型應(yīng)用的構(gòu)建、部署、網(wǎng)絡(luò)和保護方面提供了詳細的說明。
主要內(nèi)容:
◆ 解釋OpenStack基本功能的使用,包括用于構(gòu)建和部署云應(yīng)用的計算、存儲、網(wǎng)絡(luò)和編排
◆ 闡述OpenStack生態(tài)系統(tǒng)并深入討論網(wǎng)絡(luò)機制
◆ 詳述目前企業(yè)虛擬化網(wǎng)絡(luò)功能開發(fā)的很好實踐以及專業(yè)建議和技巧
◆ 在OpenStack之上構(gòu)建示例應(yīng)用,來展示在專業(yè)化節(jié)奏中企業(yè)級IaaS的優(yōu)勢
◆ 提供OpenStack安全和數(shù)據(jù)防丟失保護方面的專業(yè)指引
本書分為兩部分。第Ⅰ部分提供OpenStack概述。這部分的目的是奠定基礎(chǔ),涵蓋所有OpenStack技術(shù)并講述哪些技術(shù)是十分重要的。
第Ⅱ部分引導(dǎo)讀者進入OpenStack應(yīng)用開發(fā)和部署階段。在該部分,你將在OpenStack之上構(gòu)建一個示例應(yīng)用,該例深入探討相關(guān)技術(shù),提供一些建議,并幫助你從這些相似技術(shù)的視角了解OpenStack。
前 言
OpenStack是一組軟件包,用于管理虛擬化資源,包括計算、網(wǎng)絡(luò)和存儲。它能夠創(chuàng)建和銷毀虛擬機,使用私有網(wǎng)絡(luò)將虛擬機連接在一起并為其提供基于網(wǎng)絡(luò)的存儲,并且可從內(nèi)部網(wǎng)絡(luò)和外部世界訪問虛擬機。OpenStack為所有這些操作提供一致且統(tǒng)一的API服務(wù),對使用該API的應(yīng)用隱藏特定于虛擬機管理程序和廠商的細節(jié)。它還提供基于相同API的用戶界面,允許用戶查看和管理虛擬資源。
本書讀者對象
本書適合對了解OpenStack及其如何轉(zhuǎn)變應(yīng)用設(shè)計和開發(fā)過程感興趣的應(yīng)用開發(fā)人員。本書也適合剛接觸云環(huán)境的新手,想要對該環(huán)境有廣泛了解的讀者,以及想要深入了解OpenStack并付諸實踐的讀者。
本書內(nèi)容
本書將提供對云概念的廣泛理解,介紹其如何適應(yīng)應(yīng)用開發(fā)人員的日常開發(fā)工作。然后會深入講述對應(yīng)用開發(fā)人員而言最重要的OpenStack服務(wù),并展示這些服務(wù)如何對應(yīng)用部署和應(yīng)用設(shè)計帶來改變。本書將提供關(guān)于每個服務(wù)的詳細信息,并提供一些示例來展示應(yīng)用開發(fā)人員如何使用每個服務(wù)。
本書結(jié)構(gòu)
本書分為兩部分。第Ⅰ部分提供OpenStack概述。這部分的目的是奠定基礎(chǔ),涵蓋所有OpenStack技術(shù)并講述哪些技術(shù)是最重要的。
第Ⅱ部分引導(dǎo)讀者進入OpenStack應(yīng)用開發(fā)和部署階段。在該部分,你將在OpenStack之上構(gòu)建一個示例應(yīng)用,該例深入探討相關(guān)技術(shù),提供一些建議,并幫助你從這些相似技術(shù)的視角了解OpenStack。
以下是章節(jié)列表:
● 第Ⅰ部分:OpenStack概述
第1章:OpenStack介紹
第2章:了解OpenStack生態(tài)系統(tǒng):核心項目
第3章:了解OpenStack生態(tài)系統(tǒng):附加項目
● 第Ⅱ部分:使用OpenStack開發(fā)和部署應(yīng)用
第4章:應(yīng)用開發(fā)
第5章:改進應(yīng)用
第6章:部署應(yīng)用
閱讀本書需要具備的基礎(chǔ)知識
你需要了解應(yīng)用開發(fā)的基礎(chǔ)知識——應(yīng)用如何由多臺服務(wù)器構(gòu)成,例如Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器。你不必了解任何云平臺特有的知識,但是應(yīng)該知道虛擬化和虛擬機是什么,并對網(wǎng)絡(luò)有一個基本的了解。
約定
為了幫助你從本書中學(xué)到更多并跟蹤所講述的內(nèi)容,我們在本書中使用了一些約定。可以自行下載并試驗的示例一般會出現(xiàn)在一個框內(nèi),如下所示:
示例標題
該部分對示例進行簡要概述。
源代碼
該部分包含示例源代碼。
源代碼
輸出
該部分列舉輸出結(jié)果:
示例輸出
注釋:注釋包含備注、建議、提示、技巧或當前討論的旁白。
源代碼
在學(xué)習(xí)本書中的示例時,可以手工輸入所有的代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從站點www.wrox.com下載。對于本書而言,可以從www.wrox.com/go/openstackcloudappdev和https://github.com/johnbelamaric/openstack- appdev-book頁面的Download Code選項卡上下載代碼。也可以通過ISBN在www.wrox.com上搜索本書(本書的ISBN是978-1-119-19431-6)來找到源代碼。還可以通過本書封底的二維碼下載源代碼。
提示:
由于許多圖書的標題都很類似,因此按ISBN搜索是最簡單的,本書英文版的ISBN是978-1-119-19431-6。
下載代碼后,只需用自己喜歡的解壓縮軟件對它進行解壓縮即可。另外,也可以進入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代碼下載主頁,查看本書和其他Wrox圖書的所有代碼。
勘誤表
盡管我們已經(jīng)盡了各種努力來保證文章或代碼中不出現(xiàn)錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,同時,這還有助于提供更高質(zhì)量的信息。
請給wkservice@vip.163.com發(fā)電子郵件,我們就會檢查你的反饋信息,如果是正確的,我們將在本書的后續(xù)版本中采用。
要在網(wǎng)站上找到本書英文版的勘誤表,可以登錄www.wrox.com/go/openstackcloudappdev,單擊Errata鏈接。在這個頁面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項。
如果沒有在本書的勘誤頁面發(fā)現(xiàn)你要找的錯誤,請訪問www.wrox.com/contact/ techsupport.shtml,完成該頁面上的表格并將你所發(fā)現(xiàn)的錯誤發(fā)送給我們。我們會檢查所提交的信息,如果合理,會在本書的勘誤頁面上發(fā)布一條信息并在本書的后續(xù)版本中修復(fù)它。
p2p.wrox.com
要與作者和同行討論,請加入http://p2p.wrox.com上的P2P論壇。這個論壇是一個基于Web的系統(tǒng),便于你張貼與Wrox圖書相關(guān)的消息和相關(guān)技術(shù),與其他讀者和技術(shù)用戶交流心得。該論壇提供了訂閱功能,當論壇上有新的消息時,它可以給你傳送感興趣的論題。Wrox作者、編輯和其他業(yè)界專家和讀者都會到這個論壇上來探討問題。
在http://p2p.wrox.com上,有許多不同的論壇,它們不僅有助于閱讀本書,還有助于開發(fā)自己的應(yīng)用程序。要加入論壇,可以遵循下面的步驟:
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀使用協(xié)議,并單擊Agree按鈕。
(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,單擊Submit按鈕。
(4) 你會收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。
提示:
不加入P2P也可以閱讀論壇上的消息,但要張貼自己的消息,就必須加入該論壇。
加入論壇后,就可以張貼新消息,響應(yīng)其他用戶張貼的消息。可以隨時在Web上閱讀消息。如果要讓該網(wǎng)站給自己發(fā)送特定論壇中的消息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標。
關(guān)于使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁面上單擊FAQ鏈接。
Scott Adkins,是美國康卡斯特互聯(lián)網(wǎng)公司云計算運維團隊的技術(shù)主管。他幫助團隊部署新的內(nèi)部OpenStack環(huán)境。
John Belamaric,是Infoblox Cloud產(chǎn)品的主要架構(gòu)師,專注于OpenStack集成和開發(fā)。
Vincent Giersch,是 Flat.io公司的聯(lián)合創(chuàng)始人兼首席技術(shù)官,主要從事SaaS應(yīng)用自動化部署和伸縮性的相關(guān)工作。
第Ⅰ部分 OpenStack概述
第1章 OpenStack介紹 3
1.1 云計算介紹 3
1.1.1 云計算的類型 3
1.1.2 云基礎(chǔ)設(shè)施部署模型 5
1.2 我關(guān)注OpenStack的原因 6
1.2.1 OpenStack簡介 8
1.2.2 選擇OpenStack的理由 10
1.3 了解OpenStack架構(gòu) 12
1.3.1 軟件架構(gòu) 12
1.3.2 部署架構(gòu) 13
1.3.3 優(yōu)缺點 15
1.3.4 OpenStack版本 15
1.4 小結(jié) 17
第2章 了解OpenStack生態(tài)系統(tǒng):核心項目 19
2.1 身份認證 20
2.1.1 使用令牌和重認證 21
2.1.2 OpenStack的各個部分如何相互通信 23
2.1.3 應(yīng)用可否使用Keystone 24
2.2 計算 25
2.2.1 實例的各個部分 25
2.2.2 了解flavor 26
2.2.3 調(diào)度器 26
2.2.4 虛擬機管理程序的類型 28
2.3 存儲 29
2.3.1 OpenStack Swift介紹 29
2.3.2 在Swift中存儲第一個對象 31
2.3.3 臨時Swift URL 32
2.3.4 公有容器和訪問控制列表(ACL) 33
2.3.5 了解塊存儲 34
2.4 鏡像 35
2.4.1 存儲在何處 36
2.4.2 不同的鏡像格式 37
2.5 儀表板 37
2.6 網(wǎng)絡(luò) 38
2.6.1 Nova網(wǎng)絡(luò) 39
2.6.2 Neutron網(wǎng)絡(luò) 40
2.7 將所有內(nèi)容組合在一起 45
2.8 小結(jié) 48
第3章 了解OpenStack生態(tài)系統(tǒng):附加項目 49
3.1 OpenStack Heat 50
3.2 OpenStack數(shù)據(jù)庫即服務(wù):Trove 54
3.2.1 云數(shù)據(jù)庫作為軟件定義存儲(SDS)的用例 54
3.2.2 OpenStack和Trove 55
3.2.3 OpenStack DBaaS詳解 56
3.2.4 Trove架構(gòu) 60
3.3 DNS即服務(wù):Designate 61
3.3.1 了解Designate架構(gòu) 62
3.3.2 使用Designate 63
3.4 MAGNUM 66
3.4.1 容器即服務(wù) 67
3.4.2 使用Flannel、Kubernetes和Docker構(gòu)建 67
3.4.3 使用OpenStack構(gòu)建 68
3.4.4 Bay、Pod、Node和Container 68
3.4.5 Magnum作為OpenStack的未來 69
3.5 應(yīng)用即服務(wù):Murano 69
3.5.1 Application Catalog 69
3.5.2 Application Publisher 70
3.5.3 Application Catalog管理員 70
3.5.4 Application Catalog終端用戶 71
3.5.5 Murano架構(gòu) 71
3.5.6 Murano使用示例 72
3.6 Ceilometer:計量即服務(wù) 73
3.6.1 Ceilometer架構(gòu) 73
3.6.2 Ceilometer彈性伸縮 74
3.7 小結(jié) 75
第Ⅱ部分 使用OpenStack開發(fā)和部署應(yīng)用
第4章 應(yīng)用開發(fā) 79
4.1 將遺留應(yīng)用轉(zhuǎn)換為OpenStack應(yīng)用 79
4.1.1 遷移到云的原因 80
4.1.2 遷移到云的方法 81
4.2 從頭構(gòu)建應(yīng)用 82
4.2.1 OpenStack應(yīng)用設(shè)計指南 82
4.2.2 云應(yīng)用開發(fā)最佳實踐 83
4.3 OpenStack應(yīng)用描述和部署策略 86
4.3.1 云應(yīng)用描述 86
4.3.2 網(wǎng)絡(luò)部署策略 88
4.4 小結(jié) 90
第5章 改進應(yīng)用 91
5.1 故障場景 92
5.1.1 硬件故障 92
5.1.2 網(wǎng)絡(luò)故障 92
5.1.3 存儲故障 93
5.1.4 軟件故障 94
5.1.5 外部故障 95
5.2 主機名和IP地址分配 96
5.2.1 單一入口 96
5.2.2 DNS輪詢 96
5.2.3 全局服務(wù)器負載均衡(GSLB) 97
5.2.4 固定IP地址和浮動IP地址 98
5.2.5 Neutron端口保留 99
5.2.6 永久IP地址 99
5.3 伸縮 100
5.3.1 應(yīng)用剖析 100
5.3.2 多臺實例 101
5.3.3 多位置 102
5.3.4 負載均衡 102
5.3.5 性能 104
5.3.6 數(shù)據(jù)存儲 104
5.3.7 高可用性 105
5.4 應(yīng)用改進 106
5.4.1 簡單應(yīng)用 107
5.4.2 復(fù)雜應(yīng)用 107
5.4.3 改進Web UI組件 108
5.4.4 改進API組件 109
5.4.5 改進數(shù)據(jù)庫組件 109
5.4.6 將所有內(nèi)容組合在一起 112
5.4.7 多區(qū)域?qū)嵗?113
5.5 小結(jié) 114
第6章 部署應(yīng)用 115
6.1 裸機、虛擬機和容器 116
6.1.1 裸機 116
6.1.2 虛擬機 117
6.1.3 容器 118
6.1.4 裸機上的容器 120
6.1.5 為問題選擇正確的技術(shù) 120
6.2 編排和配置管理 121
6.2.1 編排工具:Heat、Murano和Cloudify等 121
6.2.2 配置管理和云初始化 122
6.2.3 Puppet、Chef、Salt和Ansible 125
6.2.4 使用快照的方式和原因 128
6.3 監(jiān)控和計量 129
6.4 彈性 130
6.4.1 確保需要彈性/可伸縮性 131
6.4.2 垂直擴展和水平擴展腳本的對比 132
6.4.3 再論負載均衡 133
6.4.4 使用Heat和ResourceGroups擴展 135
6.4.5 將Heat、Ceilometer和AutoScalingGroup組合在一起 136
6.5 更新和補丁 141
6.5.1 補丁更新選擇 142
6.5.2 OpenStack持續(xù)集成/持續(xù)交付 142
6.6 小結(jié) 143
6.7 本書總結(jié) 144