如何使用Rally+Docker测试OpenStack

本文介绍了如何使用Docker容器化Rally,以解决软件部署环境变化带来的测试挑战。Rally是一个用于OpenStack性能测试的工具,通过Docker可以实现系统隔离、平台复用和分布式测试。文章详细讲解了Docker的安装和配置,以及Rally的安装、配置和测试用例执行,最后讨论了如何保存和重用Rally Docker镜像。
摘要由CSDN通过智能技术生成

一.为什么要用Rally Docker

1.为什么要通过Docker使用Rally

众所周知,软件产品部署环境的变化(譬如,从A环境到B环境等),会导致测试环境响应的变化。那么,有没有一种办法,可以更好的解决这种环境迁移导致的诸多问题。即让测试环境更加自主、可控和轻量。

Docker时代的来临,无疑,为我们提供了一把新的钥匙。

通常,为了构建这样的一个测试平台,即便是熟练者往往也需要花费30分钟以上的时间。通过使用Docker容器化,将Rally独立于宿主机OS,而单独运行在容器中,可以做到系统隔离,平台复用和分布式测试等高效用途。

社区对OpenStack的集成测试工具采用Tempest,性能测试采用Rally。众所周知,性能测试一般是在一个软件产品在某个迭代内开发完毕,上线部署之前执行。

作为OpenStack测试领域内的急先锋,Rally当然也不例外。典型的应用场景:一是对内部基于OpenStack开发的产品做性能测试;二是做服务实施时,给客户做的POC以及上线之前的性能测试等。需要尤为注意的是,由于性能测试依赖于硬件物理资源配置,所以应当根据实际情况出发,甄别出不同环境下的性能测试差异。

2.什么是Rally

Rally 常用于模拟高并发场景的压力测试。比如OpenStack API在并发下的响应时间和请求成功率,从而测试出OpenStack的规模和性能。Rally特性如下:

  • Rally 会自动部署一个OpenStack的环境, 并运行tempest来验证环境;
  • Rally会模拟生成用户负载,以提供性能测试问题;
  • Rally通过Ceilomter来收集 Hypervisor 和VM的数据,并放在Rally的数据库中;
  • Rally 最终会生成可读性极佳的性能测试报告;

图片描述

  • Deploy engine:并不是一个OpenStack的部署器(deployer),而是一个类似于插件的结构(pluggable mechanism),可以很好的与流行的部署器如DevStack、Fuel等结合使用;
  • Verification:使用Tempset来验证已部署的OpenStack云环境的功能性;
  • Benchmark engine:允许在云环境中制造并发负载,进行压力测试;

目前,有如下一些公司但不限于在社区贡献Rally:

图片描述

使用Rally的三个高水平案例

图片描述

从上图可以知道,Rally典型的作用有:

  • 自动化测试和分析,了解新并入的代码对OpenStack的影响;
  • 使用Rally profiler来检测性能问题;
  • 测试不同部署方式对于操作系统性能的影响;
  • 创建针对不同规模的负载压力;
  • 检测不同负载下,基本云主机操作的性能情况;
  • 测试涉及到OpenStack的几乎所有使用场景;
  • 最核心的是,Rally可以是QA测试、DevOps、CI/CD中不可或缺的重要组成部分;

二.安装和使用Docker

备注:
这里,我的操作环境是Rally docker和由DevStack安装的OpenStack环境均构建在同一个CentOS 7虚拟机中。

1)Docker软件包已经包含在默认的CentOS-Extras软件源里,安装命令如下:

# yum -y install epel-release
# yum install docker -y

2)当Docker安装完成之后,你需要启动docker进程:

# systemctl restart docker

3)如果我们希望Docker默认开机启动,如下操作:

# systemctl enable docker

4)配置Docker加速器。这里我们使用daocloud提供的docker镜像加速服务:

#sed -i 's|other_args="|other_args="--registry-mirror=http://768e1313.m.daocloud.io |g' /etc/sysconfig/docker

#sed -i "s|OPTIONS='|OPTIONS='--registry-mirror=http://768e1313.m.daocloud.io |g" /etc/sysconfig/docker

#sed -i 'N;s|\[Service\]\n|\[Service\]\nEnvironmentFile=-/etc/sysconfig/docker\n|g' /usr/lib/systemd/system/docker.service

# sed -i 's|fd://|fd:// $other_args |g' /usr/lib/systemd/system/docker.service

5)重启服务:

# systemctl daemon-reload
# systemctl restart docker

6)现在,我们来验证 Docker 是否正常工作以及为下一步安装Rally做足准备。为此,我们需要下载centos 7镜像。

# docker pull centos:7

7)下一步,我们运行下边的命令来查看镜像,确认镜像是否存在:

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
docker.io/centos    7                   eeb3a076a0be        Less than a second ago   196.7 MB
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值