openstack源码学习1

1. openstack的keystone,glance,nova源码结构都非常相似,使用wsgi协议,webob,paste,routes几个基于python的框架。     

WSGI   Web服务器 网关 接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口。

webob 是python基于WSGI request and response 的工具组件。

Routes 是采用Python实现的Rails的URL映射控制,Routes很容易创建漂亮和简洁的URL的RESTful。                 Python Paste  - WSGI底层工具集. 包括多线程, SSL和 基于Cookies, sessions等的验证(authentication)库. 可以用Paste方便得搭建自己的Web框架。

安装的openstack系统中源码位置:

 可以利用find / -name api.py搜索,安装好的openstack源码位置在 /usr/lib/python2.6/site-pakages/

OpenStack   libvirt   hypervisor driver(CIM)?

2. 在openstack中非常重要的基本概念Server,Manager,Driver。

Openstack的Service分为2种: Service 和 WSGIService.

前者供内部调用,通过RPC(Remote Procedure Call)

后者对外部提供API,通过http

Manager统一对外的接口

Driver兼容不同的底层结构

Server顾名思义就是服务,openstack的各种应用都 是以服务的形式暴露出来,openstack中主要有两种服务一种是以linux中的服务守护进程方式存在,一种是WSGIService一种以WSGI 标准形式存在的web服务。在这里讨论的server就是第一种形式的服务。这个server的主要存在形式就是一个消息队列的守护进程,接受特定 topic的消息执行相应的命令,对外提供一个rpc接口,一个sever对应一个topic。

一个server要有什么样的具体功能,也就是可以对外提 供什么样的服务功能,是由其中的manager来决定,manager顾名思义就是管理者,主要提供管理功能,具体的操作是由manager中定义 driver决定的,一个driver可以看做是一个worker,在manager的管理协调下(manager可以调用其他相关模块功能,结合 driver)执行相关的工作,为外界提供相关服务应用。

猜你喜欢

转载自flyingsword945.iteye.com/blog/2153480