Gone are the days when AzureWatch was the only option for auto-scaling of Windows Azure cloud services.  Today, basic auto-scaling support is also offered in Windows Azure itself (free while in beta) and is available as a WASABi Enterprise Library for the do-it-yourself and host-it-yourself types.

This article examines the Pro's and Con's of each approach and explains when using AzureWatch's advanced features makes sense.  A quick reference guide is provided toward the end that documents the differences between three offerings in a side-by-side comparison table.

When it comes to ability to auto-scale, manage, heal and monitor various Windows Azure resources, Enterprise Library WASABi, native Windows Azure monitoring and autoscaling and AzureWatch all offer different features to satisfy different needs.

  • WASABi is great for folks who like to have complete control over their scaling implementation, do not mind tinkering with settings on lower level, and do not really need monitoring of such Azure services as SQL Azure or Storage.  WASABi allows users to deploy their own scaling engines, provide sophisticated XML-based configuration sets and basically tinker with things in depth.  Users running WASABi are also responsible for hosting and monitoring it.
  • Windows Azure's native support for auto-scaling was recently added into the platform itself.  This is a great option for users who prefer simplicity over flexibility and probably targets smaller or non-mission critical applications.  It is also great for users who are just starting out with Windows Azure and are not yet sure what features from an auto-scaling platform they need.
  • AzureWatch's strengths lie somewhere in the middle of the other two options.  It offers endless abilities to tinker with settings of its auto-scaling engine, albeit not at the same level of depth as WASABi, but at the same time it provides a nice configuration UI and a fully managed environment.   Furthermore, it supports monitoring of SQL Azure, Storage, and has a ton of other features that make it compelling for businesses running serious applications on the Azure platform.
    On top of supporting all of the customary auto-scaling options like upper/lower boundaries, throttling, etc. AzureWatch also allows scheduled-based scaling, ability to restart/re-image misbehaving VMs, scheduled-based shutdown-startup of servers, ability to scale based on rate of change in demand, ability to evaluate complex boolean rules, and tons of other features that its users have requested over the years to support their sophisticated monitoring and scaling strategies.
    AzureWatch is a commercial product not owned by Microsoft and while not expensive, it is not free and may not be the best choice for users who are just playing around with Windows Azure platform or who run small personal websites.

 

 

Windows Azure

WASABi

AzureWatch

Platform Coverage

     

Cloud Services (Web/Worker Roles)

Yes Yes Yes

Virtual Machines (in Availability Sets)

Yes No Yes

Virtual Machines (stand-alone)

No No Stop/Start/Reboot

Azure Websites

Yes No Yes

Azure Mobile Services

Yes No Not Yet

SQL Azure & Federations

No No Monitoring

Azure Storage

No No Monitoring

URL Endpoints

Monitoring (up to 2) No Monitoring (no limit)
       

Scaling Features

     

Frequency of Monitoring

5 minutes custom 1 minute

Performance Counter Evaluation

CPU Utilization Only Any Any

Queue Depths Evaluation

Storage & Service Bus Storage & Service Bus Storage & Service Bus

Scaling Cooldowns

Yes Yes Yes

Scheduled Scaling

No Yes Yes

Monitoring of Running Averages

60 minute (CPU only) custom up to 24hrs

Scale down to 0 servers
with Virtual Machines

No No Yes

Advanced scaling formulas with
running averages

No Yes Yes
       
       

Other

     

Simplicity of use and ease of
integration with Windows Azure

Simple Advanced Medium

Pricing

Free, while in beta Self-hosting
costs only
<$10 server/month

User Interface

Built into Windows Azure None AzureWatch
Management 
Studio