编辑推荐
《深度实践OpenStack:基于Python的OpenStack组件开发》由机械工业出版社出版。
目录
序
前言
第1章OpenStack企业工程师的成长
及工作介绍1
1.1Horizon界面工程师的工作内容1
1.2Neutron网络工程师的工作内容2
1.3Nova资深工程师的工作内容3
1.4本章小结5
第2章开发环境的搭建6
2.1Windows开发环境的搭建6
2.1.1Git的安装6
2.1.2JDK的安装与配置12
2.1.3Python的安装与配置15
2.1.4PyCharm的安装与配置19
2.2Linux开发环境的搭建24
2.2.1Vim编辑器24
2.2.2PyCharm编辑器25
2.3Eclipse开发环境的搭建26
2.3.1安装Eclipse的PyDev插件26
2.3.2安装Eclipse的EGit插件26
2.4Launchpad账号26
2.4.1Launchpad账号注册26
2.4.2上传SSHkeys27
2.4.3补充相关账号与信息30
2.5Git的使用32
2.5.1设置Git全局配置32
2.5.2安装git—review工具并验证33
2.5.3提交代码步骤33
2.5.4Git管理流程图35
2.6本章小结35
第3章Python语言基础36
3.1Python概述36
3.2Python基础37
3.2.1编码37
3.2.2缩进与分隔37
3.2.3命名规范38
3.2.4注释39
3.2.5执行39
3.2.6代码的调试40
3.2.7帮助的使用41
3.3Python数据类型42
3.3.1变量42
3.3.2数字与表达式44
3.3.3字符串和列表45
3.3.4元组49
3.3.5字典50
3.3.6其他类型50
3.4流程控制51
3.4.1if语句51
3.4.2while循环52
3.4.3for循环53
3.4.4continue和break53
3.4.5异常处理53
3.4.6else的特殊用法54
3.5函数55
3.5.1函数基础55
3.5.2函数参数55
3.5.3函数体和返回值57
3.5.4再论类型和循环58
3.5.5生成器60
3.5.6可调用的变量62
3.5.7变量作用域63
3.6本章小结64
第4章Python模块65
4.1SQLAlchemy65
4.1.1安装SQLAlchemy65
4.1.2使用SQLAlchemy对数据库操作65
4.1.3使用ORM67
4.1.4完整示例69
4.2logging模块70
4.2.1logging的使用70
4.2.2若干重要的概念71
4.2.3logging工作流程73
4.2.4日志配置74
4.3Eventlet77
4.3.1greenlet77
4.3.2GreenThread78
4.4WSGI81
4.4.1RESTfulAPI介绍81
4.4.2WSGI简介82
4.4.3简单的WSGI83
4.4.4运行WSGI服务84
4.4.5Middleware86
4.5PasteDeploy87
4.5.1PasteDeploy安装87
4.5.2Paste配置文件87
4.5.3改进WSGI89
4.6WebOb90
4.6.1Python装饰器说明90
4.6.2简单示例91
4.6.3添加自己的中间件91
4.6.4其他特性92
4.7routes模块92
4.7.1routes模块概述92
4.7.2使用示例93
4.8综合实例94
4.9本章小结98
第5章RabbitMQ99
5.1RabbitMQ简介99
5.2RabbitMQ流程101
5.2.1单向发送消息101
5.2.2队列103
5.2.3交换106
5.2.4路由109
5.2.5主题111
5.2.6RPC调用114
5.3RabbitMQ持久化119
5.4本章小结120
第6章DevStack121
6.1DevStack介绍121
6.2操作系统的安装与配置121
6.2.1VMware虚拟机的配置121
6.2.2系统配置123
6.3环境准备与配置126
6.3.1DevStack准备126
6.3.2配置local.conf文件127
6.4安装DevStack128
6.5环境验证128
6.5.1登录验证128
6.5.2创建网络130
6.5.3创建实例132
6.5.4验证实例网络134
6.5.5OpenStack版本136
6.6错误分析136
6.6.1日志目录136
6.6.2使用Git下载代码出错137
6.6.3网络配置错误137
6.6.4重新部署137
6.7本章小结138
第7章开发小试139
7.1screen简介139
7.1.1screen的进入139
7.1.2screen的使用140
7.1.3screen的退出142
7.2API调试142
7.2.1API142
7.2.2RESTClient工具145
7.2.3Curl实验151
7.2.4错误分析155
7.3OpenStack界面主题的修改157
7.3.1替换logo157
7.3.2修改样式159
7.4本章小结164
第8章Django框架165
8.1安装Django165
8.2Django的架构169
8.3创建项目170
8.3.1Django管理工具171
8.3.2测试站点172
8.3.3增加一个APP174
8.4使用数据库176
8.4.1连接数据库176
8.4.2创立模型177
8.4.3显示记录179
8.5模板180
8.5.1使用模板180
8.5.2流程分析182
8.5.3使用循环182
8.5.4模板继承184
8.6表单185
8.6.1提交表单(GET方法)185
8.6.2提交表单(POST方法)186
8.7存储数据187
8.8表单对象188
8.9admin管理190
8.9.1默认管理190
8.9.2复杂的模型191
8.9.3自定义页面192
8.9.4Inline显示193
8.9.5列表页的显示194
8.10错误分析196
8.11本章小结198
第9章Dashboard的开发199
9.1Dashboard概述199
9.2源码解析200
9.2.1UI整体结构200
9.2.2初识Dashboard201
9.2.3项目结构203
9.3自定义Dashboard和Panel207
9.3.1手工启动Dashboard工程207
9.3.2创建Dashboard207
9.3.3创建mypanel208
9.3.4编写代码209
9.3.5验证代码215
9.4复杂的actiontable217
9.4.1定义view217
9.4.2增加URL219
9.4.3定义action220
9.4.4测试220
9.5Horizon开发相关内容222
9.5.1汉化222
9.5.2workflows222
9.5.3JavaScript224
9.6错误分析225
9.7本章小结227
第10章Nova组件228
10.1组件介绍228
10.1.1OpenStack的版本228
10.1.2组件的组成228
10.1.3组件之间的关系229
10.1.4API的使用230
10.2虚拟创建过程详解230
10.3Nova源码分析233
10.3.1目录结构233
10.3.2重要目录详解236
10.4Nova调用关系分析240
10.4.1创建虚拟机过程源码追溯240
10.4.2创建虚拟机过程调用流程函数分析241
10.4.3Nova和AMQP的关系243
10.5开始实践246
10.6APIV2.1说明248
10.6.1compatibility249
10.6.2Validation249
10.6.3Microversion249
10.7编码251
10.7.1示例编码251
10.7.2官方代码参考252
10.7.3Nova代码实现示例258
10.8调试并修复nova—compute的所有协程卡住的问题262
10.9本章小结269
第11章Neutron组件270
11.1Neutron基础270
11.1.1服务及组件介绍270
11.1.2Neutron架构271
11.1.3Neutron抽象出的概念272
11.1.4Linux网络基础272
11.2实例网络详解273
11.2.1硬件配置及网络拓扑273
11.2.2各个节点服务关系及说明274
11.2.3场景举例277
11.3Neutron的源码分析282
11.3.1目录结构283
11.3.2重要目录详解285
11.3.3Neutron启动分析288
11.4Neutron组件扩展293
11.4.1编写代码293
11.4.2重启服务295
11.4.3测试296
11.5本章小结297
第12章测试技术298
12.1OpenStack测试基础298
12.2单元测试299
12.3集成测试301
12.4本章小结303
附录AMitaka国内代码贡献304
附录BNewton新特性307
附录COcata版本新特性309
附录DGit代码管理命令314
序言
Foreword 序2014年年底,我在从事OpenStack工作两年多之后第一次在北京环球贸易中心接触到了李华和他们的海云团队,之后我们团队与海云也有过多次技术交流,我个人也聆听过李华对OpenStack现实困境和未来发展的各种看法。我被李华和他们创业团队的远见,以及在云计算事业里的决断气魄而折服,也为他们在OpenStack领域的低调实干精神感到钦佩。
后来,由于英特尔公司对海云捷迅公司的投资关系,我们英特尔研发团队与海云创业团队形成了稳定的合作模式,建立了稳固的合作关系,在工作中发展了深厚的友谊。我们主要在上游社区负责英特尔平台相关的功能开发,而海云除了开发OpenStack功能之外,更多是要在客户那边负责OpenStack部署和实施。也正是因为这样,我们也从海云那边得到了第一手客户需求信息和部署实施经验。
2015年年中,李华毫不吝啬地送给我一本内部交流资料用于学习。该内部交流资料是培训企业运维人员,如何一步一步在企业内部用OpenStack部署工具,从零开始搭建云计算系统的,内容基本覆盖了所有OpenStack关键项目的基础用法,非常接地气。对于我这样一名以OpenStack代码开发出身的开发人员来说,受益良多。而且我们研发团队围绕着固定几个关键项目进行开发,很难接触到OpenStack全局,也很少有机会接触到为支撑一个企业内部私有云所需的所有OpenStack组件的工作原理,这本内部交流资料使我拓宽了视野,增长了见识。
这次欣闻海云即将出版这本书,并将用于企业培训,我特别期待它能早日面世。从李华那里拿到电子版后,我快速浏览了一遍,它除了会讲述OpenStack那些子项目的用法之外,还有众多的背景介绍,比如KVM、Open vSwitch和Ceph等,甚至还有海云部署案例分析。这本书的内容比我当年拿到的内部交流资料的内容还要丰富和完整,在感谢海云对OpenStack社区慷慨分享的同时,我相信读者一定能从书中学到更全面、更深入的OpenStack知识,并运用到自己的生产部署和实践开发中。
王庆 博士 OpenStack基金会个人独立董事 英特尔开源技术中心网络和存储部门开发经理
· · · · · · (
收起)
0 有用 注销倒计时 2018-11-01 16:27:42
平和细致
0 有用 火起来 2019-06-25 10:38:49
实用主义,真正使用openstack的人感觉很多细节很实用