OpenStack 开发入门

什么是 OpenStack?

官方网站给出的定义是:

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

粗略翻译:
OpenStack 是一个可以控制整个数据中心里大量的计算、存储和网络资源池的云操作系统,它通过一个既能赋予管理员控制资源的能力,也能让普通用户调配资源的可视化控制面板(Dashboard)来管理这一切。

Openstack 介绍

对开发者来说,我们需要知道的是,OpenStack 是由一系列开源组件构成的基础设施即服务(Infrastructure as a Service,简称IaaS)范畴的云平台解决方案,它让用户方便的构建和管理自己的云平台,它正在解决以及将要解决的主要问题就是如何自动管理物理主机上虚拟出来的虚拟机和虚拟资源。

虚拟资源主要计算、网络、存储三种,OpenStack 有对应的组件去管理这些资源,每个组件在 github 上都是分开的工程,我们可以从这里获取到源码:https://github.com/openstack/

主要组件以及作用

Project Service Catalog
NOVA
Compute Service 计算服务 Compute
GLANCE
Image Service 镜像服务 Compute
SWIFT
Object Store 对象存储 Storage, Backup & Recovery
CINDER
Block Storage 块存储 Storage, Backup & Recovery
KEYSTONE
Identity service 认证服务 Security,Identity & Compliance
NEUTRON
Networking 网络服务 Networking&Content Delivery
HORIZON
Dashboard 管理界面 Management Tools

组件内部也并不是完全一体,紧密耦合的状态,这样方便了组件的扩展和维护,组件之间也并不是孤立的,有时候一个操作可能需要多个组件共同完成,下图就是从整个 OpenStack 的全局技术架构的角度看它的组件,以及之间的大致的调用关系。

全局视图

准备动手之前

  • 你需要熟悉 Python 语言,不管 2.x 还是 3.x
    因为 OpenStack 各个组件主要是基于 Python 开发,熟悉 Python 语言就自然成为一个不可或缺的准备工作。虽然 2.x 和 3.x 现在都被广泛的试用,并无太大优劣之分,不过我还是推荐学习 3.x,你可以从这些地方获取到学习资料

  • WSGI 和 Paste Deployment 相关知识点

    Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。这一块是 OpenStack Restful 接口的基础。
    Paste Deployment是用来发现和配置WSGI的系统。对于WSGI使用者来说,它提供了简单的方法(loadapp)通过配置文件来启动WSGI应用,对于WSGI的开发者来说,只需要给自己的应用提供一套简单的入口点即可。OpenStack 主要使用这个框架来完成 WSGI 部分的工作,那么我们开发的时候,自然也是从这里入手。
    文档地址:- http://pastedeploy.readthedocs.io/en/latest/
    资料地址:- http://yansu.org/2013/06/07/learn-python-setuptools-in-detail.html

  • 了解OpenStack 用到的包(或者叫框架)及其作用
    这里 OpenStack 列举了自己开发中使用的包,可以简单了解下,并且在自己的开发中使用 https://docs.openstack.org/developer/openstack-projects.html

  • IDE
    建议使用 IDE 开完成开发,可以选在 pydev 提供的基于 eclipse 的版本 liclipse ,也可以使用 Jetbrains 公司开发的 Pycharm

Win环境中远程调试 OpenStack 代码设置

OpenStack 的各个组件现在还只能部署在 Linux 环境中, 如果我们想调试 OpenStack 组件的代码,那么必须远程调试,下面就简单的说明一下调试环境的搭建。

  1. 安装 dokan 和 win-sshfs,这两个软件能够将远程的文件,挂载成一个 windows 系统中的盘,方便我们对远程的代码进行修改和同步
    下载地址:
    https://github.com/dokan-dev/dokany/releases/tag/v1.0.1
    https://github.com/Foreveryone-cz/win-sshfs/releases

    先安装 dokan 库,然后安装 win-sshfs, 安装 win-sshfs 的时候,不会有具体提示信息,安装成功之后可以在任务栏看到它的图标


    图标
  2. 安装 pycharm,或者 liclipse ,下载地址见上节

  3. 在需要调试的代码环境中安装 pydevd 包,方法:pip install pydevd

  4. 将挂载的工程导入到 IDE 里面,由于是远程访问,速度可能稍慢,等待他完成

以 pycharm 为例,讲解设置远程调试步骤

1 配置远程 debugger
2 启动debugger server
3 启动完成,将控制台显示的代码放到需要远程 debugger 的文件
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容