最适合构建服务器和测试环境的虚拟机产品是什么?

4
我正在调查哪种虚拟机软件最适合运行构建服务器和测试环境。
我一直在阅读有关测试驱动开发的书籍。第一步是创建所谓的“行走骨架”。因此,作为一个 .net 爱好项目,我想在 VM 上设置 CI 服务器,让它构建代码和安装程序。从那里,软件将自动安装到另一个 VM 上,并对其运行验收测试。也许这应该在一个 VM 上完成,我不确定。
我一直在调查 VMWare player 和 VirtualBox,但我很难在它们之间做出选择,我想知道是否有其他人在设置类似的构建/测试环境方面有经验。
非常感谢任何建议。
尼尔
编辑:我看到这个问题https://stackoverflow.com/questions/66317/which-is-the-best-vm-program-for-a-programmer,这很有用,但它并没有完全回答我寻找的产品使用经验。
2个回答

3
我强烈推荐Vagrant项目。

http://vagrantup.com/

非常有用,可用于管理VirtualBox环境,使用配置管理工具(如ChefPuppet)控制环境中安装的内容。
该技术在管理基于Linux的虚拟机方面更加成熟。您将被迫创建自己的Windows basebox。不幸的是,我不认为有适用于Windows的免费VirtualBox映像,这阻碍了采用 :-(

那么,一旦在第一个虚拟机上构建了代码和安装程序,我可以使用Vagrant启动另一个虚拟机,然后远程安装MSI并从第一个虚拟机开始集成/验收测试? - Neil
是的。Vagrant 是一个用于管理开发和测试环境的框架。 - Mark O'Connor

2
这是一个主观问题,更适合在ServerFault上讨论,但我还是会回答。我喜欢Hyper-V或ESX,但我相信其他的也很好。不确定是否有一个“最佳”的选择,并且对于声称有最佳选择的人,我会持怀疑态度。
您需要一个本地hypervisor(Hyper-V、ESX、XenServer而不是Virtual PC/Server、KVM、VirtualBox或GSX),支持快照,并具有适合您控制难度的自动化层。如果您想要与Microsoft Team Foundation Server的测试实验室自动化集成,您还必须使用SCVMM(System Center Virtual Machine Manager),这意味着使用Hyper-V。
在我上一份工作中,我们有50多个基于ESX的构建服务器,有一个基础快照。我们有构建自动化调用VSphere API来将虚拟机重置为基础快照并开机。这确保每次构建都从完全相同的干净状态的机器运行。我们在那个基础设施上每年运行了超过100,000个构建。
我也使用过 HyperV 做类似的事情。Hyper-V 有基于 WMI 的管理 API,使用 RPC,与 VSphere 相比处理起来有些丑陋,但它可以工作。VSphere API 基于 Web 服务,并具有适用于 .NET 的客户端对象模型,使用起来更加容易。

对于测试,您希望能够以编程方式设置虚拟机处于某种状态,将安装程序部署到其中,然后运行集成测试套件。


感谢您详细的回复,我之前甚至没有听说过Hyper-V,但它看起来非常符合我的需求。我本来想使用TeamCity作为CI服务器,因为这是我在工作中使用的,但我想试试Team Foundation也无妨。 - Neil
我在家里为我的咨询工作使用所有这些。可以在http://www.iswix.com/dnn/找到我的环境描述。基本上,一个无头服务器和一个双显示器笔记本电脑就足以托管整个开发环境。 - Christopher Painter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接