Q. How do I enable autoscale for my ARM VMs?
A. In the Azure Service Manager (ASM) model it was possible to create a group of VMs, place them in an Availability Set then enable autoscale through the cloud service that contained the VMs. Azure Resource Manager (ARM) does not use cloud services and the same type of autoscale based on pre-created VMs in an Availability Set is no longer possible through an inbox solution. It would be possible to create your own type of scale action through PowerShell and monitoring the resource metrics of the VMs however the supported solution is through the new VM scale sets capability. Through VM scale sets which are based off a single template that deploys a number of identical instances it is possible to trigger scale actions based on Azure Insights metric information that provide information on the utilization of the resources deployed via the VM scale set.
For more information on these technologies use the following resources:
- VM Scale Set Introduction - https://azure.microsoft.com/en-us/blog/azure-vm-scale-sets-public-preview/
- Automatically scale VM Scale Sets - https://azure.microsoft.com/en-us/documentation/articles/virtual-machine-scale-sets-windows-autoscale/
- Autoscale Settings - https://msdn.microsoft.com/en-us/library/azure/dn931953.aspx
- Best practices using Azure Insights for autoscale - https://azure.microsoft.com/en-us/documentation/articles/insights-autoscale-best-practices/
- Using Azure Insights and creating alerts - https://blogs.msdn.microsoft.com/cloud_solution_architect/2016/02/26/retrieving-resource-metrics-and-creating-alert-rules-via-azure-powershell/
- Templates for using autoscale - https://github.com/Azure/azure-quickstart-templates/tree/master/201-vmss-windows-autoscale