VDI high-level architecture – how does it work?

How does VDI work? Let's start with the end user and how they access a virtual desktop machine. From their endpoint device (a PC, thin client, or mobile device), the end user launches the client software, which is the Horizon client in the case of VMware, or they simply open a browser. Either way, this connects them to a connection broker using its hostname or URL. The job of the connection broker in the first instance is to authenticate the end user and then to manage the available resources and connect the end user to the appropriate virtual desktop. The desktop that's delivered to them could be based on their physical location or on a departmental basis where there are different desktop configurations depending on the context of that user.

The following diagram describes, at a high level, how VDI works:

In the first VDI solutions that came to market, there was no concept of a connection broker and instead, an end user would connect directly to a virtual desktop machine on a 1:1 basis. It was like picking up their desktop and moving it to the data center.

Once an end user is connected to a virtual desktop machine, the screenshots, or the display of the virtual desktop machine, are sent over the network to the client software or browser on the endpoint device using an optimized delivery protocol. To enable the end user to interact with the virtual desktop, the mouse movements and keystrokes are then sent back to the virtual desktop machine over the network via the same protocol.

Therefore, VDI desktops are more secure as no data leaves the data center, but instead, just the screenshot updates or pixel changes are sent over the network. As per the previous analogy, it's like picking up your PC and putting it in a data center that's miles away from your home and then having your keyboard, mouse, and screen at home with very long cables back to the data center.

That's VDI from a connectivity perspective, but let's focus on the virtual desktop itself for a moment and look at how the architecture differs from a desktop in the physical world. VDI desktops are typically built on demand, that is, when a user logs in and requests a desktop resource. To help manage costs, you would typically deploy a non-persistent desktop model (as discussed in Chapter 2, Understanding Horizon 7 Architecture and Components) whereby users don't own their desktop and would have a new desktop built for them each time they log in. Therein lies one of the key differences between virtual and physical desktops.

As we just discussed, a virtual desktop typically gets built on demand, bringing together the different components that make up a full desktop environment. The operating system, user profile, desktop policies, and applications are all treated as separate, individual components, abstracted from the underlying machine, and then delivered back together to create the end user's desktop experience.

This is referred to as the composite desktop model, which is shown in the following diagram:

The key take away here is that virtual desktop machines need to be treated differently from physical desktops, and to reap all the benefits that virtual desktop machines offer, they should be built from the ground up and managed as virtual machines from day one, using some of the components that have been specifically designed for the management of VDI. We will discuss this in the next chapter.