Is application virtualization a sensible investment for IT managers? Do the claimed benefits--and associated costs--of application virtualization outweigh what it is intended to replace, the current spending on regression testing, packaging and support costs associated with application problems?
Or will application virtualization tools be subsumed into virtual desktop offerings?
"Quick links to my application virtualization reviews:Novell ZENworks Application VirtualizationCitrix XenDesktopSymantec's Altiris SVS (this is a vintage review from 2006)VMware ThinAppMicrosoft Application Virtualization"
At their core, application virtualization products are designed to isolate applications from each other and the operating system. App/app separation is keeping two different products or two instances of the same product separate from each other. OS separation is the "sandboxing" of an application so that the application perceives that it is the only application installed on a single system.
I subscribe to the idea that the primary driver of IT product implementation is that it should significantly improve business processes. It has been shown that server virtualization clearly reduces costs by increasing server hardware utilization while also lessening the time needed to spin up new server instances. It seems plausible to me that application virtualization is riding the coattails of server virtualization without offering a corresponding business value.
It is with the aim of resolving this question that I am currently working with a number of application virtualization products. I want to see if these tools save labor and resources or if they primarily redistribute them.
For example, in my work since 2006 with application virtualization tools, I have learned that preparing and packaging applications for use in a so-called virtualized environment is a time-consuming and tricky process. It's on par with the effort required to prepare an application for distribution with a traditional software distribution tool. Advantage: none.
However, this family of products invariably reduces the amount of regression testing needed before deploying a new piece of software. Advantage: app virt.
There is still a need to regression-test even virtualized applications before they are deployed. The reason is that many applications depend on or interact with other applications during normal operation. In the "bubble" environment created by application virtualization, it is no small feat to enable this interaction. Advantage: none.
I should note that my previous work with these tools showed that the method of enabling interaction between otherwise separated applications is a useful distinguishing point that is well worth adding to your evaluation criteria. The last time I looked, Novell's ZENworks Application Virtualization (actually Xenocode's product family) did this the best.
There is a whole other set of questions about whether operating systems for end-user systems have advanced sufficiently to be relied on to keep applications from interfering with each other. While .dll hell was a real concern in Windows 98, that was, well, more than a decade ago. Windows XP and even Windows Vista are much better at keeping applications from stepping on each other.
Application virtualization raises resource, performance and applicability questions. This level of virtualization isn't trying to recreate an entire machine, so the CPU and memory load are usually not a concern. However, many application virtualization solutions use streaming to send the application to the end-user system. Depending on how well this process is handled, start-up and product execution times can be adversely affected when compared with locally installed apps. And network bandwidth becomes an important consideration when using application virtualization.
I would like to hear from you about your questions and concerns when it comes to application virtualization. Have you piloted an app virt project? Do you have war stories to share about a successful implementation or narrow escape from a failed project? What are the road bumps or unexpected benefits that you've discovered from implementing application virtualization?