Technical Automation Blog | NudgeIT

Maximizing AVD User Experience: A New Approach

Written by Pavel Rozenberg | Jun 12, 2023 10:12:04 AM

Maximizing Azure Virtual Desktop (AVD) User Experience: A New Approach

The increasing popularity of Microsoft's Azure Virtual Desktop (AVD) comes with the inevitable challenge of maximizing user experience. While Microsoft's native management tools offer robust functionalities, they often fall short in delivering the optimal user experience that modern businesses need. This is particularly noticeable in scenarios such as scaling mechanisms and session controls, which present certain limitations in their current form.

 

The AVD Scaling Challenge

Microsoft's AVD scaling mechanism operates on predefined schedules, indicating when session hosts should be activated or deactivated. While this mechanism covers some use cases, it's not a one-size-fits-all solution for all businesses.

The Session Control Issue

Similarly, the native session control mechanism operates in only two modes – even distribution or breadth-first (filling up each host sequentially). However, the built-in load balancer doesn't consider compute resources (CPU and RAM), which can lead to challenges.

Consider a scenario where you have multiple hosts with a maximum session limit of 20 users per host. One of the hosts experiences a surge in CPU usage while maintaining 12 sessions. The built-in session control would continue assigning user sessions to this busy host, leading to sub-optimal user experiences.

Another concern is when some hosts encounter issues requiring all active users to log off. If the other hosts are already busy, some users may not be able to log back in, further impacting user experience.

 

A New Approach to Maximize User Experience

To tackle these challenges and maximize user experience, we've reimagined the use of AVD on an Azure scale, leveraging services like Azure VM reservations, Logic Apps, Function Apps, Azure Automation, and Azure AD.

Unlike the scheduled VM turn-off/on provided by Microsoft's scaling mechanism, we explored the VM Reservations service to calculate cost savings. For example, running a VM between 9 and 11 hours a day almost equals the cost of a 3-year reservation of that VM. Plus, reserved VMs can be always on, eliminating the need for scheduled AVD pool scaling.

 

The Deallocated Host Buffer

To handle busy hosts that cannot serve more user sessions, we keep some hosts in the 'Deallocated' state. These hosts don't incur cost except for the storage space they occupy. They can be quickly spun up in cases of high load or multiple host failures, ensuring a seamless user experience.

 

Enhanced System Health Monitoring

We've also added a system health monitoring module to alert and act on significant events. For instance, recurring 'Winlogon' error events on some AVD hosts can prevent users from logging in. Our system responds to such events with a drain mechanism that logs off all 'Disconnected' sessions and requests 'Active' users to log off. The host is then rebooted, ensuring minimal impact on user experience.

Through this approach, we aim to ensure optimal user experience on AVD, efficiently addressing challenges related to scaling mechanisms, session control, and high session volumes. By intelligently integrating and using Azure services, we can provide a smoother, more responsive AVD environment for your business needs. If you want to know more, get to talk to one of our Azure Virtual desktop automations specialists.