美文网首页openstackOpenStack
OpenStack 开发入门

OpenStack 开发入门

作者: wayne_ming | 来源:发表于2018-01-24 18:13 被阅读80次

什么是 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 的文件

相关文章

  • OpenStack 开发入门

    什么是 OpenStack? 官方网站给出的定义是: OpenStack is a cloud operating...

  • openstack kolla 入门

    [TOC] #openstack kolla 入门 ##kolla 使命 To provide productio...

  • cinder开发文档

    Openstack Cinder 开发文档 1、简介 Openstack block storage servic...

  • OpenStack入门

    Horizon -- UI模块为云管理员提供整体视图,以实现资源整合和配额管理为云终端用户提供自助服务门户,在配额...

  • OpenStack入门

    OpenStack的起源 2002年,美国著名的电商公司亚马逊(Amazon)干了一件“不务正业”的事。他们向客户...

  • OpenStack开发

    不同模块之间通信是使用REST API: nova与keystone这样的。同一模块的不同组件之间是使用RPC A...

  • OpenStack入门介绍

    在了解OpenStack之前,我们需要对下面几个基本的概念有一定的了解。 虚拟化虚拟化是一种具体的技术,指的是一种...

  • 《OpenStack开源云王者归来》.PDF

    简介 《OpenStack开源云王者归来:云计算虚拟化Nova、Swift、Quantum与Hadoop》按照入门...

  • 文章引用列表

    12.10-OpenStack入门介绍 12.10-QEMU 介绍 12.10-QEMU使用简介 12.11-qe...

  • 如何调试OpenStack代码

    对于很多刚刚从事OpenStack相关的开发者来说,如何对OpenStack代码进行debug,是一件很困惑,但又...

网友评论

    本文标题:OpenStack 开发入门

    本文链接:https://www.haomeiwen.com/subject/tdlifxtx.html