注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)計算機(jī)輔助設(shè)計與工程計算OpenStack架構(gòu)分析與實踐

OpenStack架構(gòu)分析與實踐

OpenStack架構(gòu)分析與實踐

定 價:¥69.00

作 者: 管增輝,曾凡浪 著
出版社: 中國鐵道出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787113249632 出版時間: 2019-01-01 包裝: 平裝
開本: 16開 頁數(shù): 392 字?jǐn)?shù):  

內(nèi)容簡介

  本書以實戰(zhàn)開發(fā)為原則,以關(guān)鍵模塊架構(gòu)分析及項目開發(fā)為主線,通過OpenStack開發(fā)中常用的8個典型組件和若干典型項目案例,詳細(xì)介紹了云平臺中的計算、網(wǎng)絡(luò)、存儲、服務(wù)編排、智能運(yùn)維等模塊,并針對OpenStack中通用的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)介紹。對于每一部分內(nèi)容的講解,章節(jié)的后都會配備相應(yīng)的實戰(zhàn)案例供大家參考。

作者簡介

  管增輝 中國海洋大學(xué)碩士,曾先后在Alcatel-Lucent和金山云工作,現(xiàn)在供職于阿里巴巴。 擁有豐富的IMS核心網(wǎng)和云計算設(shè)計開發(fā)經(jīng)驗,對云計算解決方案及AIOps擁有獨(dú)到見解,專注于云計算、容器及AIOps相關(guān)領(lǐng)域。 熱衷開源,先后參與過MIT MOOS-IvP項目和OpenStack項目的開發(fā)。 具有豐富的云平臺及K8S平臺開發(fā)經(jīng)驗,設(shè)計開發(fā)了電信級云存儲平臺、嵌套虛擬化云平臺、云平臺可視化資源管理、云平臺計算服務(wù)垃圾資源回收機(jī)制、云平臺智能運(yùn)維系統(tǒng)、基于K8S的SaaS平臺及輕量PaaS平臺。 除此之外,對于云平臺的資源編排服務(wù)、彈性伸縮服務(wù)、負(fù)載均衡服務(wù)也有豐富的經(jīng)驗。 現(xiàn)在主要負(fù)責(zé)阿里云SaaS平臺和PaaS平臺的設(shè)計與開發(fā)。曾凡浪 中南大學(xué)學(xué)士,曾先后在藝龍旅行網(wǎng)和聯(lián)想北京研究院擔(dān)任系統(tǒng)開發(fā)工程師和高級研究員,目前就職于神州優(yōu)車集團(tuán)總部。 有多年的OpenStack和Kubernetes構(gòu)建、開發(fā)經(jīng)驗,專注于云計算相關(guān)領(lǐng)域。參與過多套私有云平臺的方案調(diào)研、技術(shù)選型和部署實施,以及OpenStack深度定制,OpenStack、Kubernetes、Ceph集中管理平臺,統(tǒng)一認(rèn)證授權(quán)系統(tǒng)等項目開發(fā)工作。

圖書目錄

