I got asked a pretty interesting question the other day. If an organization deploys Virtualized Applications or Desktops via a virtualized application solution such as XenApp why would they need to deploy Virtualized Desktop using VDI or vice versa?
I gave a breakdown on application virtualization and desktop virtualization in an earlier post. The basic difference is that application virtualization is based on a solution such as Windows Terminal Server while Desktop Virtualization is based on server based Hypervisors such as vSphere or XenServer. The desktops are then delivered using a provisioning/broker service such as XenDesktop or VMWare View.
A better question is why not use both together. On the surface VDI may seem to solve the same problems as application virtualization. But VDI isn’t a replacement for virtualized applications. In my opinion the best use of VDI is to add a greater level of flexibility to your virtual infrastructure. One of the largest challenges with supporting virtualized desktops in a virtualized application environment is that you are trying to deliver client desktops utilizing a server operating system. Also, resource management can become an issue as terminal services are not as scalable as hypervisor based solutions.
VDI allows you to deliver a much richer desktop experience to end users without a large investment on desktop resources and the associated administrative overhead. However, application delivery is still a challenge. On the surface there is no technical challenge in delivering applications with the desktop image. The challenge comes in maintaining the applications. In order to make a simple change to the applications within the desktop image while maintaining a single “Golden Image” you must redeploy the entire image to all the VDI instances. This requires downtime and can take hours with several hundreds of desktops. Most virtualized applications allow you to make changes on the fly without down time or even the user noticing the update.
Cost savings may or may not be a driver in implementing VDI. In looking at a VDI project you need to do a deep dive on what problem you are actually trying to solve and if you’d be displacing virtualized applications or augmenting the solution and adding additional functionality.