OpenStack 设计与实现系统学习资料

来源:互联网 发布:西安发展 知乎 编辑:程序博客网 时间:2024/06/08 00:22

  • 基本开发环境
    • linux操作系统
    • git
    • vim with python support
    • devstack
    • 用pdb调试openstack
  • 代码质量保障与单元测试
  • 虚拟化技术与libvert
  • OpenStack 通用技术
    • 软件包管理与setuppy和setupcfg
    • 一简单的实例串联相关知识API WSGI 与数据库
    • RESTful service api和WSGI
      • RESTful与RESTful API
      • python WSGI
        • 连接web服务器与应用服务器的wsgi规范
        • openstack使用的wsgi框架
          • pasteRoutesWebOb
          • Pecan
    • 消息总线AMQP和基于AMQP的rpc
    • 数据库与SQLAlchemy
    • Eventlet协程
    • Openstack common libraries Oslo 通用库
  • Openstack Nova
    • nova源码结构
    • nova系统组成与交互
      • nova中的rpc
      • nova api
      • nova scheduler
      • nova conductor
      • nova compute
        • virt driver
      • nova cells
      • nova 中的 metadata user data 以及cloud-init
      • nova 统计资源
    • 源码分析系列文章
  • Openstack Keystone
  • Openstack Neutron
  • Openstack Glance
  • Openstack Ceilometer
  • Opentack quota配额
  • 论文调研中看到的别人基于openstack进行的云联盟相关开发
  • 跟我的研究相关的需要重点研究的
    • 一是 nova compute的扩展要实现另一个driver
    • 二是 nova 需要和 glance neutron keystone进行交互如何映射镜像和网络资源
    • 三是 nova scheduler 的扩展
    • 四是计费模式与ceilometer
    • multi-region openstack
    • 对比openstack cascading
  • 能测试什么 系统可扩展性 算法的优化目
  • 参考书
  • 其他资源

基本开发环境

linux操作系统

Ubuntu与SL ?

git

vim with python support

Openstack 实现技术分解 (3) 开发工具 — VIM & dotfiles

关于代码静态检查,[1]中说不推荐使用pylint,不知道为什么,所以把vim中的语法检查工具配置成使用flake8来检查。

devstack

Devstack代码流程图
http://blog.csdn.net/gzhouc/article/details/51999680

Openstack 实现技术分解 (1) 开发环境 — Devstack 部署案例详解
http://blog.csdn.net/jmilk/article/details/54410013

Devstack — screen 调试工具的使用
http://blog.csdn.net/jmilk/article/details/52096635

更多devstack相关 参见 http://blog.csdn.net/Jmilk/article/category/6316482/3

用pdb调试openstack

用pdb调试OpenStack
http://blog.csdn.net/epugv/article/details/13512247

openstack调试方法总结
http://blog.csdn.net/jincm13/article/details/38555961

代码质量保障与单元测试

通过demo学习OpenStack开发所需的基础知识 – 单元测试
https://segmentfault.com/a/1190000004595130

Openstack_单元测试
http://blog.csdn.net/jmilk/article/details/53162252

Openstack_单元测试工具 tox
http://blog.csdn.net/jmilk/article/details/53172601

虚拟化技术与libvert

OpenStack设计与实现(一)虚拟化
http://blog.csdn.net/xingjiarong/article/details/50542523

OpenStack设计与实现(二)Libvirt简介与实现原理
http://blog.csdn.net/xingjiarong/article/details/50545826

OpenStack 通用技术

软件包管理与setup.py和setup.cfg

[1]中说 setup.cfg文件是源码地图,这个文件跟软件包管理有关,那得看看

通过demo学习OpenStack开发所需的基础知识 – 软件包管理
https://segmentfault.com/a/1190000002940724#articleHeader15

一简单的实例串联相关知识,API WSGI 与数据库

通过demo学习OpenStack开发系列

通过demo学习OpenStack开发所需的基础知识 – 软件包管理
https://segmentfault.com/a/1190000002940724#articleHeader15
WSGI简介
https://segmentfault.com/a/1190000003069785
通过demo学习OpenStack开发所需的基础知识 – API服务(1) 使用OpenStack服务的方式
https://segmentfault.com/a/1190000003718598
通过demo学习OpenStack开发所需的基础知识 – API服务(2) Paste + PasteDeploy + Routes + WebOb
https://segmentfault.com/a/1190000003718606
通过demo学习OpenStack开发所需的基础知识 – API服务(3) Pecan
https://segmentfault.com/a/1190000003810294
通过demo学习OpenStack开发所需的基础知识 – API服务(4) 设计REST API(Pecan和WSME)
https://segmentfault.com/a/1190000004004179
通过demo学习OpenStack开发所需的基础知识 – 数据库(1)
https://segmentfault.com/a/1190000004261891
通过demo学习OpenStack开发所需的基础知识 – 数据库(2)
https://segmentfault.com/a/1190000004466246
通过demo学习OpenStack开发所需的基础知识 – 单元测试
https://segmentfault.com/a/1190000004595130

