How to autoscale virtual machines(IaaS approach) in azure instead of web/worker role autoscaling in azure?
-
1you can't do that with WASABI. And frankly, I almost always advise customers that they don't really need Auto Scale. Auto Scale in IaaS is possible, but it requires far more work (and explanation) then it does in PaaS. So if you really want auto scale - go for PaaS! – astaykov May 08 '13 at 06:42
3 Answers
You can now Autoscale Virtual machines in Azure directly in the Azure Management Portal. ScottGu has a post about it on his blog.
The important thing to autoscale VM's is you must proactively provision the Max # of VM's you think you'll need to handle your peak capacity, and add them to the same availability set.
For example, if on the busiest day of the week it takes 6 machines to handle all of your traffic, then you need to create 6 instances and install your application on it, configure it to handle traffic etc.... and then add it to an availability set with the other 5 machines.
Once you've done this, you can navigate to the Cloud Service that contains all of your virtual machines and click on the Scale tab. You should see a list of your availability sets, and it should tell you the # of machines you can scale over. Choose a metric (either CPU or Queue today), and then range of machines you want to scale between. You can scale between 1 and the total # of machines.
When load is low -- Azure will turn off machines (so you don't have to pay for them), and when load is high, Azure will turn those machines back on.

- 87,323
- 22
- 191
- 272

- 181
- 1
- 4
Auto-scaling on the IaaS level doesn't really make sense. Even if azure could detect high CPU usage and start a new VM based on it, what then? you still need to install your application on that VM automatically somehow.
What you are looking for is something that runs your app on azure, and installs new instances on new VM's if necessary. That "something" is called PaaS enabler. Basically it is another abstraction level between your app and the azure IaaS.
there are a couple of them out there : Cloudify, CloudFoundary, Juju
as far as i know, only one that supports Azure is Cloudify. you can check out how to configure azure using Cloudify here : Configuring Azure
you can also check out the community - Cloudify Forum, or post questions here for assistance.
Disclaimer: I work for Gigaspaces, developing the Cloudify product line.

- 511
- 1
- 3
- 11
-
Could u plz elaborate how cloudify offers virtual machine scaling. – user1974769 May 22 '13 at 04:06
-
Regarding Eli Polonsky's answer in 2, what if my VM already has my app installed and ready to go. Would it make sense to auto-scale on the IaaS level? – user3407530 Mar 11 '14 at 18:44
-
No it Does Not make sense, as you have to find a way of data synchronization between your VM after they retired from the task for before they becoming available in high traffic times. – Mohammad HS Farvashani Dec 20 '15 at 20:00
-
In my case I don't need data synchronization, I'm using Azure SQL. Can I just duplicate a VM if needed? And tear it down once the usage is below a limit? – Csaba Toth Apr 06 '17 at 02:19
According to this it's possible to scale out IaaS with Availability sets by pre-provisioning the number of boxes: https://blogs.msdn.microsoft.com/kaevans/2015/02/20/autoscaling-azurevirtual-machines/

- 10,021
- 5
- 75
- 121