第1章 走進(jìn)OpenStack
1.1 OpenStack是什么 1
1.1.1 OpenStack的作用 1
1.1.2 OpenStack的應(yīng)用場景 2
1.1.3 什么類型的工作要學(xué)OpenStack 3
1.2 為什么要學(xué)習(xí)OpenStack 3
1.2.1 OpenStack在云計算中的地位 3
1.2.2 云計算新時代:容器vs虛擬化 4
1.3 如何學(xué)習(xí)OpenStack 4
1.3.1 對學(xué)習(xí)者的技術(shù)要求 4
1.3.2 OpenStack的學(xué)習(xí)路線 4
1.4 OpenStack的基本架構(gòu) 5
1.5 OpenStack的核心組件 7
1.5.1 計算資源管理:Nova組件 7
1.5.2 存儲資源管理:Cinder/Swift組件 8
1.5.3 網(wǎng)絡(luò)資源管理:Neutron組件 9
第2章 OpenStack部署與社區(qū)貢獻(xiàn)流程
2.1 OpenStack部署方式 12
2.1.1 DevStack方式部署 13
2.1.2 手動部署分布式OpenStack環(huán)境 18
2.1.3 RDO方式部署OpenStack 22
2.2 為OpenStack社區(qū)作貢獻(xiàn) 25
2.2.1 提交前的環(huán)境準(zhǔn)備 26
2.2.2 代碼貢獻(xiàn)流程 28
【示例2-1】代碼貢獻(xiàn)流程之bug Fix 28
2.2.3 文檔貢獻(xiàn)流程 30
【示例2-2】以heat為例來演示HTML的生成過程 31
2.2.4 其他內(nèi)容的貢獻(xiàn)流程 32
2.3 開發(fā)工具之Pycharm 33
2.3.1 Pycharm的安裝與配置 33
2.3.2 使用Pycharm對代碼進(jìn)行遠(yuǎn)程調(diào)試 34
【示例2-3】通過Pycharm調(diào)試OpenStack中nova list的代碼 34
2.3.3 Pycharm與PDB的選用比較 35
【示例2-4】開發(fā)工具之PDB斷點調(diào)試 35
第3章 虛擬化
3.1 虛擬化技術(shù)的現(xiàn)狀 37
3.2 KVM的管理工具Libvirt 38
3.2.1 Libvirt簡介 38
【示例3-1】通過Libvirt提供的API virsh對虛擬機(jī)生命周期實現(xiàn)管理 39
3.2.2 Libvirt的體系結(jié)構(gòu) 40
3.3 OpenStack與虛擬化的結(jié)合 42
3.4 虛擬機(jī)配置libvirt.xml詳解 45
第4章 OpenStack通用技術(shù)
4.1 RPC服務(wù)實現(xiàn)分析 49
【示例4-1】在OpenStack RPC中創(chuàng)建Server并實現(xiàn)Client向Server發(fā)送請求
(以rpc、calll為例) 53
4.2 消息隊列服務(wù)分析 54
4.2.1 透徹理解中間件RabbitMQ 54
【示例4-2】通過“Hello World”演示如何RabbitMQ的消息收發(fā)過程 55
4.2.2 RabbitMQ實現(xiàn)RPC通信 58
【示例4-3】RabbitMQ之RPC通信案例 58
4.3 RESTful API開發(fā)框架 64
4.3.1 靈活但不易用:基于Pastedeploy和Routes的API框架 65
【示例4-4】通過nova list獲取虛擬機(jī)的命令,根據(jù)Nova的api-paste.ini來說明
是如何路由的 68
4.3.2 基于Pecan的API框架 69
4.4 TaskFlow的實現(xiàn) 72
4.4.1 TaskFlow常見使用場景 72
4.4.2 TaskFlow中必須理解的重要概念 73
4.4.3 TaskFlow具體實現(xiàn) 74
【示例4-5】TaskFlow仔細(xì)看,重實踐得體感 74
【示例4-6】TaskFlow功能多,長流程特別火 76
4.5 基于Eventlet的多線程技術(shù) 78
4.5.1 進(jìn)程、線程與協(xié)程 78
4.5.2 Eventlet依賴的兩個庫:greenlet和select.epoll 79
【示例4-7】greenlet庫應(yīng)用之協(xié)程切換 79
4.5.3 創(chuàng)建協(xié)程的常用API 80
4.5.4 定時和監(jiān)聽:Hub 81
4.5.5 Eventlet中的并發(fā)機(jī)制 83
第5章 Nova—計算組件
5.1 Nova架構(gòu) 84
5.1.1 Nova基本架構(gòu)及服務(wù)組成 85
5.1.2 Nova內(nèi)部服務(wù)間的通信機(jī)制 86
5.1.3 Nova內(nèi)部服務(wù)間協(xié)同工作 88
5.2 nova-api服務(wù) 89
5.2.1 nova-api服務(wù)的作用 89
5.2.2 nova-api服務(wù)的啟動流程 91
5.3 nova-scheduler服務(wù) 95
5.3.1 基本原理及代碼結(jié)構(gòu) 96
5.3.2 調(diào)度過程 97
5.3.3 配置分析 100
5.4 nova-compute服務(wù) 101
5.4.1 nova-compute服務(wù)的作用 101
5.4.2 nova-compute服務(wù)的啟動流程 103
5.4.3 nova-compute服務(wù)的日志分析 105
5.5 周期性任務(wù)的實現(xiàn) 106
5.5.1 什么是周期性任務(wù) 107
5.5.2 周期性任務(wù)的代碼 108
5.6 資源及服務(wù)刷新機(jī)制 111
5.6.1 服務(wù)上報機(jī)制 111
5.6.2 主機(jī)資源刷新機(jī)制 112
5.7 典型流程分析 117
5.7.1 nova-scheduler服務(wù)的啟動流程 117
5.7.2 虛擬機(jī)創(chuàng)建的流程 120
5.8 案例實戰(zhàn)—Nova以Ceph作為后端存儲 122
第6章 Neutron—網(wǎng)絡(luò)組件
6.1 Neutron的發(fā)展歷程 126
6.2 網(wǎng)絡(luò)基礎(chǔ) 127
6.2.1 網(wǎng)絡(luò)的基本概念 127
6.2.2 常用的網(wǎng)絡(luò)設(shè)備 131
6.2.3 虛擬網(wǎng)絡(luò)技術(shù) 131
6.2.4 Neutron網(wǎng)絡(luò)的基本概念 133
6.3 Neutron核心架構(gòu) 135
6.3.1 Neutron部署結(jié)構(gòu) 135
6.3.2 Neutron組成部件 136
6.3.3 ML2 Core Plugin 138
6.3.4 DHCP服務(wù) 141
6.3.5 路由服務(wù) 142
6.3.6 元數(shù)據(jù)服務(wù) 144
6.3.8 Neutron使用示例 147
6.4 高級服務(wù)(Advanced Services) 149
6.4.1 Load Balancer as a Service(LBaaS) 149
6.4.2 Firewall as a Service(FWaaS) 153
6.4.3 VPN as a Service(VPNaaS) 155
6.5 典型網(wǎng)絡(luò)模型分析 156
6.5.1 Linux Bridge + Flat/VLAN網(wǎng)絡(luò)模型 156
6.5.2 Open vSwitch + VxLAN網(wǎng)絡(luò)模型 161
6.5.3 小結(jié) 171
第7章 Heat—服務(wù)編排組件
7.1 Heat架構(gòu)分析 172
7.1.1 Heat組件的基本架構(gòu) 173
7.1.2 Heat對資源的管理 175
7.1.3 認(rèn)識HOT模板 177
7.1.4 小實例:通過HOT模板創(chuàng)建虛擬機(jī) 180
7.2 Heat中的鎖機(jī)制 182
7.3 Heat中的Hook機(jī)制 184
【示例7-1】在通過Heat進(jìn)行資源定義時,應(yīng)該如何使用Hook(鉤子) 185
【示例7-2】通過Heat創(chuàng)建一個Stack,在創(chuàng)建Stack時,需要通過Environment
來定義Hook(鉤子) 186
7.4 案例實戰(zhàn)—Heat典型案例 189
7.4.1 通過Heat模板創(chuàng)建Stack 189
7.4.2 Heat Stack創(chuàng)建流程 195
第8章 Keystone—認(rèn)證組件
8.1 Keystone的架構(gòu) 198
8.1.1 Keystone的作用 199
8.1.2 Keystone與其他組件間的關(guān)系 201
8.1.3 基本架構(gòu)解析 203
8.1.4 自定義Keystone Plugin 205
8.1.5 支持使用External Plugin 206
8.2 Keystone中的基本概念 207
8.2.1 API V2和API V3 207
8.2.2 其他常見概念 208
8.2.3 多區(qū)域multi-region 209
8.3 Keystone的安裝部署與基本操作 211
8.3.1 Keystone的安裝部署 211
8.3.2 Keystone基本操作 212
【示例8-1】使用OpenStack user create創(chuàng)建一個名為test的用戶 212
8.4 Keystone的認(rèn)證流程 215
8.4.1 認(rèn)證方式 215
【示例8-2】以查看虛擬機(jī)列表為例,使用X-Auth-Token構(gòu)造一個
合法的HTTP請求 215
8.4.2 令牌生成方式 216
8.4.3 Keystone工作流程 220
第9章 Cinder—塊存儲組件
9.1 Cinder架構(gòu)分析 222
9.2 Cinder的安裝 225
9.2.1 安裝與配置存儲節(jié)點 225
9.2.2 安裝與配置控制節(jié)點 227
9.2.3 安裝與配置Backup服務(wù) 231
9.2.4 安裝正確性驗證及Cinder基本操作 232
9.2.5 Cinder配置存儲后端 234
【示例9-1】LVM作為Cinder的后端存儲 234
9.3 案例實戰(zhàn)—通過Heat模板創(chuàng)建Cinder Volume 235
9.4 Cinder API服務(wù)啟動過程分析 238
9.4.1 cinder-api代碼目錄結(jié)構(gòu) 239
9.4.2 cinder-api服務(wù)啟動流程 240
9.4.3 REST請求的路由 242
9.5 案例實戰(zhàn)—關(guān)鍵代碼分析 245
9.5.1 Volume創(chuàng)建示例 245
9.5.2 代碼分析之cinder-api接收請求 247
9.5.3 代碼分析之cinder-scheduler進(jìn)行資源調(diào)度 249
9.5.4 代碼分析之cinder-volume調(diào)用Driver創(chuàng)建Volume 251
第10章 Ceilometer—數(shù)據(jù)采集組件
10.1 Ceilometer架構(gòu)分析 254
10.1.1 Ceilometer中的基本概念 255
10.1.2 舊版Ceilometer架構(gòu) 256
10.1.3 新版Ceilometer架構(gòu) 258
10.2 數(shù)據(jù)處理 260
10.2.1 Notification Agents數(shù)據(jù)收集 261
10.2.2 Polling Agents數(shù)據(jù)收集 262
10.2.3 數(shù)據(jù)轉(zhuǎn)換與發(fā)布 263
10.3 Pipelines 265
10.4 計量項 267
10.5 Agent和Plugin 269
10.5.1 Polling Agents 270
10.5.2 Plugins 272
10.6 案例實戰(zhàn)—Heat與Ceilometer結(jié)合,搭建一個彈性伸縮系統(tǒng) 274
10.6.1 系統(tǒng)介紹 274
10.6.2 準(zhǔn)備模板 275
10.6.3 創(chuàng)建系統(tǒng) 277
第11章 Glance—鏡像組件
11.1 Glance架構(gòu)分析 279
11.2 狀態(tài)分析 280
11.3 代碼結(jié)構(gòu)與概念分析 281
11.3.1 Metadata定義 283
11.3.2 Domain模型 285
【示例11-1】自定義Gateway方法 285
11.3.3 Task定義 287
11.4 Glance的安裝與配置 287
11.4.1 Glance安裝部署 288
11.4.2 Glance基本配置 292
【示例11-2】修改Glance后端存儲為RBD 292
11.5 鏡像緩存 293
11.6 案例實戰(zhàn)—Glance常見場景之鏡像創(chuàng)建 294
第12章 智能運(yùn)維Vitrage—RCA組件
12.1 Vitrage架構(gòu) 297
12.1.1 High Level架構(gòu)設(shè)計 298
12.1.2 Low Level架構(gòu)設(shè)計 300
12.2 Vitrage安裝部署 301
12.2.1 手動方式安裝部署Vitrage 301
12.2.2 通過DevStack安裝Vitrage 303
12.3 Vitrage 模板 304
12.3.1 Templates(模板)的結(jié)構(gòu) 304
【示例12-1】Host處于ERROR狀態(tài)時,觸發(fā)告警的模板 305
12.3.2 模板的加載過程 306
12.3.3 添加自定義模板 307
12.4 Vitrage Evaluator 310
12.5 自定義Datasources 312
12.6 案例實戰(zhàn)—Vitrage中的告警解決方案 314
第13章 OpenStack其他組件及智能運(yùn)維方案
13.1 Mistral—工作流組件 317
13.1.1 Mistral應(yīng)用場景 318
13.1.2 Mistral中的重要概念 318
13.1.3 Mistral功能介紹 320
13.1.4 Mistral架構(gòu)分析 322
13.1.5 Mistral實戰(zhàn)應(yīng)用 322
【示例13-1】為Mistral添加用戶自定義Action 322
【示例13-2】通過Mistral獲取虛擬機(jī)數(shù)據(jù) 323
13.2 OpenStack智能運(yùn)維解決方案 326
13.2.1 可視化的Dynatrace 327
13.2.2 VirtTool Networks 327
13.2.3 智能運(yùn)維Vitrage 329


