浅谈应用程序虚拟化在企业中的作用

势不可挡的虚拟化潮流

近几年“虚拟化”这个概念已经成为IT业界中的一个流行语,从桌面虚拟化、服务器虚拟化进而发展出存储虚拟化,虚拟化的势头已经涉及到了IT的方方面面,虚拟化所带来的各种新的特性也使得复杂的企业IT管理简单化,提升IT专业人士的工作效率。

随着虚拟化逐步深入到IT的各个方面,近期应用程序虚拟化的概念也被提出并逐步的被一些大型企业所接受并部署在其生产环境中,究竟什么是应用程序虚拟化,应用程序虚拟化又可以为我们带来哪些价值和收益呢?通过阅读本文您将对应用程序虚拟化有一个全面的了解。

让我们先来回顾一下应用程序部署的发展历程

早期软件的安装介质基本上分为软盘或光盘这两种形式,当企业需要部署某一款业务应用程序时,IT管理员会通过在每一台计算机上运行软盘或光盘上的Setup.exe安装程序为每一台计算机手工进行安装操作,这种软件安装形式较为繁琐,需要耗费大量的人工精力,但在那时企业中所拥有的计算机设备数量不高的情况下,这种工作量还是可以被IT人员所接受。后来随着企业中拥有的计算机数量逐渐增大,由IT人员手工进行软件安装的方式越来越无法满足大规模企业的计算机软件部署需求,在当时的时代,微软活动目录的大规模应用暂时缓解了这个矛盾,企业IT管理员们发现,通过组策略的形式,可以集中的将某个软件分发到企业内受管理的各个客户端上去,一次操作,所有的受管理的客户端可以全部被部署完成,大大降低了工作量,但通过活动目录部署应用程序也存在一个限制,就是管理员只能分发基于.MSI格式的软件安装包,对于常见的.EXE形式的安装程序却需要通过第三方的解决方案进行转换,其效果并不理想。在出现这样的问题及需求之后,微软的SMS(现在称为System Center)的系统管理解决方案又为企业带来了便利,System Center解决方案扩展了微软活动目录的软件分发功能,在System Center中不仅可以向受管理的客户端分发基于.MSI格式的安装程序,同时也能将.EXE格式的安装程序分发到客户端进行部署,大大方便了企业IT专业人士和最终用户,实现了较为快速的应用程序部署。

我们从上面可以看到,从最初的单机版的手工安装部署,到通过服务器中央集中部署,应用程序的部署历程随着企业在不同时代的需求正在经历着不断的变化。但无论是以上那种部署形式,我们经过认真的分析与归纳,可以总结出企业应用程序部署的一个普遍流程,即测试、安装、升级、卸载这样一个周期。对于测试阶段,我们不难理解,在软件真正部署到最终用户的桌面之前,IT管理员通常需要执行大量的回归测试以保证该软件部署后不会产生例如兼容性问题等影响IT或企业业务运转的问题。企业中所使用的客户端操作系统版本、硬件配置,安全策略设置等可能随设备采购年限、批次、所在部门等有很大区别,这在测试阶段就为IT部门带来了很大的挑战,企业IT专员需要针对企业内典型的硬件配置、操作系统以及反病毒安全软件等来设置不同的测试样本,并在这些样机上部署业务软件进行测试,根据调查,一般企业在真正部署业务应用程序之前至少要进行为期15天的测试过程,以保证该软件部署后不会产生问题。比起测试阶段,安装阶段较为容易,利用应用程序集中部署解决方案,如活动目录软件分发或System Center的应用程序分发功能,IT部门可以很快地将应用程序部署到用户桌面。在软件部署完成之后,IT部门通常需要时刻了解该软件的运行情况,在出现软件安全漏洞或业务出现新需求软件功能更新时,IT管理员又需要及时地为最终用户进行软件补丁的更新或者软件版本的升级操作,这样的操作通常有两种方式,一是在原有应用程序上直接安装更新程序;二是卸载旧版本的程序后安装新版本。在升级步骤进行之前,为了使新版本的软件可以正常地运行在当前IT环境中,IT部门通常需要额外的再进行一次新版本软件的回归测试工作,在测试结束后才能进行升级操作。对于存在安全漏洞的业务软件来说,额外的回归测试所消耗的时间有可能使该安全风险增大,威胁到企业的数据安全。当企业因为业务发展或其他原因不再需要一款业务软件时,IT部门将执行软件周期管理中的最后一个阶段——卸载阶段。卸载过程可以通过策略在服务器上统一的进行,但通常某些软件在卸载后客户端的系统文件或注册表中依然会残余一些信息,对于以后安装的其他应用程序来说,这些软件残余信息有可能会干扰到其他应用程序的安装及运行,所以在这种情况下管理员可能需要准备其他的方式来将这些残余信息清除。

应用程序虚拟化带来的软件部署革命

应用程序虚拟化,就是将应用程序以虚拟的形式提供给最终用户来使用。应用程序虚拟化可以有效地解决软件部署周期中测试、安装、升级、卸载各个阶段带来的挑战,将IT管理员从繁琐的应用程序部署工作中解放出来,并为最终用户提供安全高效的应用程序使用新体验。

