Application virtualization is a step toward making application deployment and management easier for desktop administrators. Technologies such as VMware ThinApp 4.5, VMware's newest release of its application virtualization software, allow administrators to simplify desktop applications throughout an enterprise. Applications become portable files that can run easily across various guest OSes without installing applications.
What is application virtualization?
VMware describes application virtualization this way: "Applications are packaged into single executables that run completely isolated from each other and the operating system for conflict-free execution on end point devices."
Application virtualization condenses the hundreds (and sometimes thousands) of files that make up a program in a single file. The ThinApp package includes a tool to run a virtualized application from almost anywhere without having to install a program multiple times on local machines. Obviously, it's much easier to manage, deploy, update and troubleshoot a single file rather than the thousands that make up most enterprise applications. Other technologies, including Citrix Systems' XenApp and Microsoft's App-V virtualize applications, but for VMware environments, ThinApp is a logical starting point given ThinApp's integration with other VMware technologies.
When you decide to virtualize an application, first determine whether the application you want to virtualize is a good fit for application virtualization. If it has low-level drivers, is embedded in the operating system or, if it is an antivirus or firewall, it probably won't work. If you need help figuring out whether your application is a good candidate for virtualizing the VMware ThinApp Communities resources can help.
One best practice is to use three different machines as you develop your virtual application (they can be virtual machines, or VMs). A "package machine" that run ThinApp and hold the completed packages; a "capture machine" that will act as a base machine for installing the application to be virtualized; and a test machine that will (hopefully) verify that your virtualized application works.
The application to be virtualized should be built on a base operating system that represents the lowest level of the Windows OS on which you will run the virtualized application. I plan to run my tests on machines that are Windows XP Professional SP2 minimum, so that's the build I will use for my base operating system. Building the base machines in VMware Workstation works well, because you can easily revert to a previous snapshot of the base operating system.
Once you've gone through the preliminary steps, you can proceed with the application virtualization process.
Virtualizing applications with VMware ThinApp
- Prescan. ThinApp reviews the basic patched OS before changes have been made by the application you want to virtualize and takes a snapshot. This is your starting point and the place to return to should you want to virtualize another application.
- Application installation. Install the application you want to virtualize, including any patches.
- Postscan. ThinApp looks at the machine with the application installed and takes another snapshot.
- Package configuration and creation. ThinApp compares the before-and-after snapshots to identify the changes with the application installation. It then rolls in the runtime component to build the final executable.
- Build. ThinApp creates the final build package with the various security options you select.
I was skeptical about how easy ThinApp would be, but the process was smoother than I anticipated:
- First, I built three VMs and joined them to the same workgroup.
- I installed ThinApp 4.5 to the default folder of C:\Program Files\VMware\VMware ThinApp\ on the package machine and shared with the Capture and Test machine.
- I mapped back to the Package machine installation folder from the Capture machine and ran Setup Capture. This kicks off the ThinApp wizard. The steps follow the sequence listed above, and the wizard provides useful help screens should you need additional information. In my test environment, my goal was to virtalize a freeware graphics tool I find useful.
When you run ThinApp on an application for the first time, you should select wizard's defaults. Later, after you've gained some comfort with the process, you can experiment with sandbox location, application entry points, application authorization, isolation settings for configuring write access to the local machine and, finally, the option to send usage statistics to VMware. Once you select the options, the wizard moves on to the Build step. If you follow the options in the Build steps, you can complete the ThinApp package of your application.
Now it is time to realize the efficiency gains! If the package is written to a network drive, you can simply share it and create shortcuts on users' desktops (assuming they have application use permissions). Further, by updating the application package with subsequent versions, your users seamlessly transition to the new version the next time they access up the application following the upgrade date.
Whether or not application virtualization becomes widely accepted in the enterprise desktop environment remains to be seen. But I believe that it offers significant advantages for innovators that are willing to use the technology and make desktop applications easier to manage.
Mak King has been in the IT industry for 14 years, progressing from his blissfully green days of DOS and sneakernet to VMware and storage area networks. He has certifications from Netware (CNE), Microsoft (MCP), CompTIA (iNet) and VMware (VCP Virtual Infrastructure 3). He is the virtualization and directory services subject matter expert for NYCE Payments Network, LLC (an FIS company), where he has been employed for over 10 years.
This was first published in August 2010