深度实践OpenStack:基于Python的OpenStack组件开发.html.pdf
《深度实践OpenStack:基于Python的OpenStack组件开发.html.pdf》由会员分享,可在线阅读,更多相关《深度实践OpenStack:基于Python的OpenStack组件开发.html.pdf(292页珍藏版)》请在三一文库上搜索。
1、序 2014年年底,我在从事OpenStack工作两年多之后第一次在北京环球贸易中心接触到了李华和他们的海云团队,之后我们团队与海云也有过多次技术交流,我个人也聆听过李华对OpenStack现实困境 和未来发展的各种看法。我被李华和他们创业团队的远见,以及在云计算事业里的决断气魄而折服,也为他们在OpenStack领域的低调实干精神感到钦佩。 后来,由于英特尔公司对海云捷迅公司的投资关系,我们英特尔研发团队与海云创业团队形成了稳定的合作模式,建立了稳固的合作关系,在工作中发展了深厚的友谊。我们主要在上游社区负责英特 尔平台相关的功能开发,而海云除了开发OpenStack功能之外,更多是要在客户
2、那边负责OpenStack部署和实施。也正是因为这样,我们也从海云那边得到了第一手客户需求信息和部署实施经验。 2015年年中,李华毫不吝啬地送给我一本内部交流资料用于学习。该内部交流资料是培训企业运维人员,如何一步一步在企业内部用OpenStack部署工具,从零开始搭建云计算系统的,内容基本覆盖 了所有OpenStack关键项目的基础用法,非常接地气。对于我这样一名以OpenStack代码开发出身的开发人员来说,受益良多。而且我们研发团队围绕着固定几个关键项目进行开发,很难接触到 OpenStack全局,也很少有机会接触到为支撑一个企业内部私有云所需的所有OpenStack组件的工作原理,这
3、本内部交流资料使我拓宽了视野,增长了见识。 这次欣闻海云即将出版这本书,并将用于企业培训,我特别期待它能早日面世。从李华那里拿到电子版后,我快速浏览了一遍,它除了会讲述OpenStack那些子项目的用法之外,还有众多的背景介 绍,比如KVM、Open vSwitch和Ceph等,甚至还有海云部署案例分析。这本书的内容比我当年拿到的内部交流资料的内容还要丰富和完整,在感谢海云对OpenStack社区慷慨分享的同时,我相信读者一 定能从书中学到更全面、更深入的OpenStack知识,并运用到自己的生产部署和实践开发中。 王庆 博士 OpenStack基金会个人独立董事 英特尔开源技术中心网络和存储
4、部门开发经理 前言 为什么写这本书 从2010年7月至今,OpenStack已经发布了15个版本,并成为云计算基础架构(IaaS)的事实标准。目前OpenStack也被国内企业接受,包括中国移动通信集团公司、中国电信集团公司、中国银联股 份有限公司、中国国电集团公司等都在直接或间接使用OpenStack。 随着云的普及,越来越多的业务部署并运行在OpenStack云中,原生的OpenStack的界面及功能已经远远不能满足需求,有规模的企业寻求定制自己的OpenStack,其中包括界面的定制、计算和网络 等功能的增强等。而与OpenStack相关的创业公司经过几年的发展,都已经有了自己成熟的产品
5、,这些公司如今不再为温饱而四处奔波,也已经从“卖人”转向出售自有产品。随着OpenStack创业公司规 模不断扩大,原有人员远远不能满足需求,熟悉OpenStack开发的人员更是难寻,除了在“云圈子”寻找人才外,很大一部分是从Java、C+等专业人才中进行招聘,这些新人进入公司后,经过一段时间 的培训,才能逐渐进入OpenStack开发的角色。 缺少OpenStack开发人员的原因主要有以下几方面。 1)开发人员首先要熟悉Linux操作系统,然后要熟悉OpenStack的相关概念,同时需要具有OpenStack相关安装部署经验。 2)开发人员要有良好的英文基础,能够看懂官方的英文文档。 3)O
6、penStack的开发语言为Python,很多高校没有开设相关课程,需要开发人员自己学习。 4)开源软件需要用到很多开源工具,包括Git、Curl、Jenkins等,这些工具都需要开发人员掌握。 这些条件和要求整合到一起,难度就陡然增加了,一名普通计算机专业的本科毕业生要从事OpenStack开发相关工作,至少要在OpenStack的开发企业中培训学习3个月左右;而一个云计算的开发企 业,每次招收的毕业生、培养的新人是有限的,加在一起不超过千人,这些人员远远不能满足市场的需求。由此看来,OpenStack开发人员还是非常紧缺的,其待遇也是很不错的。 本书的主要内容和特色 本书是根据北京海云捷迅
7、科技有限公司内部培训教程重新整理编辑而成,内容包括Python语言基础及开发优化的原则和OpenStack组件及开发方面的知识,是一本系统、全面、讲解深入的开发类书 籍,值得所有Python和OpenStack从业人员学习参考。本书特色如下: 1)有针对性地讲解了与OpenStack相关的Python专业知识。 2)全方位涵盖了OpenStack的技术知识,包括DevStack、开发基础、API调用、源码及结构分析、功能扩展等。 3)堪称零基础入门。本书包含详尽的操作步骤,还有详细图示操作指引及错误分析,带领读者步入OpenStack开发的殿堂。 4)第一次公开OpenStack开发企业内部资
8、料工程师的成长资料及资深工程师的日常工作记录,极具参考价值。 本书的知识体系 全书共分八个部分: 第一部分(第1、2章):首先以若干名企业内部OpenStack开发人员的成长历程为例,讲解OpenStack开发人员应具备的知识体系;然后讲解了基本开发环境的搭建。 第二部分(第3、4章):不同于市面上的Python教材,本书以企业内部教程为主线,从企业应用角度讲解Python基础知识、优化原则和OpenStack中Python相关的模块知识。 第三部分(第57章):讲述了消息队列、DevStack开发环境及开发的相关知识,其中包含一些基本概念和技巧,是OpenStack开发人员必须掌握的入门知识
9、。 第四部分(第8、9章):本部分首先用很多实例讲解了Horizon的开发框架Django,然后讲了Horizon界面结构,分析了Horizon的源代码,最后用示例完成Horizon的开发测试过程。 第五部分(第10章):本部分首先详述了Nova启动实例的流程,接着分析了Nova的源码,最后用示例讲述了微模块的开发过程。 第六部分(第11章):本部分首先讲述了OpenStack的部署拓扑和实例的数据流向分析,接着对Neutron的启动流程进行了跟踪分析,最后扩展了Neutron的extensions模块并测试其功能。 第七部分(第12章):本部分主要讲述了OpenStack测试的相关内容,包含
10、开发人员个人的单元测试和团队的模块集成测试技术,为代码整合打好基础。 第八部分(附录AD):首先附录A讲述了国内企业对OpenStack社区的贡献;附录B、C分别对OpenStack的Newton和Ocata版本新特性进行了说明;附录D列举出Git代码管理命令供读者参考,希 望可以为读者指明学习的方向。 本书面向的读者 本书适用于想从事OpenStack开发及深入学习OpenStack的相关人员。本书也可以作为OpenStack的培训教材。 如何阅读本书 OpenStack强调实践,希望读者能够把书中的示例代码都手动输入一遍,在输入运行代码的过程中可能会出现输入错误、语法错误等,读者可以自己尝
11、试独立解决相关问题,逐渐增加自己的编程经 验。 一定要去阅读和分析官方的源码,然后自己尝试去修改源码,只有这样才能锻炼自己的开发能力,逐步成为优秀的OpenStack开发人员。 致谢 本书参考了部分官方文档以及北京海云捷迅科技有限公司的内部资料,得到了该公司周征晟、张加龙、叶东灿、郭姗、伍军、徐奡等开发人员的大力支持;还要感谢北京海云捷迅科技有限公司的张征 宇和李华,在他们的大力支持下本书才得以完成。 感谢云技术社区创始人肖力老师,是肖老师推荐了华章分社杨福川副主编,还要感谢出版社其他工作人员,有了他们的共同努力,本书才得以正式出版。 由于编撰时间有限,加上OpenStack博大精深,版本更迭
12、较快,文中有失效或分析不对的地方还请读者批评指正。 第1章 OpenStack企业工程师的成长及工作介绍 本章以两名OpenStack开发工程师的成长历程及一名资深工程师的部分工作内容为例,通过了解不同OpenStack开发工程师的工作内容来分析工程师的成长历程。 1.1 Horizon界面工程师的工作内容 该工程师大概12月份入职,入职之前没有Python语言的使用经历,现在主要从事Horizon界面的开发工作,他的工作内容可以参考表1-1。 表1-1 Horizon界面工程师的工作内容 1.2 Neutron网络工程师的工作内容 该工程师大概2016年3月份入职,入职之前有相关的工作经验,
13、没有Python语言的使用经历,现在主要从事Neutron网络相关的开发工作,他的工作内容可以参考表1-2。 表1-2 Neutron网络工程师的工作内容 1.3 Nova资深工程师的工作内容 该工程师拥有4年多的Nova开发经验,现在主要从事Nova相关的开发工作,他的工作内容可以参考表1-3。 表1-3 2016年5月份工作日报 可见,一个资深Nova工程师的工作内容和工作效率,除了开发工作外,他还要参与新员工的培训等工作,这应该是我们学习的目标。 1.4 本章小结 本章从三个维度对OpenStack开发工作进行了阐述:一是刚毕业的大学生是怎么学习并从事OpenStack Horizon界
14、面开发工作的;二是有工作经验的工程师是怎么进入OpenStack Neutron开发工作 的;三是资深的OpenStack开发工程师每天所做的工作。希望读者根据实际情况找到适合自己的学习方法,尽早加入到OpenStack这个大家庭中来。 第2章 开发环境的搭建 从第1章可以看出,开发者首先需要学会一些开源工具的使用方法,包括Git代码管理工具、Python的开发工具等,还要学会自己搭建Python开发环境及OpenStack开发环境。开发环境分为两种:一 种是在本地编写代码然后上传到服务器调试运行(服务器可以是OpenStack的虚拟机或物理机,本地可以是Windows或Linux操作系统,普
15、通配置的笔记本电脑即可,但要注意操作系统必须是64位);另 一种是直接在OpenStack的虚拟机或物理机上编写代码,这要求对Linux比较熟悉。本章将对两种环境分别进行说明,读者可以根据自身的情况进行选择。 2.1 Windows开发环境的搭建 大家对Windows比较熟悉,上手比较快,下面先来讲解一下Windows环境的搭建。注意,Windows操作系统要求是64位的,安装的软件包括Git、Java运行环境、Python集成开发环境、PyCharm, 如图2-1所示。 图2-1 需要安装的软件及软件版本 说明 服务器的操作系统CentOS已经没有32位的了。 2.1.1 Git的安装 Gi
16、t安装包的下载链接为https:/www.git- 图2-2 Git的下载及版本选择 单击“下载”按钮后开始下载,下载的版本是2.10.0,64位版本,如图2-3所示。 图2-3 下载的版本及位数 下载完成后双击Git-2.10.0-64-bit开始安装Git软件,同意协议如图2-4所示。 选择安装路径,如图2-5所示。 选择Git的组件,包括Bash和GUI,这里使用默认值,如图2-6所示。 选择“开始”菜单中文件夹的名称,这里使用默认值即可,如图2-7所示。 配置为“可以在Windows命令行使用Git命令”,如图2-8所示。 配置命令结束的样式,如图2-9所示。 图2-4 同意协议 图2
17、-5 选择安装路径 图2-6 选择需要的组件 图2-7 文件夹名称 图2-8 在Windows命令行使用Git命令 图2-9 配置命令结束的样式 配置Bash命令终端样式,如图2-10所示。 图2-10 配置Bash命令终端样式 配置扩展选项,使能系统缓存,如图2-11所示。 图2-11 允许文件系统缓存 限于篇幅,这里省略安装进度等细节,完成后会自动跳转到Release Notes界面,如图2-12所示。 安装完成后不会生成桌面图标,但在“开始”菜单会有Git的文件夹,包括Git Bash、Git CMD、Git GUI3个命令,如图2-13所示。 Git Bash是Linux的命令行,可以
18、使用简单的Linux命令,如图2-14所示。 Git CMD是Git的命令行,可以使用Git命令,如图2-15所示。 图2-12 Release Notes界面 图2-13 Git的安装组件 图2-14 Bash样式 图2-15 Git命令测试 说明 也可以在Bash中输入Git命令来进行操作。 Git GUI是Git的图形操作界面,可以通过图形来完成Git命令,如图2-16所示。 图2-16 图形界面操作 说明 Git的使用将在后面的章节讲解,主要内容是使用Git命令操作,图形界面的操作可以参考其他相关资料。 2.1.2 JDK的安装与配置 JDK安装包的下载链接为http:/ 在下载页面下
19、载JDK(Java Development Kit)集成开发环境,如图2-17所示。 图2-17 JDK下载 说明 JDK是面向开发人员使用的SDK(Software Development Kit),提供了Java的开发环境和运行环境。SDK一般指软件开发包,可以包括函数库、编译程序等。 建议把JRE(Java Runtime Environment)也一起下载,后面的API测试工具会用到。JRE是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 JDK先要同意协议才能下载,选择相应的版本,如图2-18所示。 图2-18 JDK对应的系统及版本 同意协议后,选择jdk-8u1
20、01-windows-x64.exe,然后单击“下载”按钮,如图2-19所示。 图2-19 下载的版本 双击安装包之后开始安装JDK,如图2-20所示。 图2-20 开始安装 定制安装,使用默认值就可以,如图2-21所示。 图2-21 组件安装 说明 这里有JRE的组件,默认直接安装,以前的低版本可能需要单独安装。 选择安装路径,如图2-22所示。 图2-22 选择安装路径 说明 注意安装路径,目前的版本不需要再配置环境变量。 安装过程比较简单,这里不再赘述。下面验证一下是否正确安装了开发环境,进入Windows的命令窗口,输入“java”命令,若有如图2-23所示的输出,则表明正确安装了Ja
21、va集成开发环境。 图2-23 运行测试 说明 JDK8不需要配置环境变量,即不添加环境变量,上面的Java测试也可以直接成功。 之所以要安装JDK,是因为下面要安装的Python开发工具PyCharm是需要Java支持的。 2.1.3 Python的安装与配置 Python安装包的下载链接为https:/www.python.org/downloads/。 注意选择版本,Python2和Python3版本的差异比较大,所以需要根据实际情况选择相应的版本下载,如图2-24所示。 图2-24 支持的版本及操作系统 说明 一般来说,建议选择与安装OpenStack环境版本相一致的Python版本。
22、在OpenStack环境中输入“python”按回车键,就会看到Python版本号等信息,如图2-25所示。 图2-25 查看环境的Python版本 单击图2-24中的下载链接,进入下载页面,可以选择自身环境相对应的Python版本,这里下载的是2.7.5,如图2-26所示。 图2-26 Python版本 本书采用的版本是2.7.5,安装过程如图2-27所示。 图2-27 开始安装Python 选择安装路径,如图2-28所示。 图2-28 选择安装路径 说明 需要记住安装路径,配置环境变量时要用到。 安装Python组件,保持默认值即可,如图2-29所示。 图2-29 安装Python组件 安
23、装过程比较简单,安装完之后不能直接运行Python命令,需要设备环境变量,如图2-30所示。 图2-30 Python命令执行失败 打开“系统属性”对话框,单击“环境变量”按钮,如图2-31所示。 在打开的“系统变量”对话框中找到Path变量,双击编辑该变量对应的值,如图2-32所示。 图2-31 “环境属性”对话框 图2-32 Path变量 双击编辑该变量对应的值,在行末输入“;”,然后把Python的安装路径加进去,如图2-33所示。 图2-33 添加Python27路径 重新开一个CMD的终端,输入“python”,若出现如图2-34所示的内容,则说明Python安装成功了。 图2-34
24、 Python验证成功 2.1.4 PyCharm的安装与配置 PyCharm是一种Python IDE,带有一整套可以帮助用户使用Python语言提高开发效率的工具,如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该 IDE提供了一些高级功能,用于支持Django框架下的专业Web开发。 PyCharm安装包的下载链接为http:/ 图2-35 支持的版本 默认是最新版,单击“下载”按钮后会自动下载,如图2-36所示。 图2-36 下载PyCharm及版本 下载完成后双击安装包即可开始安装,如图2-37所示。 选择安装路径,这里使用默认值即可,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深度 实践 OpenStack 基于 Python 组件 开发 html
链接地址:https://www.31doc.com/p-5518760.html