虚拟化是将一个计算机资源从另一个计算机资源当中分离,通过使用应用程序虚拟化,管理员无需关心客户端所所使用的操作系统版本、Service Pack版本、硬件配置,安全设置等。每个虚拟化的应用程序都运行在一个像“沙箱”一样的独立的虚拟系统环境中,与以往的操作系统虚拟化不同,应用程序虚拟化并不依靠虚拟机的运行,其应用程序虚拟化包中已经内建了该应用程序所需要的各种虚拟因素,如系统文件,动态链接库(DLL),注册表配置信息等。这样的设计保证了该虚拟化应用程序的独立性,有效地防止了因软件兼容性或软件间冲突造成的IT管理难题,同时可以实现在一个操作系统上运行同一个软件的两个不同版本的应用场景,这在应用程序虚拟化出现之前是想象不到的。

图:利用应用程序虚拟化在一台计算机上同时运行Word 2010和Word 2007

我们以微软的应用程序虚拟化解决方案Application Virtualization(App-V)为例,来看一下应用程序虚拟化是如何工作的。部署典型的应用程序虚拟化服务仅仅需要三个部分,App-V服务器、App-V客户端,和App-V序列器,我们将逐一介绍这三个部分的作用。

App-V服务器

App-V服务器是管理微软应用程序虚拟化的中央节点,该服务器与活动目录连接来获取组织内的用户帐户及权限设置,为符合权限要求的用户提供虚拟化应用程序服务。此外App-V服务器还执行管理虚拟化应用程序包存储以及管理相关软件许可的工作。

App-V客户端

App-V客户端程序支持从Windows 2000、Windows XP、Windows Vista以及最新的Windows 7等主流的客户端操作系统,同时为x64架构的Windows提供支持。App-V客户端运行无需人工干预,当安装有App-V客户端的计算机启动并登录后,客户端程序会自动连接到公司内的App-V服务器,并将可用的虚拟化应用程序图标呈现在最终用户的桌面上或开始菜单中,当用户点击桌面上的应用程序图标时,客户端自动与服务器连接,通过RTSP流协议将该应用程序代码传送到本地并在“沙箱”中执行,这时最终用户看到的程序运行界面体验与传统的本地安装的应用程序是一致的,对于企业内部用户来说,应用程序虚拟化对其实完全透明的,员工不会感觉到使用上的不同。

App-V序列器

我们讲了很多虚拟化应用程序包的内容,那么虚拟化的应用程序包究竟是怎么生成的呢?这就需要用到App-V序列器。通常App-V序列器安装在一台独立的计算机上,通过使用App-V序列器,我们可以将任何一个应用程序打包排序成一个虚拟化的应用程序包,在安装、打包、排序的过程中,App-V序列器会自动侦测该软件所需的系统文件、注册表键值等关键信息,与该应用程序一起打包,最终生成可独立运行的虚拟化应用程序包。

图:App-V完整架构

任何类型的企业只要在网络中部署了App-V的这些组件,就可以体验到应用程序虚拟化带来的便利了,从此业务应用程序的部署不再需要执行测试、安装、升级、卸载这样的过程。当一个企业需要部署一款新的业务应用程序的时候,管理员之需要将该软件通过App-V序列器打包成虚拟化的应用程序,并将该虚拟化应用程序包放在服务器上发布,客户端在登录后便可以直接使用该应用程序了,因为虚拟化应用程序彼此独立,从此再也不用执行复杂繁琐的回归测试过程。在软件需要升级的时候,管理员之需要将新版本软件通过App-V序列器打包后放在服务器上替换原有版本,当用户重新登录或者到达客户端刷新周期时,用户点击桌面上的新版应用程序图标既可使用新版本的业务软件。即使企业不再需要一款业务应用程序,对于软件卸载操作,管理员仅需在App-V服务器管理控制台中删除该虚拟化应用程序包,客户端在与服务器完成设置同步后该软件会自动地在客户端的桌面上消失,而无需担心文件与信息残留。

典型企业应用价值

通过使用应用程序虚拟化,我们能实现的价值还有很多。

1.增强的软件管理

通过部署应用程序虚拟化,我们可以更加精细的管理企业内的应用程序,仅为用户提供其需要的应用程序,而无需将企业内的所有应用程序全部部署到每个用户的桌面,可以使最终用户更加专注于自己的工作。例如通过应用程序虚拟化的软件权限我们可以只为财务部门提供Word、Excel和Access软件,而对于销售部门除了提供上述软件之外,增加即时通讯软件和Outlook等,来避免为用户提供凌乱的桌面环境,有效提高工作效率。

2.降低软件许可支出

某些业务程序需要企业支付大量的费用来购买相关许可,通过App-V,我们可以精确的控制某款软件的使用者或并发使用人数,从而严格遵从软件许可协议,在多用户协作的场景下充分利用软件许可协议所允许的用户数量,有效地帮助企业降低额外的软件授权费用。

3.灵活的用户环境

对于培训或者教育用户来说,计算机教室是IT部门最为费心的地方。每次培训内容都不尽相同,所需要用到的软件也不一样。在每次培训前IT人员都要耗费大量的时间和精力在部署及准备本次培训所用到的用户环境,当培训结束后,这些耗费大量时间所做好的环境又需要被清理并为以后的培训做准备。在应用App-V之后,管理员以后仅需为这些教室的计算机上安装一个操作系统以及App-V客户端,在每次培训之前将培训所需的应用程序虚拟化包放在服务器上并分配给本次培训所需的专用账号,当学员在教室通过本次培训的专用账号登录计算机后,即可获得与本次培训相关的用户环境。IT管理员从此可以摆脱不断的部署与重新部署的既繁琐又耗时的工作。

应用程序虚拟化将软件的部署从安装变为了现在以服务的形式为用户提供,Application Virtualization带来的价值还有很多,这需要您自己来发掘。

This entry was posted in Computers and Internet. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Connecting to %s