One of Nerdio’s primary features is our advanced auto-scaling capability for Azure Virtual Desktop. This enables customers to save up to 75% on their Azure Virtual Desktop compute and storage costs, which in most cases pays for the Nerdio licenses themselves within the first week of usage not to mention significant savings on top of that.
One question which I am often asked is “How does Nerdio’s auto-scaling capability compare to Microsoft’s built-in, native capability?” In this post, I will discuss both solutions, as well as the benefits of each. Let’s start with Microsoft’s offering.
Native Microsoft Auto-scaling
Microsoft’s auto-scaling technology is based on using an Azure Automation account, a PowerShell runbook, a webhook, and an Azure Logic App. You will need to go and create all of these. Once created, you have the following capabilities:
- Schedule VMs to start and stop based on peak and off-peak business hours.
- Scale out VMs based on number of sessions per CPU core.
- Scale in VMs during off-Peak hours, leaving the minimum number of session host VMs running.
There are some limitations, though:
- This solution applies only to pooled multi-session session host VMs.
- This solution can manage VMs in any region, but these VMs must be in the same subscription as your Azure Automation account and Azure Logic App.
- The maximum runtime of a job in the run book is three hours. If starting or stopping the VMs in the host pool takes longer than that, the job will fail. For more details, see Shared Resources.
- At least one VM or session host needs to be turned on for the scaling algorithm to work properly.
- The scaling tool doesn’t support scaling based on CPU or memory.
- Scaling only works with existing hosts in the host pool. The scaling tool doesn’t support scaling new session hosts.
- The setup process is quite complicated involving multiple PowerShell scripts–probably around 2-4 hours depending on your technical capability.
- It can be quite difficult for someone with limited Azure or AVD expertise to understand.
- For multiple host pools, you would need multiple scripts.
- Only basic reporting capabilities are available.
It is quite difficult to manage this configuration on an ongoing basis. Also, for multiple host pools you would need create and maintain multiple scripts.
Scaling Plans Update to Native Microsoft Auto-scaling
Microsoft now offers the configuration of Azure Virtual Desktop autoscaling directly within the native Azure Portal. Customers can still use the Azure Automation Accounts to configure Autoscaling if required.
Within the native Azure Portal, you must create a “Scaling Plan” and attach the scaling plan to a host pool. The scaling plans work on the following thresholds:
- Minimum percentage of hosts – This is the minimum number of session hosts available at times you specify.
- Capacity threshold – This is the value of % of used host pool capacity to determine whether hosts will be powered on and off.
There are four different periods which you can configure:
- Ramp-up – This is typically your morning workload.
- Peak Hours – This is typically your peak him, i.e., when most people are active.
- Ramp-down – This is typically when people start to log off.
- Off-peak hours – This is typically out-of-hours working.
The primary limitations which apply are similar to what they were previously. Compared to Nerdio’s advanced auto-scaling, the limitations are:
- The scaling plans do not look at CPU or memory statistics but are based on capacity thresholds. So even if your hosts use excessive CPU and memory, the scaling may not scale up or down.
- Scaling plans cannot create or delete session hosts; they must be pre-created.
- multiple scaling plans must be created and attached to host pools if different scaling configurations are required.
Nerdio’s auto-scaling technology is built directly into the Nerdio Manager application. This means that once you have deployed Nerdio Manager, you do not need to deploy anything else. The Nerdio auto-scaling technology has far more features than the Microsoft native auto-scaling technology, and saves much more money due to its advanced and customizable features. These features include:
1. Enable Auto-scaling at the flip of a switch
Using Nerdio Manager you can easily enable auto-scaling in under two minutes by literally flipping a switch. Compared to having to deploy all the native Microsoft tooling, this could be a huge time saver, especially for less experienced IT admins.
2. Automatically swapping out OS disks for lower SKUs
Nerdio will automatically swap out the OS disk type to a lower SKU to save on costs when VMs are stopped as part of the auto-scaling process. By doing this, you ensure that you are not paying for Premium SSD storage when you are not actively using it.
3. Customizable active host capacity
Using Nerdio Manager, you can set a Minimum Active Host Capacity. If you know what your minimum workload requirement is, it can be maintained automatically with Nerdio Manager.
This ensures that your capacity is available on demand when you need it, without having to wait for hosts to be created. For example, we can set the Base Host Pool Capacity to 10, and the Active Host Capacity to one, which means that 10 hosts will be created, but only one host will be active. When extra load is required, the additional hosts will be powered on via auto-scaling and be available for connections within minutes.
4. Customizable Scaling Logic
Using Nerdio, we can configure 3 separate types of scaling logic:
i. CPU Usage
We can configure the logic based on actual CPU usage and customize the trigger points for scaling up and down. We can also restrict the scale in hours to ensure that your workforce is not interrupted.
ii. Average Active Sessions
We can auto-scale based on the Average Active Sessions across your host pool. If you know for example your Host Capacity is around five users per host, once those hosts are full, we can scale new hosts based on actual user demand.
iii. Available Sessions
We can configure the scaling to ensure that there is always spare capacity available in the pool by configuring the Available Sessions.
Having three different types of scaling logic ensures that we can configure our workload to how we use it to ensure that you are only paying for what you need to pay for.
5. Pre-staging of hosts
Using Nerdio, we can “pre-stage hosts”. Pre-staging hosts means that we can ensure the required capacity is there whenever your business needs it the most. If you run a call center for example, we can ensure that there are, let’s say, 10 hosts available at 8am for when your users come in and start work.
You can also configure multiple pre-stage schedules. If you need to have separate working hours during the weekend, for example, or if you are an educational institute and need to set different schedules during the school holidays.
6. Customizable messages when hosts are shutting down
The Microsoft auto-scaling tools will just send a standard message when the hosts are shutting down. When using Nerdio, we can send a customizable message at pre-defined periods (i.e., 5, 10, 15, 30 minutes) and also instruct the auto-scaling engine to NOT log users off if they are still active, or have disconnected sessions.
7. Auto-Scaling for personal host pools
Nerdio also has auto-scaling for personal host pools. This enables us to turn off personal host pools at set periods of times (i.e., at the end of the workday), and then turn them on at, say, 8am, and have them switched off during weekends.
Personal host pools can be very expensive as most users expect them to be available at any time, but by using Nerdio, you can ensure that they are only powered on when they need to be, saving you lots of money in Azure compute and storage costs.
We can also have user-driven auto-scaling which will automatically start the VM when the user connects, and then when the user logs off the VM will be powered down and de-allocated at a time which is configurable. This ensures that you only pay for resources you actually use.
8. Storage Auto-scaling
Nerdio will also perform auto-scaling for your Azure Files or Azure NetApp Files. We enable you to set a minimum and maximum quota, ensuring that you will also have the performance and capacity required for your users, while saving you money. We do this utilizing three methods:
- Capacity – Nerdio Manager will automatically monitor the space usage and when space is running low, we will automatically grow the space for you, meaning that you will never run out of space.
- Performance – Nerdio Manager will monitor the latency of your storage and if it detects latency, it will grow the storage capacity therefore giving you more IOPS.
- Schedule – Nerdio Manager will grow and shrink capacity and performance of the storage based on a pre-defined schedule.
Nerdio reports every action that’s performed and displays it visually showing you the cost savings on a per host pool basis.
As you can see, Nerdio Manger gives the IT professional many options to configure auto-scaling to exactly how they want it to be, all within a few clicks of a button.
To achieve the same outcome within Native Azure, you would need to write hundreds of lines of PowerShell code or JSON Scripts and then amend those scripts anytime anything needed changing. Using Nerdio Manager you can easily achieve this without advanced scripting skills, therefore saving you time and money to use your resources where you really need them.
Learn more or start your free 30-day trial!