评估应用程序虚拟化的技术和工具

日期: 2011-11-02 作者:Brian Madden翻译:吴炫国 来源:TechTarget中国 英文

桌面虚拟化可以减少企业数据中心的花费和管理难题。然而IT管理人员不得不去面对这些不成熟的技术,不一致的虚拟化术语等等,搞得大家对这些都很反感。不过还好,你可以用集中化的工具管理这些虚拟化技术。   无论是基于服务器模式还是客户端模式的虚拟化,应用虚拟化都是桌面虚拟化的一个重要组件。

毕竟,一个没有程序的系统桌面能干啥呢? 总的来说,你应该认识到应用程序虚拟化对你总体计划的重要性和认识到应用程序虚拟化能让你事半功倍。   什么是应用程序虚拟化?   总的来说,虚拟化就是把物理环境和逻辑环境分离。相似的,应用程序虚拟化就是把物理客户端设备从应用程序的管理里面分离出来。这个技术使得IT技术人……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

桌面虚拟化可以减少企业数据中心的花费和管理难题。然而IT管理人员不得不去面对这些不成熟的技术,不一致的虚拟化术语等等,搞得大家对这些都很反感。不过还好,你可以用集中化的工具管理这些虚拟化技术。

  无论是基于服务器模式还是客户端模式的虚拟化,应用虚拟化都是桌面虚拟化的一个重要组件。毕竟,一个没有程序的系统桌面能干啥呢? 总的来说,你应该认识到应用程序虚拟化对你总体计划的重要性和认识到应用程序虚拟化能让你事半功倍。

  什么是应用程序虚拟化?

  总的来说,虚拟化就是把物理环境和逻辑环境分离。相似的,应用程序虚拟化就是把物理客户端设备从应用程序的管理里面分离出来。这个技术使得IT技术人员可以从不同的客户端设备集中化管理用户可用的应用程序。

  基于服务端运行的程序或远程程序

  对于终端服务,你也许比较熟悉,现在终端服务被微软改名为远程桌面服务。这个技术起初发展于90年代,用于用户可以像本地计算机一样使用服务器上的桌面,不过这个技术现在改进了,可以用于允许用户连接一个单独的远程应用。(最初是思杰公司,现在很多公司都推出这个应用,包括微软自己)

  换句话说,用户所看到的是一个独立的连接,而不是像以前一样连接到一个完整的远程服务器桌面,有着相同的墙纸,开始菜单等等。微软称之为远程应用。对于思杰公司的产品来说,这应该说是一个桌面了。换句话说,这是应用程序虚拟化的一部分。

  一些人可能会说,这种基于远程服务器运行的模式不能被称为应用程序虚拟化,主要因为基于服务器运行的程序的工作模式比应用程序虚拟化这个术语出现的时间还早。呵呵,只是因为过去行业把叫法用于这个技术,这丝毫不会减低应用程序虚拟化的适用性范围。基于远程的运行模式,只要你在服务器上安装一个程序在自己的数据中心里,用户不经过任何配置,安装等就可以在本地设备运行。这就是应用程序虚拟化的本义。

  基于客户端运行的应用程序虚拟化

  另一个重要的应用程序虚拟化组成部分涉及到运行在客户端的程序。(简单的解释,就是客户端运行的程序实际上在服务器上的,而不需要在客户端操作系统上安装所要运行的程序。)如果你确实想了解这种工作模式,你需要深入明白Windows程序在非虚拟环境的传统运行模式。

  当你要安装一个Windows应用程序的时候,你一般都是先运行一个setup的实例程序--如一个EXE或MSI文件的实例程序。这个setup的实例程序会检查已安装的组件和解决一些组件依赖的问题。你应该知道,许多的Windows应用程序都严重依赖客户端本地的系统。安装程序会把文件写入Program Files文件夹(这是系统路径默认的安装文件夹,可以在系统属性里修改)。也可能拷贝文件到Windows文件夹,而DLL(动态链接库文件)则一般放在Windows文件夹里面的System32文件夹。

  另外,安装程序也会安装共享的组件,如浏览器插件、属性文件、菜单扩展、驱动还有其他各类文件等这些,它们散布在磁盘的各个地方。而且安装程序还会把必要的注册表项写入注册表,包括系统项和用户项,以确保应用程序正常运行。

  当然,如果应用程序的所有文件都在一个文件夹里(如绿色软件),上面所说的那些复杂过程就如浮云。这样的绿色应用程序很好,因为你只需要在已经安装好程序的机器上把整个程序文件夹拷贝到一个新的机器,就可以正常使用了。

  基于客户端的应用程序虚拟化把试图把所有的Windows应用程序都便携化了,就算这些程序的功能有所增减或者升级。

  而目前这些的目标还难以完全实现,因为现在的应用程序需要DLL(动态链接库文件)、系统文件、驱动程序、注册表设置还有其他一些零碎的东西,所以你没办法靠单纯拷贝安装完程序所在的文件夹到另一个计算机来直接运行这些应用程序。(好吧,你要这么做也可以,但就大多数程序而言,你如此拷贝到另一个计算机之后是没法用的。)现在基于客户端的系统试图把一个应用程序所需要的所有东西都捕捉下来,然后打包成一个文件(如许多业余计算机程序员打包的绿色软件)。然后让大家可以自由的拷贝解压到其他计算机直接运行。

  这看起来很好很美。玩这些的电脑高手也不是一天两天做这些程序了,然而,就算你把一个程序的所有东西都找齐了,放到另一个计算机系统的相应位置,你也不能保证它就能正常运行。难道是程序冲突?DLL缺失?驱动不对还是怎么的?有时候你怎么也想不明白为啥就不能运行,因为它就要折腾你。

  为了避免这一系列的潜在问题,应用程序虚拟化产品通常把应用程序和Windows桌面环境相隔离。它们把每一个应用程序都创建成一个程序包,而且运行在一个位于应用程序和Windows之间的透明的虚拟系统,这些应用程序不需要去了解运行环境的结构,它们和本来安装运行的一样,认为把文件写入了Windows的系统文件夹(System32),而实际上文件可能写入的是虚拟化平台的其他合适位置。

  在虚拟环境中,复杂的补丁也不再是难题。因为虚拟应用程序都是集中升级的,然后再慢慢推送到每一个客户端里面的应用程序包,再确保不会有冲突。

  使用应用程序虚拟化

  如果你在你的桌面虚拟化项目里要搞点应用程序虚拟化(不用我说你也会这么做吧),你就要明白哪种技术适合你的项目。

  想想你的桌面环境里的那些特定程序。用户们是否需要离线运行这些程序?这些程序是否需要客户端修改许多资源?(这么多客户端一个个改起来我可受不了)这些都会让你尽快实施基于客户端的应用程序虚拟化。

  如上所述的话,你可以考虑一下一些产品,如:Microsoft的App-V,Ctrix的XenApp Streaming,VMware的ThinApp,Symantec的Workspace Virtualization等等。这些产品其实都异曲同工,但又些许不同,当一个产品不适合你环境的时候,你也可以试一试另一个产品,有一些只是兼容性问题,在另一种产品上又好好的运行了。

  另一方面,如果你的应用程序需要一个后台的网络连接,而你又不想非Windows的客户端去访问,或者你有安全和性能方面的顾虑,你应该考虑一下在服务器上运行这些程序。你可以让用户通过远程连接去连接服务器,从而使用这些程序。 Microsoft的Remote Desktop RemoteApp, Citrix的XenApp, Quest Software的vWorkspace都可以满足你以上的要求。

  应用程序虚拟化是你整个桌面虚拟化部署的一个重要部分。可喜的是,现在你有许多产品来选择部署,而不会束手无策了。

作者

Brian Madden
Brian Madden

特约作者

翻译

吴炫国
吴炫国

吴炫国,在网络管理领域有丰富经验,专注硬件、服務器、WiFi等方面。强烈爱好虚拟化,TechTarget中国虚拟化论坛版主。

相关推荐