Sean's Virtual Desktop
Are Your Virtual Desktops Pets or Cattle?
Knowing the differences between the two will help you get a handle on what will work best for your environment.
Editor's Note: This is the debut column of Sean's Virtual Desktop. In it, systems administrator and virtualization veteran Sean Massey will tackle topics mostly relating to the burgeoning fields of virtual desktop infrastructure (VDI) and end-user computing.
There's a lot of talk about changing server management practices by using an analogy of pets and cattle. Pets, in the analogy, are unique. They're usually named in some way and nurtured through their lifecycle. When they break, they're fixed because they're not easily replaced. Cattle, on the other hand, are not unique and are identified with a number or a very basic name. If the cow has a problem, it's disposed of and replaced with a new one.
Most businesses today have to treat their servers like pets, simply because applications aren't designed for scalability. Although this can sometimes be addressed with costly solutions such as clustering, it isn't always supported, and will take time for applications to be rewritten to support the cattle mindset.
But there's one area where many businesses can take advantage of "cattle herd" management strategies: the end-user computing space.
Much like the servers that are treated as "pets," desktops, laptops and workstations aren't disposable. The user is too tightly coupled to the device. If that device breaks in some way, the user is less productive until it's fixed, and user applications and data need to be located and migrated when it's time to replace that device.
Virtual desktops provide a way to decouple the user from the physical machine into which they're logged. The actual work environment and user data are located safely in the datacenter, and a user who suffers a hardware failure can quickly log in from another device and continue where they left off.
There's been a philosophical debate over how to best provision virtual desktops for users. One approach is to have the desktop persist with the user's changes after the user logs out. This approach is known as a persistent virtual desktop. It provides both the user and the administrator with an experience similar to the physical machines they're used to, and allows many of the same tools to be used for managing the virtual machines (VMs) and the user's applications.
The problem with this method is that the user's tied to a specific VM, and it quickly becomes a pet. It needs to be cared for as if it were a physical desktop, and if the VM "gets sick" or fails for some reason, the user loses productive time while the VM is either restored from backup or rebuilt. Because the user's so heavily tied to the desktop, an admin can't just throw it away and provide a new one.
The other approach is a desktop that doesn't retain user changes when the user's done. In this scenario, the desktop may be rolled back to a known good state or destroyed upon logout. This approach, known as non-persistent desktops, utilizes desktops that are truly disposable: If something happens to them, they can be deleted and recreated automatically. This is the cattle approach to VDI.
There are some challenges with the non-persistent desktop route. In a typical non-persistent desktop, any changes the user makes are lost upon log out. This includes the user profile, necessitating a tool to capture and roam a user profile. This can be something as simple as Microsoft Roaming Profiles or VMware Persona Management, or something more powerful like RES Workspace Manager, Liquidware Labs FlexProfiles, or Immidio Flex+.
The other major challenge is application deployment. When I first started deploying non-persistent desktops a few years ago, the only options for handling different application workloads was to create separate desktop golden images and pools, or to use ThinApp. Both of these options created significant management overhead. Deploying a new application could even require every desktop pool to be recomposed.
Application deployment technology for non-persistent desktops has improved significantly since then. There are a number of layering solutions tailor-made for virtual desktop environments that can support more than 99 percent of applications. These options include Unidesk, Liquidware Labs FlexApp and VMware AppVolumes.
Know Your Licensing
It's important to understand how your applications are licensed when selecting an application layering solution. Some applications might be licensed by machine name or hardware ID, and might not work properly when users are assigned non-persistent desktops. Also, software that's purchased retail might not work properly from a licensing standpoint, as these licenses are tied to specific computers, and they might need to be converted to volume licenses to work properly.
If you're planning to start a virtual desktop initiative in 2015, you should strongly consider a cattle approach to management. It can provide your users a persistent desktop experience with the disposability of non-persistent desktops; and, while it may require new tools and management techniques, it also allows IT staff to be more flexible and responsive in provisioning new applications and meeting the demands of the business.
About the Author
Sean Massey is a systems administrator from Appleton, Wisc. He blogs about VDI, Windows PowerShell, and automation at http://seanmassey.net, and is active on Twitter as @seanpmassey.