第14章 OpenStack應(yīng)用實戰(zhàn):自動編排和配置高可用Redis系統(tǒng)
14.1 利用cloud-init配置虛擬機(jī) 332
14.1.1 cloud-init的安裝與配置 333
14.1.2 cloud-init對VM進(jìn)行配置 338
【示例14-1】通過cloud-init配置虛擬機(jī) 341
14.1.3 cloud-init調(diào)試過程與問題分析 343
14.2 Redis數(shù)據(jù)庫的HA實現(xiàn)及Redis集群的創(chuàng)建 347
14.2.1 Redis HA方案實現(xiàn) 347
14.2.2 Redis Cluster集群實現(xiàn) 358
第15章 OpenStack架構(gòu)與代碼實踐
15.1 OpenStack架構(gòu)設(shè)計思路 366
15.1.1 業(yè)務(wù)架構(gòu)設(shè)計思路 366
15.1.2 部署架構(gòu)設(shè)計思路 368
15.1.3 平臺用戶角色設(shè)計 369
15.2 案例實戰(zhàn)—向Heat中添加自定義資源 370
15.2.1 實現(xiàn)原理及思路分析 370
15.2.2 向Heat中添加Zabbix資源 371
15.2.3 定義Zabbix Action 373
15.2.4 實現(xiàn)AutoScaling模板 375
15.2.5 資源查看 377

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號