Microsoft App-V is a platform intended to make applications available to users without ever installing those applications on individual endpoint computers. Instead, applications are virtualized -- delivered to endpoints from centrally managed servers. However, the way that App-V packages and supports the virtualized application promises no real changes to the way that application and its interface behaves.
The goal for Microsoft App-V is to allow applications to function even when complicated dependencies on other applications, middleware, plug-ins or other components might pose problems for conventional virtualization techniques like virtual desktop infrastructure (VDI) instances. It does this by allowing administrators to package complex sets of programs into a single entity. As far as the application user is concerned, the virtualized application looks and feels like a local installation, and it will store data locally on the Windows computer and registry without the need for network drive configurations.
While this might seem like an endpoint technology, Microsoft App-V will have a profound impact on the data center which can now host and deliver App-V application packages from servers across the network to users located anywhere. Endpoints can be traditional physical computers as well as VDI instances. App-V packages are streamed on demand so application packages don't need to be duplicated to every VDI instance. Administrators have complete control over the application package which can be updated or changed as needed.
So how does application virtualization compare to other virtualization techniques like virtual machines, VDI instances and containers (such as Docker containers)?
VMs abstract software from the underlying hardware and are often the best choice when multiple server instances must reside on the same physical system. But VMs are complete "machines", each containing all of the operating system, driver and application files needed to run each VM as a separate and independent entity.
VDI allows the creation of virtualized desktop instances which are specialized virtual machines that serve as endpoint user systems rather than servers. Each VDI instance is hosted (and all processing is performed) on a data center server. Users access their own VDI instance across the network, so each endpoint computer becomes a simple input/output terminal. Ideally, all VDI instances are based on the same "desktop image" file which is duplicated (and slightly personalized) for each user.
Containers are a different take on virtualization. Instead of installing a hypervisor first and then installing guest VMs on the hypervisor, the virtualization layer is installed on top of a server's host operating system and guest containers can reside on top of that -- each container shares the same underlying OS, so much of the duplication in operating systems and other components is eliminated. This makes containers smaller and more efficient than VMs. Containers are best deployed when a large number of identical applications must be rolled out on the server, which is ideal for cloud-scale enterprises.
Application virtualization using a tool like Microsoft App-V basically abstracts the application components and dependencies from the underlying OS. Each application (or set of related applications) is packaged and made available for download or streaming from a data center server. Once a virtualized application package is available to the endpoint computer, it functions just as if the application were directly installed on the computer.
It's important to note that each of these variations is not mutually exclusive, and all four approaches to virtualization can exist in the data center simultaneously to address a variety of business needs.
App-V 5.0 brings updates to native app experience
Application virtualization comparison
How to use App-V Package Accelerator