VDI projects require considerable underlying and complimentary infrastructure to work well.. The scale and scope of these projects into themselves is left to other books, but we can quickly cover them here for some background. It is important to also be able to speak about these subjects and interact with the team or teams managing the infrastructure on which a VDI project runs on top of.
The backend storage assigned to the project should be excellent. Ideally, it will be architected with the golden image on flash storage with differencing disks linked back to the golden image. The differencing disks would also reside in a flash memory pool. If this sounds expensive, it is because it is. High-speed 10 GB Ethernet or even fiber channel connectivity would be in play as well.
CPU considerations are generally not the bottleneck, but depending on use case very well can be a strong factor in performance. One consideration that often goes unthought of is NUMA spanning, where a virtual machine's CPUs are actually resident on multiple physical processor sockets on the host system. The communication from one core to another in the VM then is slow as it has to pass along the QuickPath Interconnect (QPI) bus. Quality hyper-visors will enable disallowing NUMA spanning for VMs.
Another consideration is whether users require GPU acceleration for viewing video (for example, stock traders watching Bloomberg), or what about engineers running AutoCAD? If so, the traditional blade server chassis used to achieve maximum density may not suffice. This expands the cost of the system as a whole, as density per host usually decreases in this scenario and the chassis with GPUs tend to be larger, generate more heat, and consume more power, all of which add to the final operating cost of the solution.
The user profile disks (UPDs) are another factor to consider as well as application virtualization or layering technologies. These increase the complexity of the image creation process as well as make determining the root cause of problematic issues such as blue screens a daunting task.
Application virtualization is a technique whereby the application is bubbled or otherwise contained as a unique entity unto itself. Now it still requires the OS to run and so forth. But it is an object, so to speak. Then, the application can be streamed into the image and launched at request time versus being baked into the master golden image. There are arguments of pros and cons for this that could make up a whole chapter or two. Sometimes this technology fits, while sometimes it appears silly and cumbersome.
Layering technologies such as Citrix Unidesk allows a similar approach as application virtualization. But instead of each app sort of streaming in, when the user logs on to the guest image, it is presented based on the profile of the user. What apps does the user need? Oh A, B, and C? Okay, let's provide the base OS layer, then layer on top the strata of those applications. This sounds odd at first but the technique is actually quite fast and efficient.
User profile disks are a method of bubbling the user data, the documents, downloads, desktop folders, settings, registry data, and so on of the user into a container. This is then merged at logon. Microsoft has a technology for this (UPD) that is native to Hyper-V, and similar concepts have existed for some time with Citrix and VMware.