While desktop virtualization can help your clients manage employees' computers, in many cases, your customers' immediate concerns are about specific applications. If virtualizing every user's desktop seems like overkill, you may want to suggest application virtualization instead. The benefits of application virtualization include ease of maintenance and greater portability, making programs easier to deploy across several versions of Windows.
Just as desktop and server virtualization abstract a computer's operating system from its hardware, application virtualization abstracts a program's executables, configuration files and dependencies from the operating system. Each virtualized application runs within its own environment, which includes registry entries, libraries, supporting executables and anything else the application needs to run. Because the application does not use resources outside its environment, it's possible to run multiple versions of a program or run it on a newer operating system than it was designed for, like Vista.
Most application virtualization programs work in more or less the same way, said Ty Schwab, founder and senior consultant of Blackhawk Technology Consulting LLC, a Eugene, Ore., IT consultancy. You begin with a bare-bones OS installation, which the virtualizing program takes a snapshot of. You then install the application you want to virtualize and have the program take a second snapshot. It compares the two and packages the difference into a single, self-contained executable.
Application deployment and maintenance
One of the main benefits of application virtualization is the ability to treat heterogeneous environments as if they were homogeneous, Schwab said. For instance, one of his clients was an Oregon-based dental healthcare insurance provider with representatives across the country. The company had spent about $800,000 to develop a custom application for those representatives, but it only ran on Windows 2000 and XP. When the company changed its policy to have representatives buy their own computers, it found that it suddenly had to support Vista. The custom program was complex and contained pieces written in several languages, so rewriting it would have been very difficult and expensive, Schwab said.
The product's roadmap already planned for it to be replaced in three to five years by a Web-based application, so it didn't make sense to rewrite the application just to have it become obsolete in a couple years. Instead, Schwab suggested the company virtualize it. Because the virtualized application can use old DLLs and security configurations, it runs on Vista as if it were still on a Windows 2000 or XP system, he said. That approach required changing the program's code to some extent, but Schwab said it saved the company $200,000 to $300,000 in development costs. Including testing, the project took about a month, he said.
Most applications don't require code changes to be virtualized, but even so, not all applications lend themselves to virtualization. For instance, antivirus and other monitoring tools can't be virtualized, since they are separated from the rest of the OS in a sandbox. In addition, like any virtualization technology, it comes at a slight performance cost due to the added virtualization layer. This means it may not be suitable for highly processor- or I/O-intensive software, like Adobe Photoshop, Schwab said.
Another one of the benefits of application virtualization is that applications that depend on custom drivers or libraries can be easily installed, which makes deploying upgrades and patches easier. Instead of running an installer on each machine -- or trusting users to do it -- IT can just replace the old application with the new version, since virtualized applications are all contained within a single executable file. This also makes it easier to deploy applications for temporary workers or consultants, Schwab said; a virtualized application file can be configured only to work for a certain number of days.
Application virtualization and other technologies
Customers tend to look at the benefits of application virtualization only after they become comfortable with server virtualization, said Barb Goldworm, president of Focus Consulting, a research firm based in Boulder, Colo. The two technologies are fairly different, and application virtualization doesn't necessarily include a server component. But virtualization is relatively new in the IT world, and companies usually start with server virtualization and consolidation, Goldworm said. After a company is comfortable with server virtualization, its next step is usually either upgrading the virtual server for high availability and disaster recovery, or looking into desktop or application virtualization, she said.
Many of the established server and desktop virtualization vendors also provide application virtualization products. Citrix recently renamed its Presentation Server software XenApp to emphasize its virtualization aspect and mirror the company's other virtualization software, XenServer and XenDesktop. VMware announced in January 2008 that it would acquire application virtualization vendor Thinstall.
Application virtualization is significantly cheaper than full desktop virtualization, which is its main advantage over that technology. Thinstall costs $4,995 for the software that creates the virtualized application images, and each computer's client software costs $39. Citrix's pricing model of XenApp was undergoing changes as of publication, but it is likely to be comparable to Thinstall. By comparison, VMware's VDI for desktop virtualization starts at $18,150 for 100 servers, and each additional 10 servers costs $1,815.
Many benefits of application virtualization apply to desktop virtualization, but if your customer doesn't need to virtualize entire desktops, doing so could be overkill. A virtual desktop image can require 20 GB for each employee, taking up storage and bandwidth resources if the virtual machines (VMs) are stored or hosted on a central server, Schwab said. Since multiple clients can use the same virtualized application image, your client will only need a couple gigabytes for the one image, instead of several hundred to store all of its employees' desktop VMs.
Application virtualization is often combined with application streaming, a technology that streams portions of the virtualized application to employees' computers as needed. With application streaming, the virtualized application image is stored on a server that client software on employees' machines connects to. Instead of the entire file being transferred, the client requests portions of the application only as needed, speeding up the time it takes to launch the program. The image is also cached locally, so portions of the application that have already been used don't need to be fetched over the LAN.
Because every streaming client accesses the same central repository, application streaming adds to the benefits of application virtualization by making it even easier to manage and update software. On the client side, the streaming software automatically recognizes when a new version is available and starts downloading it, so users don't even need to pull a new image manually.