分析:虚拟化技术为开发人员带来切实的好处
2010-06-03 比特网
也许正是VMware公司的工作站(Workstation)产品,让虚拟化技术走上了迅速成名的道路。该产品允许各个用户可以运行多个操作系统、操作系统版本或实例(类似多个应用程序窗口),而不是只有每次运行一个操作系统的多重启动环境。但在许多公司,虚拟化技术却是这样出现的:开发人员首先悄悄使用这项技术来进行测试和开发,然后再把虚拟化工具介绍给IT主管。
尽管如今虚拟化在推动许多生产环境,比如服务器和桌面基础架构,并充当一种资源提供工具,虚拟化也被越来越多的软件开发人员所使用。首先,他们使用虚拟化工具,便于提供用于开发和测试的一系列目标环境(比如不同的操作系统、操作系统版本和浏览器),并且便于迅速而轻松地提供/重新提供配置实例。
下面介绍如今的一些开发人员在如何使用虚拟化、为什么使用虚拟化,以及他们对目前的虚拟化技术存着什么样的问题。
提供多种测试环境
高级软件架构师Mark Friedman效力于微软的开发部门,该部门有3000多名员工在开发Visual Studio和。NET框架。Friedman本人主要开发随微软Visual Studio Team System这套开发工具交付的性能工具。Friedman还是计算机测量组织(Computer Measurement Group)的董事,他说:“我所在部门大约三分之二的人从事开发和测试工作――这些开发和测试人员大多数在使用系统虚拟化(通过微软的Hyper-V技术),作为他们主要的生产力工具之一。”
虚拟化技术的一个主要优势在于,它能够分离不稳定的环境,这是任何开发人员都希望在应用程序设计的早期阶段所具备的功能。Friedman表示,随着微软工具的不断开发,测试早期版本可能会使开发人员的整个计算环境不稳定。
他说:“这是无法改变的本质。除了最简单的桌面应用程序外,几乎任何应用程序都会导致系统崩溃。我经常告诉我的开发人员,如果他们没有经常导致系统崩溃,说明他们的尝试还不够积极。我们喜欢虚拟化技术,因为它能节省时间,让我们的开发人员可以花更多时间用在有挑战性的工作上,而不是用在准备测试环境那些单调而极其耗费时间的方面上。”
与其他虚拟化工具一样,微软的Hyper-V可以让用户对系统“拍取快照”,保留“最近一个已知的完好版本”。Friedman说:“我们创建了回滚机制(rollback),那样我们在几分钟之内就能把系统恢复到之前的那个完好状态。另一种方法就是,不得不重新创建系统镜像或者重新构建环境,但这需要好几个小时。而虚拟化技术大大节省了时间。”
Friedman的小组还在质量保证(QA)测试当中全面利用了虚拟化技术和虚拟机镜像。他说:“一旦通过了开发人员的单元测试,我们就会谈论测试矩阵――比如在什么版本的操作系统上运行测试矩阵。然后,我们需要针对32位版本或64位版本进行测试。使用虚拟机镜像是维持一系列测试环境的最快速、最省钱、最灵活的一种方法。在我们的质量保证实验室,我们一直在这么做;我们进行了许多自动化测试,以便把这些镜像作为虚拟机来保存,并且用测试套件对它们进行测试。这种方法很实用;我们节省了许多时间,多得让人难以置信。”
拍取快照、然后在几分钟之内恢复工作镜像的功能特别重要,不必为重建系统等上数小时。Friedman说:“你在查找软件错误时,仅仅为了重现软件错误,常常得花上一两天时间来建立环境,所以你一次又一次地花时间来重建系统――这浪费了时间;从而导致工作效率降低。”
比方说,某个软件错误导致系统崩溃时,开发人员就得回过头去,找出系统崩溃的那个地方。Friedman说:“人们最初设置的断点常常离进程太远,于是系统再次崩溃。因为开发人员在一天内很容易导致系统崩溃好几次,趁开发人员对问题很清楚的时候,能够迅速恢复,然后重新运行调试过程,这大有帮助。如果你在调试一个复杂的软件错误,能保持在这种状态下再好不过了。”
开发人员表示,虚拟化技术非常有助于迭代测试。Adam MoskowITz是生产及销售一系列节能型计算机的SiCortex公司的高级软件工程师,他说:“我们有许多测试系统供我们的开发人员使用――每个测试系统都需要各自的x86控制系统。我们使用虚拟化技术来创建虚拟机,然后虚拟机‘连接到’外部集群板,而不是购置许多PC,哪怕是最便宜的PC。”