应用程序虚拟化和服务器虚拟化都是同等重要的。如果把虚拟机看成从服务器硬件分离出来的操作系统(和宿主服务器硬件无关的),那么应用程序虚拟化可以看成从操作系统分离出来的一个程序。而且,当服务器开始进行了虚拟化,各种各样的应用虚拟化技术会涌现出来。
要把应用程序虚拟化玩熟悉不是一朝一夕的事情,但实施之后能减缓许多服务器虚拟化管理的压力。例如,应用程序虚拟化可以简化程序的打补丁,升级过程等,还能减少需要配置好程序的虚拟服务器模板。
下面是一些应用程序虚拟化的最常见问题,覆盖了应用程序虚拟化部署的各个方面,包括在部署应用程序虚拟化时候应该注意什么还有应用程序虚拟化能给虚拟化管理工作带来什么改变。
应用程序虚拟化的类型
应用程序虚拟化有两种类型,但是它们的工作原理都是把应用程序从底层系统里面分离出来。
1。基于服务器或应用的计算 : 这种工作方式是通过服务器后台运行虚拟化程序,使用的是服务器的资源,比如CPU和内存资源,而程序再通过”数据流”的方式在网络上发送到客户机或者终端设备。
2。基于客户端的虚拟化:基于这种模式的应用程序虚拟化,终端设备运行的程序,已经被打包成单一的可执行文件,相当于把程序绿化。和基于服务器模式的不同,这种工作模式下的程序是使用客户机的资源的,包括CPU和内存资源。
哪一种应用程序虚拟化类型更好?基于服务端的还是客户端的模式?
你要根据公司和用户的需求来选择哪一种应用程序虚拟化虚拟化技术,因为这两种技术各有长短。
基于服务器运行的模式通常有更高的安全系数和更简便的管理。这种模式的应用程序都统一集中在服务器上(前提是你的服务器足够安全),所以你并不用担心那些粗心大意的用户,安全问题在这种工作模式下就是浮云一样。你甚至可以在非Windows系统的客户端上运行这些程序,这对于必须运行这些Windows程序而又是非Windows系统的客户机(如LINUX终端等)非常有用。
基于客户机模式的应用程序虚拟化可以允许客户机脱机运行,不用依赖网络连接。这种应用程序虚拟化方式主要是对于资源占用较多的程序比较好,程序部署成这种工作方式将会更有工作效率。
我要从些因素去考虑使用的应用程序虚拟化类型?
首先你整个服务器和网络环境的设备对于虚拟化方式的选择就有影响。举个例子,客户机有没有可靠的网络连接?如果没有的话,基于服务端的应用程序虚拟化类型就失去意义。但反过来,你就可以考虑这种虚拟化方式。
如果你对服务器模式的应用程序虚拟化情有独钟,你要考虑你的服务器能不能承受得起,因为程序的运行是基于服务器的,对服务器资源的占用很大。还有这种工作模式的应用程序虚拟化需要一个可靠稳定并且足够带宽的网络,以保证应用程序虚拟化的顺利部署(千兆或以上)。
如果你觉得基于客户端的应用程序虚拟化模式更好,那么你的准备工作会多一些。例如,你是否需要一个本地代理服务去安装和管理这些虚拟化应用程序?如果需要的话,可以选择Ctrix或Microsoft公司的代理管理服务的工具。如果管理成本过高的话,你可以考虑VMware的ThinApp。
服务器管理员如果利用应用程序虚拟化来简化管理工作?
应用程序虚拟化可以减少服务器管理员的工作,虽然看起来不明显。在一个虚拟化环境里,管理员必须确切的处理好应用程序的依赖关系,许多虚拟机影响的创建和管理,还有这些虚拟机应用程序的升级和补丁。
如果部署正确,应用程序虚拟化可以减少许多些难题。因为应用程序虚拟化把程序必须的文件都打包成一个程序包,就不会有程序依赖关系的错误。这样的话,管理员可以方便快捷的在服务器和虚拟机之间交换应用程序。
应用程序虚拟化能够减少许多虚拟机模板。因为应用程序都被打包了,管理员也不需要去调试许多虚拟机模板以适合每个独立程序的运行。
最后,应用程序的虚拟化可以简化许多程序的补丁工作。管理员只需要把虚拟化的程序升级或者修改后分发到虚拟机就可以了。
应用程序虚拟化部署中易犯的错误
应用程序虚拟化也不是完美无缺。对于初学者来说,最好不要把老旧的16bit程序虚拟化,因为16位的程序对虚拟化的兼容并不好。随着时间的推移,16位程序也被逐渐的更新换代,这还不算什么问题。你也不能把基于内核运行的应用程序虚拟化,它会涉及到驱动之类的,如Adobe的Acrobat。
应用程序虚拟化也会涉及到软件的授权问题。例如,把MicrosoftInternet Explorer 6做成虚拟化应用程序部署就是违反Microsoft授权的,因为它是Windows系统的一部分。这种区别会让已经为IE6浏览器专门内置了应用的组织感到沮丧。
此外,有些应用许可与硬盘序列号绑定。这样的话,将虚拟应用分发到各种不同终端设备就会违背授权协议。