以下主题概述了 Parasoft 对与 Parasoft 数据资源库和 Parasoft 持续测试平台(CTP)一起生产部署的 Parasoft Virtualize 建议。章节目录:
假设
本文件假设部署包括:
- Virtualize 服务器,最好通过 war 文件部署
- Parasoft 数据资源库服务器
- Parasoft CTP 和一个支持数据库(详情请参阅Selecting a CTP Database)
部署方法
有两种部署方法:动态基础设施(Docker 镜像、或 Azure VM)或物理静态基础设施。
动态基础设施是为支持动态的、可使用的测试环境而设计的。这意味着一个测试环境可以立即从一个金色的模板中提供,使用并弄脏,然后简单地销毁。不需要跨团队或测试阶段共享测试环境或资源;需要的确切环境会在您需要它的时候立即启动,然后在使用完它之后立即销毁。动态基础设施为极端自动化提供了高级的灵活性。此外,当需要扩展时(例如,性能测试),您可以根据需要进行扩展。
对于物理静态基础设施,您拥有永久(专用)服务器。当预期有长期的可伸缩性,并且提前指定硬件供大量使用时,这是非常有用的。这种方法是为高可用性和容错需求而设计的。如果您有这样的需求,并且计划在负载均衡器之后配置一个 Parasoft Virtualize 服务器集群,请参阅在负载均衡器后面设置 Virtualize 服务器集群中的建议。
动态基础设施建议
动态基础设施使用 Docker 镜像或 Microsoft Azure VM。
对于 Docker,我们建议:
- 每个镜像应该包含一个带有 CTP 的T omcat、Virtualize 服务器(war 文件部署)和一个数据资源库服务器。
- 最小尺寸的机器规格是 4 核和16 GB 运行内存,但建议是 8 核,32 GB 运行内存。
- 我们不推荐在同一主机操作系统上使用超过 2-4 个镜像,因为它们会争夺资源(尤其是网络资源)。同一主机操作系统上有超过 4 个镜像,因此很难诊断遇到的任何问题。
对于 Azure,我们推荐:
- 虚拟机大小为 DS2_V2 或更大。
- 用于 Parasoft 服务虚拟化(按需或 BYOL)的 Azure 虚拟机。
对于 AWS,我们推荐:
- 虚拟机大小为 t2.medium 或更大。
物理静态基础设施建议
下图为使用三台 Virtualize 服务器和 CTP 进行部署的推荐架构。请注意,右下角的“服务器 n”图标代表任意数量的附加服务器(根据您的环境而定)。
我们推荐为 Virtualize、数据资源库和 CTP 服务器机器使用以下硬件:
Virtualize
- CPU:8 核
- 运行内存:32 GB 或更大
- 专用的磁盘空间:300 GB 或更大
数据资源库
- CPU:4 核
- 运行内存:32 GB 或更大
- 专用的磁盘空间:300 GB 或更大
CTP
- CPU:4 核
- 运行内存:8 GB
- 专用的磁盘空间:150 GB
注意
- 由于 CTP 的数据库最终将以二进制文件的形式承载多个团队的工件,因此它将变得非常大。
- 在 Virtualize 服务器上,工作空间通常占最大的存储分配。在签入到源码控制之前,所有工件和数据(包括数据快照)都存储在这里。
- 使用 Virtualize 服务器,强大的马力对于实现最佳性能至关重要。
- 使用 Virtualize 服务器和数据资源库服务器机器,增加运行内存的数量应该会提高性能,特别是使用数据资源库内存映射。
- 满足或超过数据资源库服务器的存储需求是至关重要的。您将存储来自多个团队、跨多个环境的相同服务和数据库数据的多个版本。
操作系统
我们推荐使用 Linux 而不是 Windows 来部署 Parasoft,因为:
- 管理任务(例如启动、重启、日志记录和调试)更容易。此外,如果您希望将应用程序作为服务“在幕后”运行,可以使用 nohup/ init.d/cron(如果您有 Linux)。Windows 并没有提供同样简单的解决方案。
- 权限更容易管理。可以创建一个服务帐户,这样只有管理员组才能查看/修改文件,比如启动脚本、server.xml 等。
- 性能更好。对于 Windows,核心操作系统消耗了相当多的性能。对于 Linux,可以将机器简化为准系统,让 Virtualize 在自己的空间内运行。
- 得益于 ssh 和 scp 等工具,自动化工作得到了简化。Parasoft 为 Linux 上的这些任务提供了一个脚本包。
选择一个 CTP 数据库
CTP 支持 Oracle、HyperSQL 和 MySQL,但我们强烈推荐 Oracle 或 HyperSQL;简而言之,我们的建议是:
Oracle >= HyperSQL > MySQL
Oracle 和 HSQLDB 的性能一样好,但是 MySQL 很难进行故障排除。如果不打算集群 CTP 数据库,并且有足够的空间,我们建议使用 HyperSQL。
启动基于云的动态基础设施部署
当通过云服务提供商(如 Microsoft Azure 和 Amazon AWS)在云中部署 VM 时,随着 VM 关闭和重新启动,机器码可能会发生变化。启动 Parasoft 产品时使用以下标志,以确保在云平台上重启 VM 时机器码保持稳定:
-Dparasoft.cloudvm=true