接上部分,这次依旧是应用虚拟化。


三、什么是应用程序虚拟化?

      一般来说,虚拟化就是把物理环境和逻辑环境分离,降低耦合。同样的,应用程序虚拟化就是打断物理客户端设备和操作系统与应用程序的关联性、捆绑性。这个技术使得IT技术人员可以从不同的客户端设备集中化管理用户可用的应用程序。如下图六所示:

144409828.jpg

(图六、传统方式与虚拟化对比)


      常见的应用虚拟化又有如下两种方式:

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

      对于微软的终端服务,我们比较熟悉,现在终端服务被微软改名为远程桌面服务。这个技术起初发展于90年代,用于用户可以像本地计算机一样使用服务器上的桌面,不过这个技术现在改进了,可以用于允许用户连接一个单独的远程应用。也就是说用户所看到的是一个独立的连接,而不是像以前一样连接到一个完整的远程服务器桌面,有着相同的墙纸,开始菜单等等。微软称之为远程应用。对于思杰公司的产品来说,这应该说是一个桌面了。

      有的同学可能会反问:“这种基于远程服务器运行的模式不能被称为应用程序虚拟化,因为基于服务器运行的程序的工作模式比应用程序虚拟化这个术语出现的时间早很多?“同学们,只是因为过去行业把叫法用于这个技术,这丝毫不会减低应用程序虚拟化的适用性范围。基于远程的运行模式,只要你在数据中心的服务器上安装一个应用程序,用户不经过任何配置,就可以通过本地设备连接、访问和使用。这就是应用程序虚拟化的本义。

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

      另一种应用程序虚拟化组成部分涉及到运行在客户端的程序。当你要安装一个Windows应用程序的时候,你一般都是先运行一个setup的实例程序(如EXE或MSI文件的实例程序),这个setup的实例程序会检查已安装的组件和解决一些组件依赖的问题。许多的Windows应用程序都严重依赖客户端本地的系统。安装程序会把文件写入Program Files文件夹(默认的安装路径,可修改)。也可能拷贝DLL(动态链接库文件)到Windows文件夹或里面的System32文件夹等;另外,安装程序也会安装共享的组件,如浏览器插件、属性文件、菜单扩展、驱动还有其他各类文件等这些,它们散布在磁盘的各个地方。而且安装程序还会把必要的注册表项写入注册表,包括系统项和用户项,以确保应用程序正常运行。

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

      基于客户端的应用程序虚拟化把试图把所有的Windows应用程序都便携化了,就算这些程序的功能有所增减或者升级。这种方式看上去很美,但是始终可能会有一些意外发生。如就算你把一个程序的所有东西都找齐了,放到另一个计算机系统的相应位置,也不能保证它就能正常运行;他有可能是程序冲突,DLL缺失,驱动问题等。

      为了避免这一系列的潜在问题,应用程序虚拟化产品通常把应用程序和Windows桌面环境相隔离。它们把每一个应用程序都创建成一个程序包,而且运行在一个位于应用程序和Windows之间的透明的虚拟系统,这些应用程序不需要去了解运行环境的结构,它们和本来安装运行的一样,认为把文件写入了Windows的系统文件夹,而实际上文件可能写入的是虚拟化平台的其他合适位置。在虚拟环境中,复杂的补丁也不再是难题。因为虚拟应用程序都是集中升级的,然后再慢慢推送到每一个客户端里面的应用程序包,再确保不会有冲突。


四、主要的本地应用虚拟化产品

      Microsoft的App-V,Ctrix的XenApp Streaming,VMware的ThinApp,Symantec的Workspace Virtualization等等。这些产品其实都异曲同工,但又些许不同。

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

      微软App-V

      App-V(Application Virtualization,简称App-V,前身是SoftGrid程序虚拟化)提供了集中式管理功能,所以管理员可以限制用户访问特定应用。微软的应用程序虚拟化工具在使用Windows 7或Windows 8的公司中很流行,因为其可以使用户和像Office这样的虚拟Windows应用交互。最新版本的App-V 5.0通过关闭本地应用存储,减少了对于磁盘空间的需求。除此之外,其还加强了应用程序诊断和监控。

      Microsoft App-V 5.0新特性:

      最新版本的App-V为用户提供了更加本地化的应用程序体验。IT管理员可以使用Microsoft Silverlight来部署和监控应用,这意味着可以通过Internet来接入管理终端。对于移动用户来说,App-V 5.0允许用户利用Direct Access技术在广域网中传输应用流,并且集成了Windows To Go。

      每个应用程序虚拟化工具都有其优势和缺点,并且他们之间的差距正在逐渐缩小。相对来说VMware的发展更为艰难一些,因为Citrix和Microsoft是深度合作伙伴。ThinApp具有轻便特性,但是App-V支持64位系统和服务器应用程序,而ThinApp不支持。

      Citrix XenApp

      ThinApp和App-V只支持应用虚拟化,而XenApp是一个综合性的应用程序部署系统。以往的XenApp非常局限于自己的环境或者XenClient环境,使得其非常难以对其他应用开放端口。然而,Citrix在XenApp 6.0中添加了对于Microsoft App-V 的支持。

      Citrix XenApp 6.5新特性:

      Citrix XenApp 6.5缩短了应用程序启动时间。对于HDX协议的改进使得应用可以在高延迟的环境中运行。除此之外,XenApp 6.5中的移动组件可以改进针对移动设备的部署情况。

      VMware ThinApp

      VMware ThinApp能够提供一些XenAPP和App-V不具备的兼容性。比如,它支持部署离线应用。并且它是最轻便的应用程序虚拟化工具。使用者几乎可以在任何地方运行ThinApp应用程序,因为用户不需要安装软件或者设备驱动。

      但部署VMware ThinApp是一项繁琐的工作。管理应用程序也很复杂,因为没有一个集中式管理平台来实现这项功能。据资料在VMware的Horizon中有应用程序管理器。

      其它

      除了了App-V,XenApp和ThinApp外,还有其他的应用程序虚拟化工具。比如,Spoon Studio非常简单易用,并且可以集成在公司的云服务当中。InstallFree是另一个选择,但是其不提供离线特性。


