Between many topics and announcements, of which most were co-pilot inspired, we saw a spark in the eyes of our Azure team: "Autoscaling for personal desktop pools in Azure Virtual Desktop"!
What is autoscaling?
Autoscaling is a built-in feature that automatically starts and stops session host virtual machines based on user demand. You can set a schedule or use the “start VM on connect” option to start the VMs when you need them. You can also choose to deallocate or hibernate (currently in preview) the VMs when you log off or disconnect, saving resources and reducing costs.
Deallocating means that the VM is fully shut down and disassociated from the physical host, practically reducing the cost to zero, but demanding more time upon reinitiating the session.
Hibernating on the other hand, means that the VM is put into a low-power state while retaining its memory contents, allowing for quicker restart of the logged-off session.
Both options aim at avoiding running machines for idle or closed sessions, with the first providing a solution for longer off-time (ex. Outside business hours), while the latter state provides quick access to the previously closed session without the machine running at full capacity. Hibernation would provide the perfect solution for workstations which are turned on and off multiple times a day, calling for quick access without loss of the active session.
That said, Azure remembers[MH1] your work context when you restart your VMs. It keeps track of the programs you were using and restores them when you log back in. This way, you don’t have to waste time reopening everything and you can continue where you left off.
Now what is autoscaling for Personal Azure Virtual desktops?
Before being able to autoscale personal pools, Virtual Machines hosting the AVD desktops needed to be shut down manually. Azure architects and engineers were required to design and maintain a script or even scale the resources in the portal to keep idle machines from ramping up the bill.
Consequently, shutting down a session host manually caused virtual desktop users to lose their context, having to completely start over when booting their machine for the next session.
Due to the operational overhead and overall hassle, we are glad to see this feature become officially supported by the AVD platform, allowing for a "hands-off" approach when it comes to scaling personal pools. Context data is being saved and there is even the option to emulate a regular PC's "sleep mode" through the hibernate mode on the remote desktop!"
This feature allows you to have a consistent and personalized desktop experience in the cloud, without worrying about the underlying infrastructure. Furthermore, Microsoft puts in the effort to drive cloud adoption by making solutions such as Azure Virtual Desktop more financially accessible, by providing tools to reduce cost and improve operational efficiency.
Why should you incorporate Autoscaling in your AVD setup?
Although Azure is praised for its rapid deployments, and helps teams quickly get the right resources, it also comes with its challenges. Many organizations want to adopt the features and functionalities that Azure has to offer but are quickly held back by budgets spinning out of control. The first and foremost reason to adopt Autoscaling for personal desktops in your future AVD setup, is cost efficiency. One of the main benefits of moving workloads to a cloud provider such as Microsoft Azure is the pay-as-you-go billing model. Being able to reduce the time of usage on any given resource is paramount when trying to reduce the price tag and improve the overall cost efficiency of the environment.
Looking at Azure Virtual Desktop specifically, the main financial outlay stems from the backend virtual machines hosting the desktop sessions. These machines are billed per hour of usage, meaning that every hour the VM is shut off equals an hour where the cost is waived.
Are you just starting out with Azure Virtual Desktop or looking to future proof your setup?
Feel free to contact us!
Want to know more? Get in touch!