本篇介绍OpenStack设计与实现原理。以Juno版本为基础,覆盖了OpenStack的学习方法到设计与实现等各个方面内容,致力于帮助读者形成OpenStack及其各个主要组件与项目的拓扑。
本篇语言通俗易懂,能够带领读者更为快速地走入OpenStack的世界并做出自己的贡献。适合希望能够参与OpenStack开发的读者,也适合对OpenStack茫然的初学者,以及有一定使用部署经验但是希望了解OpenStack实现原理的广大用户。
全篇总共是11章的内容,由于细节内容太多了,所以小编只把知识点拿出来粗略的介绍了一下,每个小节都有更加细化的内容,希望大家能够好好学习。
第1章主要介绍了OponSack 的成长史以及它的体系结构和社区现状。
1.1 从虚拟化到OpenStack 1
1.1.1 虚拟化 1
1.1.2 云计算 2
1.1.3 OpenStack 4
1.2 OpenStack体系结构 6
1.3 OpenStack项目发展流程 13
1.3.1 新项目 14
1.3.2 孵化项目 14
1.3.3 核心项目及集成项目 15
1.4 OpenStack社区 15
1.4.1 邮件列表 16
1.4.2 IRC和项目例会 16
1.4.3 Summit和Meetup 17
1.4.4 其他社交平台 19
1.5 其他开源项目 19
第2章详尽地介绍了OpenStack开发的基础流程以及如何去分析OpenStack的源码。
2.1 相关开发资源 22
2.1.1 OpenStack社区 22
2.1.2 OpenStack文档 22
2.1.3 OpenStack书籍 23
2.1.4 其他网络资源 24
2.2 OpenStack开发的技术基础 25
2.3 部署开发环境 26
2.3.1 Git 26
2.3.2 Devstack 27
2.4 浏览OpenStack源代码 31
2.4.1 源码目录结构 31
2.4.2 浏览代码的工具 33
2.4.3 分析源码如何入手 35
2.5 OpenStack代码质量保证体系 38
2.5.1 编码规范 40
2.5.2 代码评审Gerrit 43
2.5.3 单元测试Tox 48
2.5.4 持续集成Jenkins 51
2.6 如何贡献 54
2.6.1 文档 54
2.6.2 修补Bug 55
2.6.3 增加Feature 57
2.6.4 Review 60
2.6.5 调试 61
第3章介绍了OpenStack 的底层基石一虚拟化技 术。大多数OpenStack的使用者和开发者并不了解虚拟化的一些细节,有了这一章的介绍,我们能够对OpenStack 有一一个进一步的认识。
3.1 概述 62
3.1.1 虚拟化实现方式 64
3.1.2 虚拟化现状和未来 66
3.2 高层管理工具 74
3.2.1 XenAPI 74
3.2.2 Libvirt 75
3.3 OpenStack相关实现 84
3.3.1 Libvirt驱动 84
3.3.2 XenAPI驱动 86
第4章将OpenStack众多项目中所用到的通用技术加以介绍,有了这一章, 我们理解各个具体项目的设计与实现时,在后续学习中可以少很多的阻碍。
4.1 消息总线 88
4.2 SQLAlchemy和数据库(Shane) 92
4.3 RESTful API和WSGI 96
4.4 Eventlet 103
4.5 OpenStack通用库Oslo 106
4.5.1 Cliff 107
4.5.2 oslo.config 111
4.5.3 oslo.db 113
4.5.4 oslo.i18n 116
4.5.5 oslo.messaging 116
4.5.6 stevedore 123
4.5.7 TaskFlow 127
4.5.8 cookiecutter 133
4.5.9 oslo.policy 134
4.5.10 oslo.rootwrap 135
4.5.11 oslo.test 138
第5章讨论计算组件也就是Nova项目。Nova 为我们实现了OpenStack 这个虚拟机世界的抽象,控制着一个个虚拟机的状态变迁与生老病死,管理着它们的资源分配。
5.1 Nova体系结构 141
5.2 Nova API 148
5.2.1 Nova API执行过程 149
5.2.2 Nova API的实现 155
5.3 Conductor服务 161
5.3.1 Object Model 163
5.4 Scheduler 166
5.4.1 调度器 166
5.4.2 Filtering 167
5.4.3 Weighting 169
5.5 Compute 169
5.6 典型工作流程 176
5.6.1 创建虚拟机 176
5.6.2 冷迁移与Resize 178
5.6.3 热迁移 179
5.6.4 挂起和恢复 181
5.6.5 Rebuild和Evacuate 182
第6章讨论存储相关的三个项目: Swift、 Cinder 以及Glance。它们共同为这个虚拟机世界的主体一虚拟机提供了 安身之本,负责为每个虚拟机本身的镜像以及它所产生的各种数据提供一个家,尽量地去做到“居者有其屋”。
6.1 Swift 183
6.1.1 Swift体系结构 183
6.1.2 Ring 191
6.1.3 Swift API 202
6.1.4 认证 210
6.1.5 对象管理与操作 211
6.1.6 数据一致性 215
6.2 Cinder 218
6.2.1 Cinder体系结构 218
6.2.2 Cinder API 222
6.2.3 cinder-scheduler 224
6.2.4 cinder-volume 226
6.2.5 cinder-backup 230
6.3 Glance 232
6.3.1 Glance体系结构 232
6.3.2 Glance API 234
第7章讨论网络组件也就是Neutron项目。没有网络,任何虚拟机都将只是这个虚拟机世界中的孤岛,不知道自己生存的价值。
7.1 Neutron体系结构 240
7.1.1 Linux虚拟网络 241
7.1.2 Neutron网络抽象 245
7.1.3 Neutron架构 246
7.1.4 Neutron源码结构 247
7.2 Neutron API 249
7.2.1 neutron-server 250
7.3 ML2 Plugin 251
7.4 Port Binding扩展 257
7.5 Open vSwitch Agent 260
7.6 Service Plugin 267
7.6.1 Firewall 267
7.6.2 LoadBalance 269
7.7 Neutron热点话题 270
7.7.1 DVR 271
7.7.2 SDN 271
7.7.3 NFV/SRIOV 272
第8章便针对安全问题进行讨论,包括Keystone 项目以及可信计算池的相关内容。
8.1 OpenStack安全概述 274
8.2 Keystone 275
8.2.1 Keystone体系结构 275
8.2.2 Keystone启动过程 281
8.2.3 用户认证及令牌获取 283
8.2.4 签名证书生成 286
8.3 可信计算池 288
8.3.1 体系结构 289
8.3.2 Intel TXT与TBoot 290
8.3.3 可信认证与OpenAttestation项目 292
8.3.4 TrustedFilter 295
8.3.5 部署 297
8.4 OpenStack安全指南 298
8.4.1 安全域及威胁分类 298
8.4.2 通用的安全指引 302
8.4.3 OpenStack组件的安全 302
第9章的内容有关计量与监控的项目Ceilometer, 计量与监控是公有云运营的一个重要环节。
9.1 Ceilometer体系架构 305
9.1.1 Pipeline 308
9.1.2 Polling Agent与Pollster插件 310
9.1.3 Notification Agent与Notification Listeners插件 311
9.1.4 Collector 与Dispatcher插件 311
9.1.5 Storage/DB 312
9.1.6 API Server 313
9.1.7 Alarm相关 314
9.2 部署与使用 315
9.2.1 选择数据库 315
9.2.2 安装 316
9.2.3 配置 320
9.2.4 使用 323
9.3 Ceilometer插件的开发 323
9.3.1 Pollster 324
9.3.2 Notification Listener 325
9.3.3 DB Backend Driver 326
9.3.4 Compute Agent Inspector 331
9.3.5 Publisher 332
9.3.6 Discover 332
第10章的内容与部署有关,但是这里讨论的并不是如何部署的详细步骤与过程,而只是与部署有关的几个主要项目。
10.1 TripleO体系结构 334
10.1.1 DiskImage-Builder 336
10.1.2 Ironic 337
10.1.3 Heat 339
10.1.4 OS-Configuration 341
10.2 TripleO部署范例 342
10.2.1 制作镜像 342
10.2.2 搭建UnderCloud 345
10.2.3 搭建OverCloud 349
10.3 TripleO新特性 351
10.3.1 iPXE 351
10.3.2 Tuskar 351
10.3.3 Ironic-python-agent 352
10.3.4 Hash-ring 352
10.3.5 Driver-factory 352
第11章介绍了OpenStack 的控制面板。给最终的用户提供一个简洁方便、用户友好的控制界面和开发者,对OpenStack尤为重要。
11.1 Horizon体系结构 353
11.1.1 Horizon与Django 353
11.1.2 Horizon网站布局 355
11.1.3 Horzion源码结构 356
11.2 Horizon部署 358
11.3 页面渲染流程 360
由于文章篇幅限制,那么小编就不在此多做介绍了,需要本【OpenStack设计与实现】文档的小伙伴就可以转发关注小编,++++++ 维信: ①⑧①③③⑤③②⑨⑦ 就可以获取了!
本篇语言通俗易懂,能够带领读者更为快速地走入OpenStack的世界并做出自己的贡献。
本篇适合希望能够参与OpenStack开发的读者,也适合对OpenStack茫然的初学者,以及有一定使用部署经验但是希望了解OpenStack实现原理的广大用户。