RESTful service api和WSGI

OpenStack设计与实现(五)RESTful API和WSGI
http://blog.csdn.net/xingjiarong/article/details/50571289

RESTful与RESTful API

怎样用通俗的语言解释REST,以及RESTful
https://www.zhihu.com/question/28557115

理解RESTful架构 (简短)
http://www.ruanyifeng.com/blog/2011/09/restful.html

RESTful系列文章
http://blog.csdn.net/Jmilk/article/category/6054442

RESTful API 设计指南
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

Openstack API 类型 & REST 风格
http://blog.csdn.net/jmilk/article/details/52029553

python WSGI

连接web服务器与应用服务器的wsgi规范

WSGI 理解
http://blog.csdn.net/xiaobei4929/article/details/42264081

WSGI简介
https://segmentfault.com/a/1190000003069785
Web 开发规范 — WSGI
http://blog.csdn.net/jmilk/article/details/52036911

openstack使用的wsgi框架

paste+Routes+WebOb

http://pythonpaste.org/deploy/

WSGI and Paste学习笔记
http://www.cnblogs.com/popsuper1982/p/3800430.html

Developing Applications with the Web Server Gateway Interface
https://indico.cern.ch/event/44/contributions/1942582/

Openstack Restful API 开发框架 Paste + PasteDeploy + Routes + WebOb
http://blog.csdn.net/jmilk/article/details/52046914

Openstack Paste.ini 文件详解
http://blog.csdn.net/jmilk/article/details/52081748

OpenStack之RESTful API调用(一)( 二)
http://blog.csdn.net/qiuhan0314/article/details/42772479
http://blog.csdn.net/qiuhan0314/article/details/42809785

Pecan

消息总线AMQP和基于AMQP的rpc

python 高手之路中11.4 中说
暴露API给外界时 使用 HTTP 无状态的话 就选择 Restful 风格 ( 其他的还有 soap?) 暴露给外界 提供 web service?
在内部暴露和使用API时,HTTP 并非最好,有大量针对应用程序的通信协议

OpenStack开发基础-AMPQ 简单例子
http://blog.csdn.net/zhangyifei216/article/details/50463723

OpenStack设计与实现(四)消息总线(AMQP)
http://blog.csdn.net/xingjiarong/article/details/50564231

Openstack 中的消息总线 & AMQP
http://blog.csdn.net/jmilk/article/details/52001105

Openstack_通用技术_RPC 远程异步调用
http://blog.csdn.net/jmilk/article/details/52655645

OpenStack之RPC调用(一)服务器端
http://blog.csdn.net/qiuhan0314/article/details/42671965
OpenStack之RPC调用(二)客户端
http://blog.csdn.net/qiuhan0314/article/details/42712283

数据库与SQLAlchemy

Openstack 通过 SQLAlchemy-ORM 访问数据库
http://blog.csdn.net/jmilk/article/details/52484991

更多 Openstack — SQLAlchemyx系列文章
http://blog.csdn.net/Jmilk/article/category/6403365

Eventlet协程

openstack nova 基础知识——eventlet
http://blog.csdn.net/hackerain/article/details/7836993

Openstack Eventlet分析(1)
http://blog.csdn.net/gaoxingnengjisuan/article/details/12913275
http://blog.csdn.net/gaoxingnengjisuan/article/details/12914831

Openstack common libraries Oslo 通用库

oslo.messaging 对rabbitMQ封装

OpenStack开发基础-oslo.config
http://blog.csdn.net/zhangyifei216/article/details/50434980

Openstack Oslo.config 学习(一)
http://blog.csdn.net/yugongpeng_blog/article/details/45846367
Openstack Oslo.config 学习(二)
http://blog.csdn.net/yugongpeng_blog/article/details/45846387

Openstack 实现技术分解 (4) 通用技术 — TaskFlow
http://blog.csdn.net/jmilk/article/details/60496748

