Let's start with our typical virtual desktop environment. Although the desktop operating system has been abstracted from the underlying hardware, the applications are still tightly integrated into that operating system. The ideal virtual desktop solution is to deliver fully stateless desktops and have the user elements added on the fly, depending on the user's profile. The fully stateless desktop model provides the most cost-effective solution by being easier to manage and requiring less infrastructure.
Today, there are a number of tools that can take care of delivering the user personalization, user data, and user profile elements to the desktop; however, applications are still delivered either as part of the base operating system image or using some form of application remoting or publishing.
App Volumes provides a layer of abstraction between the operating system and applications by delivering the applications in separate containers. These containers are called AppStacks and they integrate seamlessly into the operating system of the virtual desktop machine.
The following diagram shows the traditional, static model on the left and the App Volumes on-demand delivery method on the right:
As well as application containers, App Volumes provides the end users with their own container or virtual hard disk, into which they can install their own applications. This container, called a Writable Volume, "follows" them when they log in to different virtual desktop machines, bringing all their applications with them.
The following diagram illustrates the App Volumes model of having application containers (AppStacks) and user-writable containers (Writable Volumes):
So how do you get started? The first thing you do is create or capture an application that can be delivered by App Volumes. You start the process by installing the application on a virtual desktop machine, which is referred to as the provisioning machine. This provisioning machine is basically a vanilla installation of the operating system, with no applications installed.
When you start the capture process, an empty Virtual Machine Disk (VMDK) file, called an AppStack, is mounted on to the provisioning machine. Next, you start the application installation as you would normally do. All the files associated with this application are then redirected to the AppStack or VMDK file.
Once you have completed the capture process, the AppStack is set to read-only mode and is ready to be assigned to end users based on their Active Directory group membership. AppStacks can also be assigned to individual users or other groups.
For the users to be able to access the applications in their assigned AppStack, an App Volumes Agent runs on their desktop, mounting the VMDK file and making the application appear as if it were fully integrated and installed locally rather than running from an additional drive. This is how applications are able to be delivered to a user in real time, as AppStacks can be assigned on the fly.
As well as the applications that get delivered as part of the AppStack, a user is able to have their own disk or VMDK file on which they can install their own applications. This is called a Writable Volume and will also follow the user when they roam among virtual desktops, making it perfect for developers to have non-persistent virtual desktops.
In the next chapter, Chapter 2, Architectural and Feature Overview, we will dive a little deeper into what exactly each of the different components does, and then in Chapter 6, Working with AppStacks, and Chapter 7, Working with Writable Volumes, we will take a deeper dive into how App Volumes, AppStacks, and Writable Volumes work.