by Tim Mangan, CTP, Boston CUGC Leader
When it is your job to compose Windows Desktops and Apps, there are times when you don’t need to use an Application Virtualization product, times when you have to, and times when it’s a good idea to use one anyway.
Most modern applications are well enough designed to avoid many of the dependency and interaction problems that forced the use of application virtualization in the past. Unfortunately, there are the other apps. And the odds are that your company uses some of them.
The causes can include some of the following:
Required version of shared components. Commonly known as “DLL Hell,” the application requires the use of a specific version of a common dll, which doesn’t work with a different application. With the changeover to managed code (.Net) this is less of a problem. Today, we see this most often on applications that were developed in-house prior to 2005.
Java. Most large enterprises have issues with Java versions. We typically see this in Java Web apps, where there is a back-end portal (such as a timecard app or HR benefits) that requires that you run a specific version of Java in the web browser.
Office. Often, you want to have a native install of your current version of Microsoft Office, and then virtualize parts of prior versions for when users need that version.
“The Multis.” Very old apps might not be designed for “multi-user” scenarios, such as XenApp. These apps write user specific configuration into the HKLM registry hive. There is an off-shoot of this called “multi-tenancy” which is of interest to cloud service providers. “Multi-instance” is an issue that comes from designs that don’t consider the possibility of multiple copies of the same app running simultaneously (common on XenApp) due to the use of internal issues, such as named kernel objects and COM interfaces. A variant of multi-instance is “multi-version”, where an older version of an application is also needed by the user due to backward compatibilities with application data formats.
Some of these issues can be addressed by means other than application virtualization. Application Shims, User Environment Management, and use of XenApp Application Silos are the most common techniques, but these cannot solve all the problems alone and each brings along its own issues.
Composing all of the desktops of an organization, with the multitude of variations in application combinations, each with largely unknown interdependencies and complexities, is a very difficult task. By isolating the applications from the OS and each other, we reduce the break/fix cycle of application management and allow IT to focus on meeting the user’s needs quickly and accurately.
Including application virtualization in your tool belt allows you to be able to dynamically compose the set of required applications on-the-fly, rather than work with a set of pre-built bundles. In less than persistent environments, such as XenApp or pooled Xen Desktop, application virtualization is often an absolute requirement. You can start with a clean base image, or possibly include common applications or those difficult to virtualize, but the ideal deployment is one that quickly adds in specific applications based on the logon credentials. Application virtualization is a key ingredient to composing these desktops on-the-fly, safely, and controlling license costs.
But if you think about the bigger picture of technology change, doesn’t making all your desktops more dynamic, using application virtualization to decouple apps from the installed environment set the stage for changes that you will want to make in the future?
Application Virtualization Choices
Some long-time Citrix customers are facing the need to change their application virtualization choice from the deprecated Citrix Streaming. Most seem to be migrating to Microsoft App-V, which Citrix has directly integrated into the consoles, however some customers using Xen Desktop on ESX at least consider Thin App. Application layering solutions can also be considered, but ultimately most companies still need application virtualization anyway due to the issues outlined above.
Tim Mangan co-founded Virtualization User Group Boston in 2009 and serves as the groups Vice President in charge of speakers and sponsors. He has been recognized as a Citrix CTP for many years, and has also been awarded the Microsoft MVP for his countless efforts to help the technical communities.