BasicBuildAutomationSpec
- Launchpad 条目: Openstack-CI Basic Build Automation
- 创建: 2010-11-18
- 贡献者: JayPipes, JosephHeck
总结
为了充分测试 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
实现
正在进行中...