五、微软的应用虚拟化介绍

      前面介绍了一些,但大家不仔细看和整理的话,很难搞清楚,现在整理一下。如下图七所示,微软支持基于服务端的应用程序虚拟化,也支持客户端的应用程序虚拟化,而基于服务器的又可以分为两种:

144605190.jpg

(图七、微软的几种应用虚拟化方式)


       1、终端服务远程桌面:可为每个用户提供完整的桌面,并显示运行在终端服务器上的应用程序。这种共享架构可提供集中的管理和更高的效率。每台服务器运行一个操作系统,因此可支持多个用户。换句话说,这种解决方案无法让用户像定制传统计算机一样灵活定制自己的环境。另外,有些应用程序无法在多会话服务器操作系统中正常运行,可能会导致应用程序兼容性问题。

       2、终端服务Remote App:可隐藏桌面,只将应用程序的UI显示在本地计算机上,而应用程序本身则运行在服务器上。这种解决方案使得用户可以像运行本地程序一样访问远程应用程序,因此避免了第二个桌面导致的资源浪费。应用程序表示层虚拟化与桌面表示层虚拟化具有相似的优势和不足,由于共享计算架构,因此有经济上的优势;但通常要求应用程序运行在服务器操作系统上,有些应用程序的供应商并不支持此类用法。


      下面再介绍一下用户状态虚拟化,微软的主要解决方法是:文件夹重定向、脱机文件、漫游用户配置文件。

      文件夹重定向和脱机文件是Windows功能,借此IT人员可以将用户的数据和设置重定向到中央网络位置。而漫游用户配置文件微软的官方解释:用户配置文件就是在用户登录时定义系统加载所需环境的设置和文件和集合,它包括用户专用的配置设置。

      用户配置文件保存在系统分区(一般是C分区)的"Documents and Settings"文件夹下,有一个和你的登录用户名同名的文件夹, 用户配置文件就保存在这个同名文件夹里;用户配置文件包括桌面设置、我的文档、收藏夹、IE设置等一些个性化的配置。

      如果本机和域上有一个同名用户,并且都登陆过的话,那么就会出现在同名文件夹和后缀的情况。举个例子:如在一个域(test.com)里面有一台计算机(host1),本地有一个user1的帐号,域上也有一个user1的帐号,并且都登陆过这台计算机,那么会发生如下情况:
      本地帐号先登陆:那么本地的user1的用户配置文件夹为user1,而域用户的用户配置文件夹为user1.test。
      域帐号先登陆:那么域用户的用户配置文件夹为user1,本地用户的配置文件夹为user1.host1。
      在"Documents and Settings"文件夹下有一个名为“All Users”的文件夹,顾名思义,该文件夹里的配置是对这台计算机的每个用户均起作用。比如你在这个文件夹下的“桌面”文件夹下新建一个文件的话,你会发现所有用户在登录时的桌面上都有这个文件。


      好了,今天时间有限,本打算再详细介绍一下Microsoft App-V 5.0的组件功能,工作流程等,还有使用App-v的如下一些收益:

      虚拟化:保持计算机“干净”,减低复杂性
      集中化:单点管理,完美控制
      加速化:加速部署,补丁管理,更新和终结使用
      经济性:大幅减少部署、更新、支持应用软件的开支

      但无奈现在得外出为生活奔波,所以本小专题也得到此打住。具体的Microsoft App-V 5.0部署,使用和管理指南,请参考这里http://technet.microsoft.com/zh-cn/library/jj713443.aspx


     祝各位周末愉快!