具体描述
目前,以云计算等为代表的新兴技术得到了大量的运用与普及。同时,凭借着众多极其独特的优势,OpenStack业已成为开源云计算技术领域的既定事实标准。
《OpenStack最佳实践——测试与CI/CD》是一本介绍OpenStack测试和CI/CD实践的书,基于此,《OpenStack最佳实践——测试与CI/CD》内容以实践操作为主,从理论到实践,循序渐进,依次讲解了DevOps和CI/CD的理论概念;软件测试基础和有效设计OpenStack测试用例的方法;如何参与OpenStack社区贡献及其沟通交流,以及OpenStack社区CI/CD系统和企业互操作性测试认证;OpenStack不同维度测试的实现和方法;基于OpenStack构建和运行服务于企业研发测试的CI/CD应用。
《OpenStack最佳实践——测试与CI/CD》适合于云计算相关专业的高校师生和具有一定软件测试或云计算技术基础的读者使用,对于在云计算企业中从事技术工作的管理人员、QA测试人员和研发人员,《OpenStack最佳实践——测试与CI/CD》也非常适用。
作者简介
目录信息
1.1 DevOps的起源和发展 1
1.1.1 什么是DevOps 1
1.1.2 DevOps的起源 2
1.1.3 DevOps的发展 3
1.2 DevOps在研发测试中的应用 3
1.2.1 软件活动中的常见问题 4
1.2.2 DevOps的应用 4
本章小结 7
第2章 CI/CD和软件测试基础 8
2.1 CI/CD介绍 8
2.1.1 什么是CI/CD 8
2.1.2 CI/CD的未来发展 13
2.2 CI/CD在软件研发测试中的应用 14
2.3 软件测试的生命周期 16
2.3.1 需求分析 17
2.3.2 制订测试计划 20
2.3.3 编写测试用例 22
2.3.4 测试评审 23
2.3.5 测试执行 23
2.3.6 测试分析和报告 24
2.4 软件测试的分类 27
2.4.1 根据分层概念划分 27
2.4.2 根据测试对代码可见性划分 28
2.4.3 根据测试时期划分 29
2.4.4 根据面向服务划分 29
2.5 ACC测试和PDCA螺旋式测试方法 31
2.5.1 ACC测试方法 31
2.5.2 PDCA螺旋式测试方法 33
2.6 如何让用户帮助做测试 34
2.7 如何设计OpenStack测试用例 35
2.7.1 测试用例设计方法 35
2.7.2 软件测试技巧 51
2.8 熟悉OpenStack在测试中的作用 52
本章小结 54
第3章 认识和参与OpenStack社区 55
3.1 安装OpenStack有哪些方法 55
3.2 如何体验最新的OpenStack版本 58
3.3 如何贡献OpenStack社区 61
3.3.1 注册账号和提交Bug 61
3.3.2 配置账号和提交代码 65
3.4 如何参与OpenStack社区交流 69
3.4.1 通过邮件方式交流 69
3.4.2 通过IRC方式交流 70
本章小结 72
第4章 OpenStack社区CI/CD和互操作性认证 73
4.1 Python测试基础 73
4.1.1 Python异常处理 73
4.1.2 Python断言和断点 76
4.1.3 Python单元测试 77
4.1.4 Python代码调试 83
4.2 深入理解OpenStack社区CI/CD 86
4.2.1 持续集成系统(Jenkins) 89
4.2.2 集群任务分发系统(Gearman) 93
4.2.3 任务组织系统(Zuul) 94
4.2.4 代码评审系统(Gerrit) 99
4.2.5 OpenStack Solum项目的使用 101
4.2.6 Software Factory的使用 108
4.3 OpenStack社区互操作性测试认证 110
4.3.1 社区互操作性测试认证内容 110
4.3.2 环境准备 111
4.3.3 执行测试认证 112
4.3.4 上传和查看测试结果 119
本章小结 121
第5章 如何实现OpenStack不同维度测试 122
5.1 OpenStack不同维度测试 122
5.2 OpenStack代码平面测试 124
5.3 OpenStack网络平面测试 128
5.3.1 Shaker测试环境部署 129
5.3.2 Shaker测试实践 132
5.4 OpenStack管理平面测试 134
5.5 OpenStack控制平面测试 135
5.5.1 基于Docker的Tempest集成测试 135
5.5.2 基于Docker的Rally性能测试 140
5.6 OpenStack Ceph存储测试 147
5.6.1 测试环境介绍 147
5.6.2 Ceph测试介绍 148
5.6.3 服务器性能测试 149
5.6.4 Ceph集群性能测试 154
5.6.5 块存储性能测试 157
5.6.6 虚拟机性能测试 161
5.7 物理基础设施层测试 166
5.7.1 网卡测试 167
5.7.2 内存测试 171
5.7.3 CPU测试 173
5.7.4 磁盘测试 174
5.8 OpenStack测试内容 176
本章小结 180
第6章 OpenStack Dashboard前端自动化测试 182
6.1 Web测试工具和Selenium的使用 182
6.1.1 Web自动化测试工具 182
6.1.2 Selenium的使用 183
6.2 Web自动化测试框架 195
6.2.1 模块驱动测试 196
6.2.2 数据驱动测试 197
6.2.3 页面对象驱动测试 199
6.2.4 使用Dashboard默认测试脚本 200
6.2.5 开发Dashboard自动化测试框架 204
6.2.6 基于数据驱动和模块驱动的页面对象测试 212
6.3 Web前端性能测试 216
6.3.1 前端性能测试的意义 216
6.3.2 提高前端性能的方法 217
6.3.3 前端性能测试工具 218
6.3.4 使用JMeter测试OpenStack前端性能 219
6.4 实现测试统一管理 225
本章小结 229
第7章 基于OpenStack+Docker设计与实现CI/CD 230
7.1 OpenStack和Docker集成现状 231
7.2 基于OpenStack+Docker设计CI/CD 234
7.2.1 基于Docker的软件持续交付 236
7.2.2 基于OpenStack+Docker的应用部署 238
7.2.3 基于OpenStack+Docker的CI/CD流程设计 239
7.3 构建镜像仓库管理系统(Harbor) 244
7.3.1 Docker镜像的管理 245
7.3.2 安装Harbor 247
7.3.3 使用Harbor 250
7.4 构建持续集成系统(Jenkins) 251
7.4.1 Jenkins相关插件支持 252
7.4.2 部署和使用Jenkins 253
7.4.3 Jenkins备份和还原 258
7.5 构建代码仓库系统(GitLab) 260
7.5.1 部署和使用GitLab 260
7.5.2 GitLab备份和还原 264
7.6 构建代码评审系统(Gerrit) 265
7.6.1 Gerrit安装和配置 266
7.6.2 Gerrit备份和还原 273
本章小结 273
第8章 基于CI/CD的OpenStack研发测试实践 274
8.1 GitLab+Gerrit+Jenkins集成 274
8.1.1 Gerrit+GitLab集成 274
8.1.2 Gerrit+Jenkins集成 278
8.2 在Jenkins上创建项目任务 279
8.2.1 在Jenkins上创建Gerrit项目测试任务 280
8.2.2 在Jenkins上创建Gerrit项目构建任务 281
8.2.3 在Jenkins上创建GitLab项目构建任务 285
8.3 基于CI/CD的OpenStack研发实践 288
8.3.1 提交开发代码 290
8.3.2 查看集成结果 290
8.4 基于CI/CD的OpenStack测试实践 293
8.4.1 获取Tempest测试用例 294
8.4.2 Tempest原理和测试分析 296
8.4.3 Tempest测试自动化输出报告 300
本章小结 302
· · · · · · (收起)
读后感
用户评价
这本书,老实说,刚拿到手的时候,我对它抱有相当高的期待。毕竟,在云计算这个日新月异的战场上,OpenStack这个名字本身就代表着庞大的生态和无数的技术挑战。我本来指望它能像一本详尽的战术手册,把我从那些让人抓耳挠腮的部署难题中彻底解救出来,最好是能提供那种“照着做,保证成功”的黄金流程。然而,阅读体验却像是在走一个曲折的迷宫。它似乎更侧重于理论框架的宏大叙事,对于那些深入到具体生产环境的“疑难杂症”,比如复杂的网络策略配置冲突、或者特定存储后端在Scale-out时的性能瓶颈,着墨不多。书中对Nova、Neutron和Cinder等核心组件的架构解析倒是深入骨髓,让人对OpenStack的内部运作机制有了更清晰的认识,但这种清晰感更多是停留在概念层面。比如,当涉及到高可用性的最佳实践时,它提供的方案往往是基于理想化的网络拓扑,对于现实世界中网络延迟、硬件故障的随机性考量,处理得略显单薄。我花了大量时间试图将书中的某些高级部署建议付诸实践,结果发现,由于版本迭代的迅速,书中的某些API调用示例已经过时,不得不花费额外的时间去社区论坛搜索最新的适配方案。总而言之,它更像是一份优秀的学术论文集,而非一本真正能让你在深夜加班时,快速找到救命稻草的实战指南,少了那么一点“沾地气”的烟火气。
这本书的排版和图示设计,坦白讲,是拖慢阅读进度的重要因素。在描述复杂的组件交互流程时,作者依赖于大量的文字堆砌和冗长的流程说明,而关键的网络流向图或数据结构图却少得可怜,即便有图,也往往是那种标准的、缺乏注解的UML图。阅读体验的流畅性,在技术书籍中至关重要。比如,当讨论到Neutron中Overlay网络(如VXLAN)与Underlay网络如何协同工作时,如果能有一张清晰的分层示意图,直观展示数据包封装和解封装的过程,读者能瞬间理解,而不是需要反复在文本中寻找“隧道端点”、“VTEP”这些关键词的定义。这种对视觉辅助工具的吝啬,使得理解难度成倍增加。我感觉自己像是在阅读一份五十年前的命令行操作手册,所有信息都依赖于纯文本的记忆和揣摩。对于像OpenStack这样高度依赖网络拓扑和抽象概念的系统,这种对图形化支持的缺失,极大地削弱了其作为“最佳实践”指导书的有效性,迫使读者必须自行在纸上或白板上重新绘制这些关键结构,才能真正理清思路。
这本书的文字风格,初看之下是那种严谨到近乎古板的学术腔调。每一个技术名词的引入都伴随着冗长的背景铺垫,仿佛作者生怕读者对任何一个底层概念产生丝毫的误解。这种处理方式在某些方面确实保证了内容的准确性和深度,但对于我这样习惯于快速吸收关键信息的读者来说,阅读过程变得异常缓慢和费力。我更倾向于那种“开门见山”的风格,直接抛出问题,然后给出三种优劣各异的解决方案,让读者自行判断。这本书的结构安排,也似乎在有意地避开那些被认为是“社区边缘”但实际上在某些大型私有云中广泛存在的技术选型。例如,关于Ceph与OpenStack深度集成的高级调优部分,内容相对保守,没有太多激进的性能优化技巧分享,更多的是对官方推荐配置的复述。我期待的是那种“走过坑”的前辈写下的血泪史,告诉我如何避免在LVM快照与卷迁移中踩到性能黑洞。但这本书给我的感觉是,它在描述一个“完美运行”的系统蓝图,而不是一个“带病运行”并需要细心呵护的生产集群的维护指南。读完后,我对于理论的理解加深了,但真正上手操作时的信心指数并没有得到实质性的提升,这可能是最让我感到遗憾的地方。
从内容广度的角度来衡量,这本书展现出了一种令人费解的侧重性。它花费了大量的篇幅来详细阐述身份认证(Keystone)和镜像服务(Glance)的定制化安全策略,这些内容自然重要,但在实践中,一旦选定了主流的企业级IAM系统对接,Keystone的复杂配置往往会简化。相比之下,像Heat(编排服务)在处理复杂多层级应用部署的自动化脚本优化、或者在使用第三方监控工具(如Prometheus/Grafana)与OpenStack Metering深度结合时的数据采集与告警策略,讨论得就显得非常肤浅,几乎是一笔带过。这就像一个烹饪书籍,花三章教你如何挑选新鲜的蔬菜,却只用一小节提及了如何处理主菜的复杂调味。对于运维团队而言,时间宝贵,我们更需要的是那些能直接提高日常工作效率的“黑魔法”或成熟的CI/CD集成方案。这本书似乎更偏向于系统架构师的宏观视角,而不是一线工程师的日常操作手册。当我试图查找如何在故障发生后,快速回滚某个特定区域的计算资源配置时,书中给出的指引是重新审视整个部署的幂等性,这对于一个正在经历服务中断的场景来说,无异于“马后炮”。
最后,这本书给我的感觉是,它在“实践”和“最佳”这两个词上有些摇摆不定。它收集了大量看起来非常“正确”的配置建议,它们无疑是理论上最稳健的,但却忽略了企业实施过程中的现实约束——预算、遗留系统兼容性以及团队的技术栈深度。一本真正的“最佳实践”书籍,应该包含一个“权衡矩阵”。例如,在选择不同类型的负载均衡器时,应该明确指出,如果你的流量模式是UDP密集型,那么软件方案的性能损耗对比硬件方案的初始投入,哪个更“佳”?这本书倾向于推荐那些需要高投入才能完美部署的方案,但没有提供足够的降级路径或简化替代方案。读者读完后,可能会产生一种“除非我拥有一个亿和一支顶尖工程师团队,否则我无法实践书中的任何东西”的挫败感。它缺少了那种“如果资源有限,可以先做到哪一步”的务实指导,让那些处于中小型企业或资源受限环境下的读者,很难将书中的知识有效地转化为可落地的具体行动。它更像是在为“完美客户”撰写的教科书,而不是为“正在摸索前行”的我们准备的工具箱。
以为是吧openstack应用于研发管理场景实现ci/cd,内容是openstack作为软件项目的ci/cd,测试保证openstack质量,容器化实现openstack快速部署,测试质量保障可以理解,生产环境的openstack持续集成/构建有多大的需求?
涉及很多东西 感觉是作者自身工作实际总结
涉及很多东西 感觉是作者自身工作实际总结
干货很少,扫了一遍,没啥值得参考的东西
罗列一堆开源软件名字和功能。。openshift还写成openshit。。。。