I really like scale sets. It lets you create and manage up to 1000 load balanced VMs per availability zone using windows or Linux images. (We can have flexible or uniforms modes for orchestration which dictates if you go down the homogenous VM route or a mix, where a mix is the flexible option.
There are many other benefits too apart from scaling, such as built-in load balancing options, increased resiliency via 3 Availability Zones and from a cost perspective you can couple scale sets with Azure Hybrid benefit or even use reserved instances – cost is important in the cloud!
Another thing I like is automatic in-guest patching, with this feature Microsoft will automatically install security / critical patches to the OS and failed installs are automatically retried, naturally if using availability zones then the updates are not done all at once and are applied in batches. For this post I want to show you where you define this. When you go through the process of building your VM under availability options you will see scale sets. Select it and it will take you to another setup.
I want this spread across 3 AZ
Then you need to decide on 2 orchestration modes we spoke about earlier.
Study this link to see the difference – https://docs.microsoft.com/en-gb/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-orchestration-modes#a-comparison-of-flexible-uniform-and-availability-sets
The important area during the creation of the scale set is the scaling tab
Here you can build your custom policy based on thresholds, for example when 75% CPU for 10 minutes I want to scale out by 2 instances to cope with the demand.
Likewise, for when the CPU drops, I want to scale in.
If you want to access the below polices then you need to switch to uniform mode.
A really powerful feature for virtual machines.