具体描述
《OpenStack设计与实现(第2版)》是一本介绍 OpenStack 设计与实现原理的书。《OpenStack设计与实现(第2版)》内容以 Newton 版本为基础,覆盖了OpenStack 的学习方法到设计与实现等各个方面内容,致力于帮助读者形成 OpenStack 及其各个主要组件与项目的拓扑。
《OpenStack设计与实现(第2版)》语言通俗易懂,能够带领读者更为快速走入 OpenStack 的世界并作出自己的贡献。
《OpenStack设计与实现(第2版)》适合希望能够参与 OpenStack 开发的读者,也适合对 OpenStack 茫然的初学者,以及有一定使用部署经验但是希望了解 OpenStack 实现原理的广大用户。
作者简介
英特尔开源技术中心(Intel Open Source Technology Center -- OTC)是英特尔公司内专职进行开源软件开发的团队,负责在系统软件领域进行与英特尔®平台相关的技术开发和创新,并在 Linux 操作系统内核,Android/Chrome 操作系统,云计算和虚拟化技术,HTML5 WebRuntime,图形驱动及多媒体软件以及系统软件的优化等方面积累了业界领先的技术能力。同时依托强大的技术团队,OTC 积极参与开源社区对开源软件的推广普及活动,并对国内及国际上主流开源操作系统厂商提供有力地支持。
目录信息
1.1 从虚拟化到 OpenStack 1
1.1.1 虚拟化 1
1.1.2 云计算 2
1.1.3 OpenStack 4
1.2 OpenStack 基金会以及管理模式 7
1.2.1 董事会 8
1.2.2 技术委员会 9
1.2.3 用户委员会 10
1.3 OpenStack 体系结构 11
1.4 OpenStack 项目发展流程 18
1.4.1 新项目 18
1.4.2 孵化项目、集成项目和核心项目 19
1.4.3 大帐篷(Big Tent) 20
1.5 OpenStack 社区 21
1.5.1 邮件列表 21
1.5.2 IRC 和项目例会 22
1.5.3 Summit 和 Meetup 23
1.5.4 其他社交平台. 25
1.6 其他开源项目 25
1.7 OpenStack 的技术发展趋势 30
第 2 章 OpenStack 开发基础.33
2.1 相关开发资源 33
2.1.1 OpenStack 社区 33
2.1.2 OpenStack 文档 33
2.1.3 OpenStack 书籍 34
2.1.4 其他网络资源. 35
2.2 OpenStack 开发的技术基础 35
2.3 部署开发环境 36
2.3.1 Git 37
2.3.2 Devstack. 38
2.4 浏览 OpenStack 源代码 42
2.4.1 浏览代码的工具 43
2.4.2 分析源码如何入手 44
2.5 OpenStack 代码质量保证体系 48
2.5.1 编码规范 50
2.5.2 代码评审 Gerrit 53
2.5.3 单元测试 Tox 58
2.5.4 持续集成 Jenkins 61
2.6 如何贡献 66
2.6.1 文档 67
2.6.2 修补 bug 67
2.6.3 增加 feature 69
2.6.4 review 72
2.6.5 调试 73
第 3 章 虚拟化 75
3.1 概述 75
3.1.1 虚拟化实现方式 77
3.1.2 虚拟化现状和未来 79
3.2 高层管理工具 87
3.2.1 XenAPI 88
3.2.2 Libvirt 89
3.3 OpenStack 相关实现 98
3.3.1 Libvirt 驱动 98
3.3.2 XenAPI 驱动 100
第 4 章 OpenStack 通用技术102
4.1 消息总线 102
4.2 SQLAlchemy 和数据库 107
4.3 RESTful API 和 WSGI 111
4.4 Eventlet 120
4.5.1 Cliff 122
4.5.2 oslo.config 125
4.5.3 oslo.db 128
4.5.4 oslo.i18n 131
4.5.5 oslo.messaging 132
4.5.6 stevedore 139
4.5.7 TaskFlow. 142
4.5.8 cookiecutter 149
4.5.9 oslo.policy 150
4.5.10 oslo.rootwrap 151
4.5.11 oslo.test 154
4.5.12 oslo.versionedobjects 156
第 5 章 计算.160
5.1 Nova 体系结构 161
5.2 Nova API 166
5.2.1 Nova v2.1 API 167
5.2.2 Nova API 实现. 168
5.3 Rolling Upgrade. 178
5.3.1 Rolling Upgrade 实现 179
5.4 Scheduler 186
5.4.1 调度器 187
5.4.2 Resource Tracker 191
5.4.3 调度流程 193
5.5 典型工作流程 195
5.5.1 创建虚拟机 195
5.5.2 冷迁移与 Resize 196
5.5.3 热迁移 197
5.5.4 挂起和恢复 200
5.5.5 Rebuild 和 Evacuate 200
第 6 章 存储.201
6.1 Swift. 201
6.1.1 Swift 体系结构 201
6.1.2 Ring 209
6.1.3 Swift API. 218
6.1.4 认证 226
6.1.5 对象管理与操作. 228
6.1.6 数据一致性 231
6.2 Cinder 234
6.2.1 Cinder 体系结构. 234
6.2.2 Cinder API 239
6.2.3 cinder-scheduler 241
6.2.4 cinder-volume 243
6.2.5 cinder-backup 248
6.3 Glance 249
6.3.1 Glance 体系结构 249
6.3.2 Glance API 252
6.4 Ceph 257
6.4.1 Ceph 体系结构 259
6.4.2 RADOS 261
6.4.3 Ceph 块设备 281
6.4.4 Ceph FS 285
6.4.5 Ceph 与 OpenStack 286
第 7 章 网络.289
7.1 Neutron 体系结构 289
7.1.1 Linux 虚拟网络 290
7.1.2 Neutron 网络抽象 294
7.1.3 Neutron 架构 295
7.1.4 Neutron 源码结构 297
7.2 Neutron API 299
7.2.1 neutron-server 300
7.3 ML2 Plugin 301
7.4 Port Binding 扩展 308
7.5 Open vSwitch Agent 317
7.6 Service Plugin 324
7.6.1 Firewall 325
7.6.2 LoadBalance 326
7.7 Neutron 热点话题 329
7.7.1 DVR 329
7.7.2 SDN 329
7.7.3 NFV/SRIOV 330
7.7.4 OVS 和 DPDK. 333
第 8 章 安全.335
8.1 OpenStack 安全概述 335
8.2 Keystone 336
8.2.1 Keystone 体系结构 336
8.2.2 Keystone 启动过程 343
8.2.3 用户认证及令牌获取 346
8.2.4 签名证书生成 349
8.2.5 Keystone 高阶应用 352
8.3 可信计算池 355
8.3.1 体系结构 355
8.3.2 Intel TXT 与 TBoot 356
8.3.3 可信认证与 OpenAttestation 项目 358
8.3.4 TrustedFilter 362
8.3.5 部署 364
第 9 章 计量与监控 366
9.1 Ceilometer. 367
9.1.1 体系结构 367
9.1.2 Pipeline 370
9.1.3 Polling Agent 与 Pollster 插件 372
9.1.4 Notification Agent 与 Notification Listeners 插件 373
9.1.5 Collector 与 Dispatcher 插件 373
9.1.6 Storage/DB. 374
9.1.7 API Server 374
9.1.8 部署与使用 375
9.1.9 插件的开发 386
9.2 Aodh 396
9.2.1 体系结构 396
9.2.2 部署与使用 398
9.2.3 插件的开发 402
9.3 Gnocchi 408
9.3.1 体系结构 409
9.3.2 部署与使用 412
9.4 Panko 414
第 10 章 物理机管理 415
10.1 Ironic 体系结构 415
10.1.1 Ironic Driver 419
10.1.2 Ironic API. 423
10.1.3 Ironic Conductor 424
10.1.4 Ironic-python-agent. 425
10.1.5 ironic-inspector 426
10.2 Ironic 中的网络管理 426
10.2.1 物理交换机管理 426
10.2.2 多租户网络的支持. 427
10.3 Ironic 节点的注册和启动 428
第 11 章 控制面板.432
11.1 Horizon 体系结构 432
11.1.1 Horizon 与 Django 432
11.1.2 Horizon 网站布局 435
11.1.3 Horzion 源码结构 437
11.2 Horizon 部署 439
11.3 页面渲染流程 441
第 12 章 容器455
12.1 容器技术 455
12.1.1 容器的原理 455
12.1.2 常见的容器集群管理工具. 456
12.2 容器与 OpenStack 460
12.2.1 nova-docker/heat-docker 461
12.2.2 Magnum 461
12.2.3 Murano 469
12.2.4 Kolla 472
12.2.5 Solum 472
12.2.6 Kuryr 474
12.2.7 容器技术与 OpenStack 的展望 476
第 13 章 部署477
13.1 配置管理工具 478
13.2 OpenStack 部署项目 480
13.2.1 Bifrost 481
13.2.2 Kolla 483
13.2.3 TripleO 490
13.2.4 Fuel 493
第 14 章 新兴项目 495
14.1 Searchlight 495
14.1.1 Searchlight 体系结构 495
14.1.2 plugin 的开发 497
14.2 Watcher 502
14.2.1 Watcher 使用 503
14.2.2 Watcher 体系结构 505
14.2.3 strategy 的开发 507
· · · · · · (收起)
读后感
用户评价
这本书的实战指导价值是毋庸置疑的,它远超出了“理论指导”的范畴,更像是“一线运维工程师的修炼手册”。它没有沉溺于OpenStack的最新特性炒作,而是聚焦于那些经过时间检验、在生产环境中真正起到中流砥柱作用的稳定特性和最佳实践。书中关于集群部署、性能调优的章节,简直就是一份精心准备的“排雷指南”。作者坦诚地分享了在超大规模集群中可能遇到的磁盘I/O瓶颈、网络延迟敏感性问题,并提供了具体的解决方案,比如如何调整内核参数、如何优化数据库连接池,乃至如何进行有策略的负载均衡迁移。这些内容并非在官方Wiki中能够轻易找到的零散片段,而是经过多年生产磨砺提炼出的“内功心法”。对于那些肩负着维护或规划企业级私有云重任的读者而言,这本书提供的不仅仅是技术手册,更是一份宝贵的“防坑锦囊”,能有效避免走很多不必要的弯路,确保云平台的长期、稳定运行。
这本书的叙事节奏把握得非常到位,行文流畅自然,仿佛在听一位经验丰富的技术布道师娓娓道来。它没有采用那种干巴巴、堆砌术语的教科书式写法,而是巧妙地将理论知识融入到具体的场景和设计哲学之中。比如,在讨论Neutron的网络虚拟化时,作者并没有直接抛出VXLAN或GRE的定义,而是先铺垫了传统虚拟网络面临的扩展性挑战,然后引出SDN的必要性,最后才落脚到OpenStack是如何用具体的技术栈解决这些问题的。这种“问题—解决方案—实现”的叙事路径,极大地增强了阅读的代入感和理解的连贯性。更难得的是,作者在处理不同组件间的关系时,展现了卓越的全局观。例如,当讲到Cinder和Nova的交互时,它会自然地链接到Swift在对象存储层面的备份和数据冗余策略,使得读者在学习单个模块的同时,也能构建出整个云平台的数据流和控制流拓扑图。这种结构化的呈现方式,使得知识点之间不是孤立的,而是形成了一个有机的知识网络,这对于理解一个庞大系统的整体运作至关重要。
从排版和视觉体验上来说,这本书的质量令人印象深刻,这在技术书籍中并不常见。许多技术书籍为了压缩篇幅或降低成本,往往在图文排版上敷衍了事,导致图表模糊不清或者与文字描述脱节。然而,这本书在图表的运用上显得非常考究和专业。那些复杂的流程图、架构分解图,不仅线条清晰、逻辑分明,而且色彩运用得当,有效地区分了数据平面、控制平面和管理平面的边界。特别是在讲解API调用链和消息队列(如RabbitMQ或ZeroMQ)的通信模式时,那些定制化的时序图,极大地降低了理解异步通信复杂性的门槛。此外,书中对代码示例的选取和格式化也体现了极高的审美品味,关键参数和配置项被恰当地用粗体或不同颜色标记,使得在快速浏览和深入研读时都能做到重点突出。这种对细节的极致关注,反映了作者和出版社对高质量内容传递的郑重承诺,让阅读过程成为一种享受,而不是负担。
这本书在深度和广度上都展现了作者深厚的专业功底。它不仅仅停留在OpenStack各个组件的表面介绍,而是深入到架构设计的底层逻辑和关键实现细节中。阅读过程中,我能明显感觉到作者在梳理复杂的概念时所下的苦功。比如,对于Keystone的认证流程、Nova的调度算法、Swift的最终一致性模型等,书中的阐述清晰而富有层次感,即便是初次接触这些复杂机制的读者,也能通过详细的图示和代码片段的解析,逐步建立起对整个系统的宏观认知和微观理解。尤其值得称赞的是,作者并未回避技术细节中的“灰色地带”,而是直面了许多官方文档中语焉不详或仅作简略提及的性能瓶颈、高可用性策略以及故障排查的实战经验。这种“把脉问诊”式的讲解,让这本书的实用价值远远超过了一般的理论教材。它更像是一位资深架构师坐在你身旁,手把手地带你拆解一个真实世界运行中的云平台,告诉你哪里容易出错,哪里需要特别留心。对于希望从“会用”跃升到“精通”的工程师来说,这种深度剖析无疑是极其宝贵的财富,它提供的不仅仅是知识,更是一种解决问题的思维框架。
如果非要从一个挑剔的读者的角度来审视,这本书最让我感到惊喜的是它对于“生态系统”的宏大叙事。OpenStack的强大在于其模块化的设计和蓬勃发展的生态,而本书恰如其分地展现了这一点。它没有将OpenStack视为一个封闭的、自洽的系统,而是将其置于更广阔的云计算图景中进行考察。例如,书中不仅详细介绍了如何集成Ceph作为后端存储,还探讨了如何利用Heat进行基础设施即代码(IaC)的自动化部署,并对比了它与Terraform等外部工具的异同及互补关系。这种将OpenStack与其他主流开源项目进行关联和对比的写作手法,极大地拓宽了读者的视野,帮助我们理解在实际项目中,我们并不仅仅是部署OpenStack,而是需要构建一个集成化的技术栈。这种宏观视野的培养,对于培养具备前瞻性眼光的云架构师而言,是比掌握单一技术的细节更为重要的能力。这本书成功地弥补了许多专注于单一组件的资料所缺乏的系统集成思维。
专门注册了豆瓣账号来给5分,有人说这本书偏向开发,但如果要真正理解Openstack,只看各种文档和书效率很低,真还不如直接分析源码
一目好几页的看完了,之前看不进去,现在几个小时就看完了,这样的意义何在呢?
错别字有点多
不是太好,谈了一堆技术的概念性介绍,加一堆的配置代码,与书名有些不符啊
不是太好,谈了一堆技术的概念性介绍,加一堆的配置代码,与书名有些不符啊