Should you embed apps in your virtual desktop images, or should you virtualize applications separately?
It seems like such a simple question, and yet there are a number of considerations you must take into account when making this decision. In most cases, application virtualization will probably be worth the effort and will make application management a lot easier -- after the initial learning curve. But you may have trouble virtualizing every application that users need, and some apps might have to stay in the virtual desktop image.
Before you jump into application virtualization, consider how often the applications workers use change, how much time and money it will save you to virtualize applications, and if the applications will run in a virtual environment.
How often do the desktop applications change?
The first consideration that I recommend taking into account is the frequency with which your application set changes.
If you are constantly deploying new applications or updating application versions, then application virtualization is probably going to be a good idea. If you embed the applications in virtual desktop images, you will likely find yourself creating new images more frequently than you would like to.
Will app virtualization save work?
In most cases, application virtualization will keep you from having to build a new desktop image every time there is a change to your application set. For example, some application virtualization tools use a Web interface as a portal to launch the applications. The apps actually run in a virtualized environment on a remote system.
Other application virtualization options run locally and require a shortcut to the application on the virtual desktop. This approach might seem to undermine the benefits of application virtualization, but in some cases you can add the shortcuts to users' profiles and forgo touching the desktop image altogether.
Even though most application virtualization tools make managing virtual desktop images easier, there is work that goes into packaging and sequencing the virtualized application. If your ultimate goal is efficiency, consider whether image management or application management requires more administrative effort.
Which approach is more cost effective?
Application virtualization tools are software based, which means there are typically licensing costs associated with the software. Like any other software, there will also be management and support costs, so it's important to consider whether the introduction of application virtualization will offset enough of the administrative workload to justify the license costs and the application virtualization software's support costs.
Will your applications work in a virtual environment?
Most applications seem to work fine when virtualized, but there are always exceptions. For example, applications that use dynamic link libraries (DLLs) and run inside a DLLHost.exe process have been known to cause problems with some application virtualization tools.
Similarly, middleware and the applications that depend on it may not make good virtualization candidates unless you take their special needs into account. Oftentimes, multiple applications will depend on a common middleware library. Although it is usually possible to virtualize those applications -- as long as the middleware is included in the sequencing process -- issues can arise when you virtualize multiple applications that depend on the middleware. For example, if you virtualize each application and its middleware separately, then you introduce a layer of inefficiency because you virtualize the same middleware over and over again.
More importantly, middleware is sometimes used to provide a communications channel or a common data set for the applications that depend on it. If you virtualize the applications, you are isolating them from one another. This can cause some of the middleware's functionality to break.
Of course there are ways around these problems. For instance, if you have multiple applications that rely on a common set of middleware, then you might treat those applications as a suite and sequence them collectively.
If you make the decision to virtualize your applications, then it is also important to check your virtualization product's support for application updates. Many applications include an automatic update mechanism, but when you virtualize them, the automatic updates fail or the update process breaks the virtualized application. Because of this, it is a good idea to disable automatic application updates unless the virtualization software publisher indicates otherwise.