Azure scale sets are a way to horizontally increase or decrease resources for your applications. Wouldn’t it be nice to provision a pair of web servers behind a load balancer, and then add a third or fourth web server once the load hit 75% of capacity? Even better, when the load on those web servers settles down, they could be removed to save you money? This is what an Azure scale set does. Think of the great uses for this; seasonal demand for a shopping site, event promotions that cause a short spike in traffic, or even end of the month data processing tasks could automatically scale out to meet the demand and then scale in to save money when not needed.
Building a Scale set
In the Azure resource manager portal, browse the services and click on “virtual machine scale sets” item. From there, enter in the information below for the set.
- Virtual machine scale set name: A name for the scale set you’re deploying. Make this descriptive for documentation purposes of course.
- OS type: The operating system that will live behind the scale set. Choose Windows or Linux.
- Username: The username that has permissions on the virtual machines. This user account is used to monitor performance of the virtual machine so that it can be scaled out when needed.
- Password: The password associated with the user account.
- Subscription: The subscription account used to pay for the services.
- Resource Group: A group of resources that will be used in conjunction with each other.
- Location: The region where the scale set will be deployed.
On the next blade, we’ll need to enter some information about what will exist in the scale set and some logic to determine when to scale out or in.
- Public IP address: The IP Address to be assigned to the public side of the load balancer.
- Domain name label: The domain name that will be associated with the load balancer.
- Operating system disk image: The OS image that will be housed behind the scale set load balancer. The list of images will be dependent upon the OS type you selected earlier.
- Instance count: The number of virtual machines to be deployed to begin with.
- Scale set virtual machine size: The size of each of the virtual machines in the scale set. Number of CPU, amount of memory, etc.
- Autoscale: The option to have it automatically scale for you or to require manual intervention.
- Autoscale minimum number of virtual machines: The lowest number of virtual machines in your scale set. Remember to thing about redundancy here. You may not want to let the set go down to a single host.
- Autoscale maximum number of virtual machines: The largest number of virtual machines that can be in the scale set. You might think this should be a really high number, but consider your workloads.
- Scale out CPU Percentage threshold: The performance metric used to determine if more servers are required.
- Number of VMs to increase by on scale out: When it’s time to scale out your machines, how many more machines should be added at a time?
- Scale in CPU Percentage threshold: The percentage when you’ll scale in your virtual machines. Example, machines hit under 25% utilization means removing a virtual machine in the scale set.
- Number of VMs to decrease by on scale in: The number of virtual machines to remove when a scale in action is triggered.
The next blade we’ll need to review the summary after it has passed all of the validation checks.
Click Finish and your scale set will be created in the Azure Resource Manager portal.