OpenStack 实现技术分解 (6) 通用库 — oslo_log
http://blog.csdn.net/jmilk/article/details/54022555

OpenStack 实现技术分解 (7) 通用库 — oslo_config
http://blog.csdn.net/jmilk/article/details/68068192

Openstack Nova

nova源码结构

Grizzly
OpenStack Nova源码结构(1)
http://blog.csdn.net/gaoxingnengjisuan/article/details/10893163
http://blog.csdn.net/gaoxingnengjisuan/article/details/10893221

nova系统组成与交互

Openstack组件实现原理 — Nova 体系结构
http://blog.csdn.net/jmilk/article/details/51855205

nova中的rpc

NOVA源码分析——NOVA中的RabbitMQ解析
http://blog.csdn.net/gaoxingnengjisuan/article/details/9623529

Openstack Nova 源码分析 — RPC 远程调用过程
http://blog.csdn.net/jmilk/article/details/52116458

OpenStack之Nova分析——Nova API服务
http://blog.csdn.net/qiuhan0314/article/details/42874241

nova api

openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
http://blog.csdn.net/Jmilk/article/category/6301826

Openstack-L 路由注入方式
http://blog.csdn.net/jmilk/article/details/52175603

nova scheduler

OpenStack Nova-scheduler组件的源码解析(1)
http://blog.csdn.net/gaoxingnengjisuan/article/details/15615743
http://blog.csdn.net/gaoxingnengjisuan/article/details/15734437

Openstack nova-scheduler 源码分析 — Filters/Weighting
http://blog.csdn.net/jmilk/article/details/52213999

OpenStack之Nova分析——Nova Scheduler服务启动
http://blog.csdn.net/qiuhan0314/article/details/43196149

OpenStack之Nova分析——Nova Scheduler调度算法
http://blog.csdn.net/qiuhan0314/article/details/43232223

nova conductor

Openstack Nova 源码分析 — Create instances (nova-conductor阶段)
http://blog.csdn.net/jmilk/article/details/52155194

nova compute

Openstack Nova 源码分析 — 使用 VCDriver 创建 VMware Instance
http://blog.csdn.net/jmilk/article/details/52165016

virt driver

nova cells

OpenStack Nova-cell服务的介绍和配置
OpenStack Nova-cell服务的源码解析(1)
http://blog.csdn.net/gaoxingnengjisuan/article/details/14484033

nova 中的 metadata, user data 以及cloud-init

!! 以前还收藏过 关于这个的实现机制,要翻一下收藏夹

Openstack 实现技术分解 (2) 虚拟机初始化工具 — Cloud-Init & metadata & userdata
http://blog.csdn.net/jmilk/article/details/54667770

nova 统计资源

Nova 是如何统计 OpenStack 计算资源
http://blog.csdn.net/gzhouc/article/details/52006449

源码分析系列文章

1.
系列文章 Openstack——Nova
http://blog.csdn.net/Jmilk/article/category/6301826

创建虚拟机系列以及scheduler
http://blog.csdn.net/qiuhan0314/article/category/2764341/1

2.
别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
http://www.cnblogs.com/popsuper1982/p/3927390.html
系列文章 1-5(2014)
http://www.cnblogs.com/popsuper1982/category/581663.html

如果有人问我,看懂各个Service代码的钥匙是什么,我必须说,是paste文件,看懂了这个文件,就很容易找到对应的入口代码。
对于Paste,我推荐 WSGI and Paste

3.
http://blog.csdn.net/gaoxingnengjisuan/article/category/1461395/2

OpenStack建立实例完整过程源码详细分析(1)
系列文章 1-9
http://blog.csdn.net/gaoxingnengjisuan/article/details/9130213
http://blog.csdn.net/gaoxingnengjisuan/article/details/9134123
http://blog.csdn.net/gaoxingnengjisuan/article/details/9152827
http://blog.csdn.net/gaoxingnengjisuan/article/details/9153295
http://blog.csdn.net/gaoxingnengjisuan/article/details/9157977
http://blog.csdn.net/gaoxingnengjisuan/article/details/9159117
http://blog.csdn.net/gaoxingnengjisuan/article/details/9167409
http://blog.csdn.net/gaoxingnengjisuan/article/details/9173753
http://blog.csdn.net/gaoxingnengjisuan/article/details/9177021
OpenStack建立实例完整过程源码详细分析(10)
http://blog.csdn.net/gaoxingnengjisuan/article/details/10907313
http://blog.csdn.net/gaoxingnengjisuan/article/details/11030565
OpenStack建立实例完整过程源码详细分析(12)—-依据AMQP通信架构实现消息发送机制解析之一
http://blog.csdn.net/gaoxingnengjisuan/article/details/11468061
http://blog.csdn.net/gaoxingnengjisuan/article/details/12230521
OpenStack建立实例完整过程源码详细分析(14)—-依据AMQP通信架构实现消息接收机制解析之一
http://blog.csdn.net/gaoxingnengjisuan/article/details/12231633
http://blog.csdn.net/gaoxingnengjisuan/article/details/12234079

