What is App-V?
NOTE: This post is part of a series. You might want to start at the beginning:
- “I’m new to App-V so how do I get started?”
- What is App-V and how does it work? (This Article)
- How do I get App-V?
- Getting Started with Sequencing
- To Manage or not to Manage
Microsoft App-V, the App-V being shorthand for “Application Virtualization,” is a component of the desktop and server operating systems that provides separation and isolation capabilities for applications running on the operating system. App-V also serves as a centralized delivery system for these virtualized applications that utilizes streaming technology to optimize delivery speed.
What is a Virtualized Application?
When an application is virtualized, the essence of the application has been previously captured and is dynamically instantiated on target machines where and when it is needed.
These virtual applications are the same applications that you might install on an operating system today, but thanks to the virtualization, installation and configuration is no longer needed.
We describe app virtualization as implementing a deep set of file and registry redirections (as well as other special OS spoofing techniques). But we can also view app virtualization as a layering technology. But unlike the boot or session based layering solutions, the layering is application based.
While Application Virtualization is often used to remediate issues with older applications on more modern OSs, you should not think of App-V as an OS Compatibility solution. Think of App-V as a flexible way to isolate applications from the OS and each other.
Implementing App-V is a means of separating applications from OS instances, which frees you to deliver any application to any desktop without fear of conflicts. As companies make moves to allow users to work from anywhere with any device, application virtualization enables the same kind of dynamic and risk-free application delivery promised by AppX (Windows Universal Apps) without the need for applications to be re-written and without the massive limitations on application features imposed by AppX technology today.
How does it work?
We start by packaging applications. This involves installing the application and configuring it with a special capture tool, called the App-V Sequencer. There will be a later blog in this series that covers an introduction to sequencing, but unlike layering and container technologies, often we can capture the package once and use it on multiple operating system versions, simplifying your application management needs. Ultimately, it is the job of this sequencer to capture the application and render it in a machine, OS, and user neutral format.
We then distribute the applications. There are several ways to do this, which will be covered in a later blog in this series, but ultimately you will probably assign these applications to either user or machine accounts in Active Directory. App-V uses a unique streaming delivery with caching, which allows for an extremely fast delivery (even for remote users) and off-line capabilities.
At the user’s operating system, when a package is “published” to the machine or user, The all-important integration points (referred to as App-V Extensions) are added directly to the operating system, and placeholders for file and registry settings are added in a special set-aside area for virtual applications..
The extensions themselves are not virtualized, as these are necessary to allow the OS, the user, and potentially other applications to be able to interact with the virtual applications.
The App-V client uses a combination of filter drivers and client service, to intercept appropriate file, registry, and other API calls to enable the application virtualization magic to occur. From the perspective of the application, it is installed in the normal Program Files location that is would be with a native install even though the files are in a separate file cache area on the disk (or even the package source share).
One of the biggest benefits to App-V in the enterprise is how it allows older programs that require the ability to write to areas typically locked down (such as HKLM or the folder the app is installed into) because these writes are redirected to safe areas.
What can be virtualized?
Most enterprise desktop applications can be virtualized with App-V. Of course there are restrictions, and situations that might work but are bad choices anyway.
We are constantly asked what percentage of applications can be virtualized, but there is no hard answer to that question. It really depends on your application mix, your desire to virtualize, and training. But the middle part of that sentence, “your desire to virtualize” is the key portion to consider. You are not going to deploy 100% through App-V, so some things will go out through another method. Maybe they will be in the master image for the operating system, maybe you’ll use SCCM (or other ESD solution) to deploy MSIs for native install, maybe you’ll use a masking (FSLogix) or layering (UniDesk, etc) product. App-V can probably support a much higher percentage of your applications than any one of the other techniques, so most customers will start with looking a virtualizing new application requests with App-V first, and using another method as a fallback.
Things that make an app a bad candidate include the following:
- Apps with drivers (although we can virtualize the user mode components and use App-V to deliver the driver as a native install).
- Apps with COM+.
- Apps with DCOM.
- Apps with Services that must run under a special service account.
- Apps with boot-time services.
- Apps that don’t work today.
A word or two about that last item… While App-V solves a lot of application deployment issues through virtualization, sometimes it causes issues too. You should expect to run into these applications. Some that don’t work today may get addressed in subsequent releases/patches to App-V. In others, people will develop creative workarounds. The number of apps that are unsolved today is greatly reduced, but you should expect to run into one. If you do, there is a great community (see previous post) to help.
The next tier, which I’ll call less-good candidates include:
- Apps with lots of integrations to other apps. We have techniques to handle this (connection groups and run-virtual), so some companies will virtualize these apps and some will not. Browser and Office integrations are the two most every company have to consider.
A commercial note
I believe training to be the key to increasing the percentage of apps deployable by App-V for any enterprise. Not to unsurprisingly, this also happens to be how I make my living (I can’t give everything away for free)! So when you are ready to become an expert, or if your company wants a quick-start program, be sure to check out what we can do for you here at TMurgent.