正睿新闻中心

桌面虚拟化的应用能带来哪些价值?

间隙填充
正睿科技  发布时间:2010-09-14 09:40:27  浏览数:1225

  尽管如今虚拟化在推动许多生产环境,比如服务器和桌面基础架构,并充当一种资源提供工具,虚拟化也被越来越多的软件开发人员所使用。首先,他们使用虚拟化工具,便于提供用于开发和测试的一系列目标环境(比如不同的操作系统、操作系统版本和浏览器),并且便于迅速而轻松地提供/重新提供配置实例。本文介绍如何使用虚拟化、为什么使用虚拟化,以及他们对目前的虚拟化技术存着什么样的问题。

  虚拟化技术的一个主要优势在于,它能够分离不稳定的环境,这是任何开发人员都希望在应用程序设计的早期阶段所具备的功能。Friedman表示,随着微软工具的不断开发,测试早期版本可能会使开发人员的整个计算环境不稳定。

  除了最简单的桌面应用程序外,几乎任何应用程序都会导致系统崩溃。我经常告诉我的开发人员,如果他们没有经常导致系统崩溃,说明他们的尝试还不够积极。我们喜欢虚拟化技术,因为它能节省时间,让我们的开发人员可以花更多时间用在有挑战性的工作上,而不是用在准备测试环境那些单调而极其耗费时间的方面上。

  与其他虚拟化工具一样,微软的Hyper-V可以让用户对系统"拍取快照",保留"最近一个已知的完好版本"。Friedman说:"我们创建了回滚机制(rollback),那样我们在几分钟之内就能把系统恢复到之前的那个完好状态。另一种方法就是,不得不重新创建系统镜像或者重新构建环境,但这需要好几个小时。而虚拟化技术大大节省了时间。"

  拍取快照、然后在几分钟之内恢复工作镜像的功能特别重要,不必为重建系统等上数小时。Friedman说:"你在查找软件错误时,仅仅为了重现软件错误,常常得花上一两天时间来建立环境,所以你一次又一次地花时间来重建系统——这浪费了时间;从而导致工作效率降低。"

  比方说,某个软件错误导致系统崩溃时,开发人员就得回过头去,找出系统崩溃的那个地方。Friedman说:"人们最初设置的断点常常离进程太远,于是系统再次崩溃。因为开发人员在一天内很容易导致系统崩溃好几次,趁开发人员对问题很清楚的时候,能够迅速恢复,然后重新运行调试过程,这大有帮助。如果你在调试一个复杂的软件错误,能保持在这种状态下再好不过了。"

  开发人员表示,虚拟化技术非常有助于迭代测试。AdamMoskowitz是生产及销售一系列节能型计算机的SiCortex公司的高级软件工程师,他说:"我们有许多测试系统供我们的开发人员使用——每个测试系统都需要各自的x86控制系统。我们使用虚拟化技术来创建虚拟机,然后虚拟机连接到外部集群板,而不是购置许多PC,哪怕是最便宜的PC。"

  SiCortex的开发部门使用免费版本的VMwareServer,运行在功能较强大的机架服务器上(配备双核或四核x86处理器、4GB内存和300GB硬盘),这些服务器可以运行四至八个充当控制系统的虚拟机。Moskowitz说:"因为控制系统上的负载非常小,这种办法的效果非常好,资本开支也比较低。我们大约25名工程师中有一半以上的人在使用这些虚拟化系统。"

  Moskowitz表示,控制系统虚拟化的一个主要好处就是易于测试。他说:"想要一个实验系统?你只要克隆一个标准的虚拟机,就可以使用了。虚拟化工具有价值的另一个原因就是易于配置;开发人员只要用最新软件构建一个虚拟机——只要构建一次;以后你想要多少个虚拟机,就可以克隆多少个。"

  MikeBrescia在一家记录及恢复实时环境数据的公司工作;他说:除了把系统作为虚拟设备来提供外,我们公司的开发人员还使用虚拟化技术,在比较少的硬件设备上搭建不同的测试环境,比如Windows和Linux环境。Brescia表示,克隆一个干净的计算机系统用于测试要比拷贝磁盘镜像、使用Clonezilla克隆工具简单得多。他补充说:"运行虚拟机不需要拆掉、清除整个系统;我们只需要小心,别往主机机器上装入过多的资源。

  使用虚拟化技术测试平台上的软件以及我们支持的应用程序(以便保证质量);如果客户出现了问题需要支持,还可以用来重现客户环境。虚拟化让我们可以迅速构建及拆掉环境,而且只要使用数量极少的物理硬件就可以做到。对一家小规模的新兴公司而言,这种使用极少资本开支就能测试许多平台和环境的能力非常重要。另外,虚拟化技术大大提高了我们产品的质量和可靠性。

  我们需要使用虚拟化技术,以便能够完成我的工作。此外,我想使用虚拟机,确保所有机器上都有同样的配置设置。

  使用虚拟化技术关键在于,对系统中的每一项服务进行虚拟化处理给了我们很大的灵活性。在开发时,我们对物理资源没有太多的要求,那样我们在少数几个硬件节点上就能运行许多虚拟实例,包括数据库。

  MarkMail用的是OpenVz,那样开发人员沙盒中的镜像与部署环境的完全一样。Mitchell说:"有了虚拟化技术,测试不同的环境和版本等方面就非常容易;我们总是可以拆掉一个实例,然后从干净的检查点重新创建一个实例。"据Mitchell声称,使用虚拟化技术可以减少所要购买、租用及管理的硬件数量。"总的来说,我们使用的虚拟实例与硬件节点之比大约是3:1。"

  开发人员承认,开发过程中有许多方面是虚拟化技术无能为力的。

  虚拟化确实会增加一些复杂性。它总是会增加一些延迟。但是更糟的是,如果改变底层的执行环境——比如从开发环境到测试环境再到生产环境,就无法依赖虚拟机清楚地了解性能方面的特点。

  当前一代的桌面虚拟化产品仍有太多令人头疼的问题、缺陷以及缺失的功能,至少开发人员在用于软件开发方面就遇到了这种情况。另外,虚拟化行业采用的半虚拟化方法改变了操作系统的一些底层方面,尤其是操作系统的驱动程序。"所以,如果你依赖特定的驱动程序或硬件环境,那就会受到影响。比方说,有一个虚拟网卡,有一个特定的驱动程序。该驱动程序可识别虚拟化技术。你就得明白,如果你需要针对一组本地驱动程序进行测试,在虚拟机里看不到驱动程序。所以,这影响了从事驱动程序开发的人员,但对Web开发人员没有影响。

  尽管有这样那样的问题,虚拟化技术已经为开发人员带来了切实的好处。一旦我们的开发人员学会使用虚拟化技术,这项技术就能提高他们的工作效率。虚拟化技术让他们可以花更多的时间用在编码、测试和调试上。它消除了用在构建及准备环境方面的大量时间和延迟,我们并不希望他们把大部分时间用在这方面上。

  • 正睿合作伙伴
  • 社区
  • 社区
  • 阅读我们的博客
  • 技术支持论坛
首页 | 注册 | 网站地图 | 通告 | 联系我们
CopyRight(C)2004-2016 Chongqing Zhengrui Technology Co.,Ltd. All rights reserved.
重庆正睿科技有限公司(C)版权所有 未经书面授权 不得转载、复制或建立镜像
渝ICP备11002339号-1  渝公网安备 50010702500475号