In this article, we’ll talk again about Microsoft Azure and, in particular, what Azure Virtual Machine Scale Sets are.
Azure Virtual Machine Scale Sets is an Azure service that allows us to scale up and down. What does scaling and scaling mean? What’s the difference between the two? Glad you asked!
VM scaling is when you increase the resources (memory and CPU) of an individual VM during peak usage. Virtual machine scaling is when you scale up the number of virtual machines based on your current usage.
Microsoft Azure Scale Groups
Now there are some scaling dependencies and some rules, so let’s go over each one and see what’s what.
When we use the Azure infrastructure to host our virtual machines, we have access to almost unlimited resources. How do we take advantage of the infinite expansion space? We use scales.
We can either increase the size of the independent virtual machine (scaling) manually or automatically, or increase the number of virtual machines that host the application (scaling). Now scaling basically means that you will resize the virtual machine, for example, from D2 to D3, but this in turn will result in a bit of downtime as the instance will need to be restarted.
It is also best to use Azure Availability Groups when configuring autoscaling for scaling scenarios, because the VM is restarted when its instance is updated, resulting in a loss of service. Having an availability set can help you reduce the loss of service caused by restarting a virtual machine.
Out of Azure
Now let’s talk about scaling. Scaling is when you dynamically or manually create multiple instances of the original VM image on demand to combine or cluster them for peak usage.
However, you might be wondering how Azure knows how to set up an application?
Well, it isn’t. When you create the main VM image for scaling, you also need to make sure that you create a JSON template to join the machine to the domain, set an administrator password, and so on. Again, IaaS is a complete scenario for hosting your virtual machines. This is not PaaS or SaaS where Azure manages the application side.
Take, for example, a scenario where you have a hosted RDS environment and want to scale your session hosts.
You will need to create one session host, configure it with all the software installed, and then create a golden image of it. This image will be used to create multiple virtual machines based on usage.
Now the problem you are facing is that you cannot just domain-join this image, give it a name, etc. Manually, as it is supposed to happen automatically. Instead, you create a JSON template (which will be covered in another article) where you put all your variables, and Azure will know what to do and when.
The above is an illustrative example of a solution. I hope you found this article helpful in understanding what Azure Scale Sets are, and I hope you will stay with it in the future. Enjoy!