Windows Azure and Dynamic Elasticity

Is there a way to make dynamic elasticity in Windows Azure? If my workers start to overload or the queues start to become too full, or too many workers have no work, is there a way to dynamically add or remove workers using code or is it just done manually (human intervention is required) Now? Does anyone know of any plans to add this if it is not currently available?

+5
azure autoscaling
source share
5 answers

There is a service management API, and you can use it to scale your application (from code running on Windows Azure or from code running outside of Windows Azure).

http://msdn.microsoft.com/en-us/library/ee460799.aspx and http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=windowsazuresamples&ReleaseId=3233 .

+3
source share

Microsoft sent an Autoscaling application block (Wasabi) to provide dynamic scaling. Some supported scenarios:

  • Autoscale both the web and work roles in Windows Azure by dynamically changing the number of instances or by throttling the application.
  • Schedule-based Windows Azure role auto-scaling.
  • Autoscale Windows Azure roles based on metrics collected from the application and / or Windows Azure, but limited by upper and lower bounds on the number of instances for each role.
  • Prevention of rapid fluctuations in the number of role instances with stabilizer. A stabilizer can also help optimize costs by limiting scaling operations to the beginning of the hour and reducing operations to the end of the hour.
  • Monitoring and recording autoscaling activity.
  • Send notifications to preview any zoom operations before they take place.
  • Encryption of rules and other configuration in the BLOB storage for Windows Azure or in the local file storage.
  • Manage autoscaler configuration using Windows PowerShell.

An example comprehensie application ( Tailspin Surveys ) demonstrating all of these features (installation instructions are available here ). Also, check out the Channel9 Developer's Guide and Video.

The block is available as an offline download of binary files , source or through NuGet .

Here are a couple of conversations / demos showing Wasabi in action:

+5
source share

Windows Azure has just added an auto-scale feature built into the platform. Now it’s trivially easy to configure your autoscaling rules directly on the management portal: Configuring autoscaling based on CPU utilization in Windows Azure

See announcement and demo . I also wrote a post comparing Autoscale Windows Azure with Wasabi and setting out the way forward.

+3
source share
  • Create a queue named autoscale.[your_role_name].instance_count
  • On the management portal, set the auto-scale to Queue .
  • Set the Target Count field to 1 .

Now you can use the standard enqueue and dequeue operations in this queue to control the number of worker role instances. You have 7 days to process the message before it expires, so you can create a working role that can ensure that the number of messages in the queue keeps track of your target instance account.

If you use dynamic elasticity, you probably already have a role-based brain controller, so this is probably not a problem.

0
source share

The open-source Lokad.Cloud project for Windows Azure contains a distributed artist structure. Among other things, it provides autoscaling with the provisioning function of VM resources .

-one
source share

All Articles