跳转到: 导航, 搜索

BasicBuildAutomationSpec

总结

为了充分测试 OpenStack 项目的各种配置和部署选项,需要一个基本的构建自动化系统。

发布说明

一个基本的构建自动化系统已经在 OpenStack-CI 项目中创建。该自动化系统被 OpenStack 项目用来针对实际的生产部署模型运行一系列功能测试。 更多关于 Launchpad 上的 OpenStack 持续集成 项目的信息。

原理

构建自动化系统的目标如下

  • 自动化长时间运行的测试
  • 与 Hudson 构建系统集成
  • 对实际部署进行压力和性能测试
  • 收集性能指标进行回归分析

用户故事

Bob 是 Nova 项目的开发者。他为 Nova 添加了一个很棒的新功能,允许使用分布式数据存储而不是集中式数据存储。 在他提出将他的分支合并到主干之前,Bob 首先想知道他的工作是否会带来任何功能或性能回归。他运行 OpenStack-CI 构建自动化系统来测试他的 Launchpad 分支,并收到一份关于他的分支导致的性能和功能回归或改进的报告。

前提条件

设计

构建系统将有一个名为 osci 的程序,执行各种命令,例如 functional(运行功能测试)或 stress(运行压力/性能测试)。

为了允许最大的灵活性来测试各种生产部署场景,我们将创建 *部署配置* 的概念。 部署配置将是一组参数,用于标识 osci 将部署 OpenStack 并对其运行测试的硬件和主机操作系统。 部署配置将由一个 JSON 文件表示,该文件将在一个由程序选项 --deployment-config-dir 定义的目录中找到。

一个示例部署配置文件可能是


{
  "network": [{"host": "host2", "manager": "nova.network.manager.FlatNetworkManager"}],
  "host": [{"name": "host1", "address": "10.0.0.3"}, {"name": "host2", "address": "10.0.0.4"}],
  "api": [{"host": "host1", "api": "openstack"}],
  "scheduler": [{"host": "host1", "type": "simple"}],
  "messaging": {"broker": "rabbit", "address": "10.0.0.1:5672},
  "datastore": {"engine_url": "mysql://username:password@10.0.0.2/nova"}
}


osci 程序会将它的第一个参数作为有效命令的名称。 第二个参数始终是部署配置名称。 后续参数将取决于命令。

例如,如果我们把上面的 JSON 文件保存到 $ROOTDIR/config/deploy/basic.json,我们可以使用以下命令在该部署中运行功能测试套件


$> osci functional basic


实现

正在进行中...