Before engaging in a virtual desktop solution, the key question is, "What do you need?" As a virtualization architect, I have been involved in countless design and implementation projects. These range from simple proof-of-concept projects for 200 users to migrations for global implementations of 30,000 users. I have seen too many projects fail simply because the right questions were never asked.
One of the first items to determine is which flavor or flavors of VDI to use. Will traditional session-based computing (for example, hosted applications only) suffice or do you need to provide a full desktop? Will users need dedicated resources or can they share resources? Which applications will be available within the VDI space; all or just the most critical? How tightly controlled or locked down will you want this new environment to be? As you can imagine, there is no right and simple answer. In most environments, the answer is a mixed-bag solution.
When considering VDI, there are many factors to choose from, all of which will impact the design decisions. These factors include application compatibility (first and foremost), performance, manageability, scalability, storage, upfront capital costs, and long-term operating costs. Additional factors are reliability, ease of use, mobility, flexibility, recoverability, fault tolerance, and security. In the end, a technology solution should be there to support the business; the business should not be there to support the chosen technology. This means that IT departments cannot work in a vacuum. The driving forces must be what is good for the business and what empowers the application users.
Note
Any technology solution should be there to support the business; the business should not be there to support the chosen technology.
Your choice of VDI solution should be based on your business needs. To fully understand your needs and how they relate to VDI, your entire computing environment must be analyzed. The factors to understand when preparing for a virtual desktop solution include user data, personalization, application management, image management, and device management. These are business drivers that illustrate how users work in the current environment, and they must be understood for successful adaptation in any new environment.
User data includes personal documents, application data, and shared corporate data, all of which must be identified and managed. Home drive assignment, folder redirection, profile management, exclusions, and file synchronization are all viable methods to manage user data in a VDI environment. In order to gain the full benefits of mobility and flexibility within VDI, user data should be managed as its own layer to keep it separate from the operating system, as shown in the following figure:
Planning your personalization layer
User personalization settings are commonly known as profiles. Profiles typically include mission-critical elements such as core application settings and non-critical items such as favorites, backgrounds, and pictures. Although the non-critical elements may seem mundane, they are often necessary to ensure end-user satisfaction and acceptance. Profile management (or lack thereof) can greatly impede performance metrics measured around logon and logoff times when profiles are loaded or unloaded. Profile management is also essential to enable smooth roaming capabilities. Organizations will differ on how much personalization is allowed (none to virtually everything); it is important to identify what to allow and then optimize its management. We'll cover this in more detail in Chapter 2, Defining Your Desktop Virtualization Environment.
Note
User data and personalization impact the end users' perception of the environment. A negative perception by users can cause virtual desktop environments to fail through lack of acceptance.
Understanding your applications
Application management involves understanding not only which applications are installed, but also what and how they are used. Usage includes data requirements, compute resource consumption, companion applications, network bandwidth utilization, and access patterns (for example, are there midmorning or afternoon spikes, is the application only used at certain times such as during month-end batch processing, do users run the application consistently all day long, and so on). All of these considerations are used to build an application profile. Properly gauging application profiles is important to scale your environment with the proper amount of resources. Underpowered systems will become sluggish and hamper implementation, while overpowered solutions might unnecessarily consume resources, driving up the project costs.
Application delivery identifies how applications are delivered to the end user. This may primarily be dependent on application compatibility and interoperability. Some applications may need to be locally installed as part of the base image, others may be streamed as part of virtualization, and some may be hosted on application servers. Other determining factors include maintenance schedules such as update and patch frequency. Determining how and where applications are delivered may impact the overall solution. This will be covered in more detail in Chapter 5, Designing Your Application Delivery Layer.
Planning for operating system delivery
Image management is used to control the delivery and changes to base operating system images. This includes the initial base image design (operating system, core applications, and common utilities), patch management, antivirus configurations, application delivery, and version controls. Factors to consider are provisioning methods and finding a balance between common and unique elements. Chapter 6, Designing Your Virtual Image Delivery, deals with image management in more detail.
Anticipating device management
Device management is often an afterthought in many virtualization projects, but it should be considered upfront. It is not enough to consider whether you will use mobile devices; you should also identify which mobile platforms you will support. Other considerations are thin clients, laptops, repurposed desktops, kiosks, multimedia stations, and so on. Along with the device type, peripherals must be understood. Is there any specialty equipment or add-ons that are required for your environment, such as scanners, badge readers, or custom printers? Determine which types of endpoint devices might impact functional requirements.
Note
Understanding application workloads and user requirements is the biggest piece of the VDI puzzle. Choosing the right VDI technology is reliant upon completely understanding your environment and business objectives.
Defining your business use cases helps map users, devices, and requirements into a usable format. Business cases will vary in scope and detail; each case has its own usage and delivery requirements that might be unique. VDI does not include a one-size-fits-all solution; it should be designed with as much flexibility as possible. We will examine use cases more in Chapter 2, Defining Your Desktop Virtualization Environment.
The entire virtual desktop solution will still need physical infrastructure to support operations. This infrastructure will need to be designed for cost, scalability, and reliability. This includes analyzing your current capabilities to determine whether you can grow your current infrastructure or if you need to create a brand new design. Some organizations will choose new environments as part of a capital project budget. This aids in design and deployment since it becomes a parallel effort to existing operations. Chapter 3, Designing Your Infrastructure, will explore infrastructure design in detail. Have a look at the following figure: