In my last article, Detangling Virtualization Options: The VDI Difference (http://www.2x.com/blog/2010/07/virtualization/detangling-virtualization-options-the-vdi-difference) I briefly mentioned one option for delivery of virtualized applications in the VDI environment: Microsoft’s Application Virtualization (App-V). This time, I want to delve deeper into that technology: what it is, how it works and how to extend its functionality with 2X solutions.
Methods and benefits of virtualizing applications
When you get right down to the basics, computing is all about applications. Computer users don’t really care about the operating system; they care about the programs that they use to do their work. Traditionally, those applications were installed on each user’s local computer. This works, but it’s an inefficient way to provide users with applications. You need to install a separate copy of the application to each machine, and then it must be maintained and updated on each machine. Software deployment and management systems can make this easier, but there are still better ways.
Applications can be delivered to users on a virtual desktop; that is, the entire operating system is virtualized. This is the basis of the Virtual Desktop Infrastructure (VDI) and has advantages, but in some cases you don’t want or need to deliver an entire virtual OS; you just want to deploy one or more virtualized applications. Application virtualization can deliver the virtualized apps so that they appear to be running on the local computer alongside locally installed apps. Virtualized applications can also be run in a Microsoft Remote Desktop Services (RDS) VDI; in fact, Microsoft’s VDI licensing includes a license for App-V.
Either way, a big advantage of virtualized applications is that the applications can run on a computer without being installed on that computer. This eliminates problems caused by file contention and overwriting, Registry conflicts and variables between different installed instances of the OS. Often the different applications installed on a computer don’t play well together. By virtualizing applications, they can be isolated from one another because each application is running in its own virtual environment. From the user standpoint, the great thing is that even though the applications are isolated, they can still communicate with each other and with local applications so that you can, for example, still copy and paste from one app to another just like you do with local applications.
Another benefit of application virtualization is that you can deliver an application to particular users, regardless of what machine(s) they are logged in with. App-V uses the Active Directory group membership to determine what apps are made available to a particular user, so the user can immediately use whatever apps he/she needs to do the work, even though they aren’t installed on the machine being used.
App-V History and Overview
Microsoft App-V is based on technology developed by Softricity, a company that was acquired by Microsoft in 2006. It was initially called Microsoft SoftGrid, and complemented Microsoft’s other virtualization offerings: Virtual Server, Virtual PC and Hyper-V, as well as their Terminal Services presentation virtualization technology.
App-V provides another way to deliver server-based applications to client computers for better centralized control of applications and application data (which is stored on the server). It’s important to understand that since the applications are executed locally, they still use local resources like installed applications. App-V applications can be cached on the client computers for faster performance or you can set policies prohibiting them from running from cache. Policies also control user access to the applications.
How App-V Works
Applications are prepared for virtualization using the App-V Sequencer tool. The App-V Application server hosts the virtualized applications and streams them to the clients, where they are executed. The App-V client software is installed on the client computers and it presents the virtualized applications that the user is authorized to access. There are two different clients, one for Windows Desktops and one for Remote Session Hosts.
The App-V technology is powerful, but it’s not simple. It involves a number of components, including:
- The Application Virtualization client
- the App-V management server
- The management console
- The data store
- The App-V management web service
- The streaming server
- The sequencer.
The machine that contains the server contains can be Windows Server 2003/R2 or Windows Server 2008/R2. The Sequencer, which you need if you want to package (sequence) your own applications, is installed on a separate machine. Virtual application packages are different from traditional installers – because they deliver the application without actually installing it.
Packaging applications can be a complex operation because you need to be very familiar with the application itself and with the Windows Registry, user profiles, environmental variables, application troubleshooting and VB scripting. The App-V virtual environment that creates a virtual Registry for each application and thus keeps the applications from conflicting with one another is called SystemGuard. Another App-V feature, Dynamic Suite Composition (DSC), can merge two SystemGuard environments so that two virtualized applications can access one another’s virtual Registries and file systems.
The App-V client can be installed on XP, Vista or Windows 7 (32 bit only). The App-V management server handles the publishing requests from clients. The management server checks the App-V XML cache, which lists all the App-V applications, file associations and policies, to get the user’s application list, and creates an XML document that contains the information for that specific user. The client then uses that document to determine configuration information for the application. The XML cache is permanently stored on a SQL database, which can be on a SQL server or SQL Express.
A nice feature of App-V is that administrators can control the file associations, so that you assign which program will open files with a specified extension. Even if a user manually overrides this and sets a different application to open that file type, the virtual application will associate itself with the file type and overwrite the change whenever the client computer requests a publishing refresh.
Your first step in devising a deployment plan for App-V in your organization is to which applications you need to virtualize. That means you’ll need to collect and analyze information regarding the applications that are being used currently, how, by whom, and how often.
When we talk about how the applications are being used, that includes whether users are using them on site or remotely. How many telecommuters or mobile users do you have? What type of work are they doing with the applications? The best design for your App-V deployment will depend on the answers to these questions. You can deploy App-V in any of the following ways:
- MSI deployment (standalone), whereby the application is installed via an MSI file and no management server is required. Thus the app is managed and updated in much the same way as a local application.
- Streaming (lightweight), which uses App-V streaming services, IIS or SMB shares to deploy the files to the client computers. Again, no management server is required, but you don’t get reporting, metering and license enforcement. You can use Microsoft System Configuration Manager 2007 SP1 or above to deploy virtual apps in this way.
- Full infrastructure, which uses a management server (or servers) to control policies, and a SQL server to handle publishing refresh requests. When you have multiple management servers, you use a network load balancer (NLB) to route the requests to the available management server.
Note that streaming applications across a wide area networking connection can result in performance problems. It’s better to obtain only the application authorization from the central server across the WAN and have Application Source Root (ASR), Icon Source Root (ISR) and OSD Source Root (OSR) files streamed from a local server.
You can find detailed information and instructions for each of these deployment models in the excellent book Mastering Microsoft Virtualization by Tim Cerling et al and published by Sybex.
App-V and Remote Desktop Services
Windows Server 2008 R2 Remote Desktop Services (RDS) replaces Terminal Services and offers a way to deliver virtualized applications to users who are using either thin clients or full featured PCs. As mentioned previously, App-V itself is not a thin client solution nor a replacement for RDS. However, it can be used in combination with RDS. You can deliver App-V applications to your RDS servers and then use RemoteApp to present them to your thin (or thick) clients over RDP.
Since the Windows Server 2008 version of Terminal Services, we’ve been able to deliver individual applications via RDP using the RemoteApp feature. However, sometimes problems arise with application conflicts in RDS deployments. If applications conflict, they must be run on separate session hosts (the RD session host is equivalent to the former Terminal Services application mode server). This results in a form of server sprawl and managing many RDS silos is expensive and takes a great deal of administrative time and effort.
Using App-V for Remote Desktop Services, you can reduce or eliminate software conflicts, since different applications run in their own isolated virtual environments. You can also run multiple versions of the same application, and you can run many applications that didn’t work with Terminal Services/RDS. Because you don’t have to worry about application conflicts, less testing is required before deployment, which makes for faster deployment and lowers administrative overhead/cost. You can consolidate RDS servers and get a better return on investment from your RDS servers.
A really big advantage of using App-V with RDS is that it makes application deployment so much easier and faster. Previously, when you installed a new application on a Terminal Server/RDS Server, you had to log off all users and change the mode. With App-V, you can deploy applications without having to log users off or reboot the server. Likewise, it makes it easier to install application updates.
App-V for RDS version 4.6 now supports 64 bit operating systems. It can be installed on Windows Server 2003 32 bit, Windows Server 2003 R2 32 or 64 bit and Windows Server 2008 32 or 64 bit and Windows Server 2008 R2 64 bit. It can be downloaded from the Microsoft web site at http://www.microsoft.com/downloads/details.aspx?FamilyID=e633164f-9729-43a8-9149-de651944a7fe&displaylang=en
The App-V license is included in the Windows Server 2008 R2 Client Access License (CAL) so no additional client license is required.
App-V and 2X Application Virtualization
2X ApplicationServer allows you to easily and securely deliver applications installed on a Terminal Server/RDS server to remote clients and integrate them with the users’ local desktop and taskbar. Adding App-V to the mix provides all of the added benefits discussed above to the virtual environment, increasing user satisfaction and decreasing administrative “hassle factor.”
Whereas you can publish applications with Windows Server 2008’s RemoteApp, 2X ApplicationServer gives you functionality that you don’t get with the Microsoft solution. This includes the ability to filter applications for users and groups, resource-based load balancing across Terminal servers/RDS servers, support for a farm-oriented infrastructure (with server groups within a single farm) and centralized published application management. You also get publishing server redundancy, single sign-on and a dynamic web portal for accessing applications via a web browser.
One of the most important benefits of using 2X with App-V is the ability it gives you to extend your virtualized infrastructure beyond Windows clients, so that users can enjoy all the advantages of application virtualization while working from a diversity of devices. 2X provides client software for the following platforms:
- Mac OS X
These are already available and work with App-V, giving you vendor independence when it comes to choosing the right desktop operating system for each user’s purposes. You can stretch your budget by deploying Linux systems for some of your users, and/or you can provide Macintosh systems to those users who need to be able to run Mac applications. Many companies today don’t want to be locked into a “one size fits all” OS choice, and 2X software frees you from that limitation – while still allowing you to get all the benefits of virtualizing applications with App-V and RDS.
No longer are desktop and laptop computers the only systems that corporate users connect to the network. One of the big buzzwords in the IT world today is “consumerization.” It refers to the influx of technologies into the business world that originated in the consumer market. We’re talking about devices such as the iPhone, iPad and other smart phones and tablet devices. This trend is driven by dual forces: the entry of “Generation Y” – those so-called digital natives who grew up with computers – into the workplace and the continuing economic recession.
Gen Y workers, much more than their older counterparts, see their devices as extensions of themselves and blend their work and leisure lives to a greater extent, as well. They want to choose the hardware they use and they’re willing to pay for it themselves – but they expect to be able to connect it to the corporate network to get their work done. Companies that might have taken a hard line against this in the past now find the idea of having employees supply their own devices an attractive one. It can be a win-win situation; however, it can be a nightmare for IT departments tasked with supporting so many different platforms and devices.
Application virtualization makes a lot of sense in this scenario, as it allows the apps to be centrally controlled so that IT doesn’t have to install, support and update the applications on a plethora of different devices. Unfortunately, Microsoft doesn’t provide a way to use App-V with these consumer devices – but 2X does. 2X has the following clients in development and soon to be released in beta:
- iOS (iPhone and iPad)
With the 2X client installed on the device, users can access virtualized applications wherever they may be, making them more productive. This helps you get the most out of your application virtualization solution.
Application virtualization solves many of the problems IT departments have grappled with in the past, eliminating the need to install applications on individual client computers and isolating applications from one another, for a more stable and secure computing environment. Microsoft’s App-V provides a sophisticated solution for virtualizing applications, and can be combined with Terminal Services/Remote Desktop Services to deploy applications more quickly and easily, take away the worry about software conflicts and reduce the need for testing, thus reducing administrative overhead and TCO.
The problem with App-V is that it’s designed to work with Windows clients only. Today’s networks typically must support multiple platforms, including non-traditional devices such as smart phones and tablets. 2X Software makes it possible for you to extend your virtualized application infrastructure to support Linux, Mac OS X, iPhone, iPad and Android. You get all the benefits of the Microsoft solution along with the vendor independence you need.