Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows Azure and dynamic elasticity

Is there a way do do dynamic elasticity in Windows Azure? If my workers begin to get overloaded, or queues start to get too full, or too many workers have no work to do, is there a way to dynamically add or remove workers through code or is that just done manually (requires human intervention) right now? Does anyone know of any plans to add that if its not currently available?

like image 520
Ryan Elkins Avatar asked May 19 '10 23:05

Ryan Elkins


People also ask

What is dynamic elasticity in Azure?

What is elastic computing or cloud elasticity? Elastic computing is the ability to quickly expand or decrease computer processing, memory, and storage resources to meet changing demands without worrying about capacity planning and engineering for peak usage.

What is the difference between scalability and elasticity in Azure?

The key difference is, scalable systems don't necessarily mean they will scale up/down - it's only about being able to reach peak loads. Elastic workloads, however, will recognize dynamic demands and adapt to them, even if that means reducing capacity.

Does Azure have Elasticsearch?

What is Elasticsearch on Azure? Elastic Stack on Azure is a deployment template that lets you deploy Elasticsearch clusters, including the full ELK Stack (Elasticsearch, Logstash and Kibana) in a fully automated manner.

Is Azure Elastic?

Accelerate the results that matter with Elastic on Microsoft Azure. Experience Elastic Enterprise Search, Observability, and Security from directly within the Azure portal. Together, we help shorten the path to relevant data insights so you can visualize results and take action.


2 Answers

Microsoft shipped the Autoscaling Application Block (Wasabi) to provide dynamic scaling. Some of the supported scenarios:

  1. Autoscaling both web and worker roles in Windows Azure by dynamically changing instance counts or performing application throttling.
  2. Autoscaling Windows Azure roles based on timetables.
  3. Autoscaling Windows Azure roles based on metrics collected from the application and/or Windows Azure but constrained by upper and lower bounds on the instance count per role.
  4. Preventing fast oscillations in the number of role instances with the stabilizer. The stabilizer can also help to optimize costs by limiting scaling up operations to the beginning of the hour and scaling down operations to the end of the hour.
  5. Monitoring and logging autoscaling activity.
  6. Sending notifications to preview any scaling operations before they take place.
  7. Encrypting the rules and other configuration in Windows Azure blob storage or in local file storage.
  8. Managing the autoscaler configuration by using Windows PowerShell.

A comprehensie sample application (Tailspin Surveys) showcasing all these features is provided (installation instructions are available here). Also, check out the Developer's Guide and the Channel9 video walkthrough.

The block is available as standalone download of binaries, source or via NuGet.

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

  • CloudCover Episode on autoscaling

  • p&p symposium talk "Windows Azure app scaling to need"

like image 199
Grigori Melnik Avatar answered Sep 17 '22 04:09

Grigori Melnik


There's a Service Management API, and you can use that to scale your application (from code running in 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.

like image 44
user94559 Avatar answered Sep 21 '22 04:09

user94559