OpenStack基于Libvirt的虚拟化平台调度实现—-Nova虚拟机启动源码实现(1)
系列文章
http://blog.csdn.net/gaoxingnengjisuan/article/details/9959477
http://blog.csdn.net/gaoxingnengjisuan/article/details/9985535
http://blog.csdn.net/gaoxingnengjisuan/article/details/10165963
http://blog.csdn.net/gaoxingnengjisuan/article/details/10233043

Openstack Keystone

Openstack组件实现原理 — Keystone认证功能
http://blog.csdn.net/Jmilk/article/category/6273112

Openstack Neutron

Openstack组件实现原理 — OpenVswitch/Gre/vlan
http://blog.csdn.net/jmilk/article/details/52207542

Openstack Glance

Openstack组件实现原理 — Glance架构(V1/V2)
http://blog.csdn.net/jmilk/article/details/51756238

Openstack Ceilometer

OpenStack源码分析-CEILOMETER
http://blog.csdn.net/gaoxingnengjisuan/article/category/2748301

Opentack quota配额

OpenStack配额(Quota)设计与实现
http://blog.csdn.net/qiuhan0314/article/details/45970985

论文调研中看到的别人基于openstack进行的云联盟相关开发

跟我的研究相关的需要重点研究的

实现云联盟,主要需要改造的可能是三块

一是 nova compute的扩展要实现另一个driver

可以参考 libvert driver

实现一个 cloud(nova) driver 把 nova 当作 libvert 来用

二是 nova 需要和 glance, neutron keystone进行交互,如何映射镜像和网络资源

主要是 nova-api 还有 nova-compute 要与他们交互

怎么把远程的网络和 镜像 资源映射过来。。可以参考 对libvert 的处理?

因为libvert 好像也有 网络和镜像管理的 api,

需要 image 的federation?
和 network 的federation? 可能也有相关 插件,

三是 nova scheduler 的扩展

云联盟中的各种决策模型可能需要通过 给 scheduler 一个额外的 插件来实现

? 浙大的人做过不少 scheduler的开发,不知道是基于什么机制改造的

另外就是 以前意大利人?有个 fairshare scheduler 看看他们是怎么基于nova scheduler 改的 代码

另外 nova中好像有 可性计算池的概念(放在[1]的8.3里面,算是安全),提供白名单黑名单?
TrustedFilter可以跟外部认证服务通信
(Intel TXT 和 OpenAttestation 服务)

可能可以参考用来实现 云联盟中的 partner selection机制
云联盟中 可以 写一个其他的filter 用来和外部 联盟服务机制(broker or agent?) 来提供 调度信息?
这个外部决策系统可能还需要收集一些信息。可以参考 [1]8.3 里面提到的 OAT的设计

新的功能如何通过 nova api来体现? 关于api的 extension

四是计费模式与ceilometer

决策模型 取决于不同的计费模型?
跟计费相关的就是 ceilometer了

multi-region openstack?

对比openstack cascading

记得有个 华为还是哪的 设计过这样的原型 cascading openstack?

https://wiki.openstack.org/wiki/OpenStack_cascading_solution

https://github.com/stackforge/tricircle/

我还下载了一个测试报告 关于可扩展性?

他们还开发了simulator?

simulation?

能测试什么? 系统可扩展性 算法的优化目

参考书

[1] OpenStack设计与实现(第2版)

[2] Python高手之路
The Hacker’s Guide to Python

其他资源

CSDN Openstack知识库-项目源码
http://lib.csdn.net/openstack/knowledge/917

知识点:OpenStack开发
http://lib.csdn.net/openstack/knowledge/921

知识点:OpenStack Python基本库
http://lib.csdn.net/openstack/knowledge/924

=======
有用的开发社区
http://www.infoq.com/cn/
https://segmentfault.com/
http://www.csdn.net/

原创粉丝点击