One of the key features of the Cloud is the on-demand scalability, which lets the cloud application developers to scale up or scale down the number of compute resources hosted on the Cloud. Auto Scaling provides the capability to dynamically scale up and scale down your compute resources based on user-defined policies, Key Performance Indicators (KPI), health status checks, and schedules, without any manual intervention. Auto Scaling is an important feature to consider when designing and architecting cloud based solutions, which can unleash the real power of Cloud to the apps for providing truly on-demand scalability and can also guard the organizational budget for cloud based application deployment. In the past, you have had to leverage the the Microsoft Enterprise Library Autoscaling Application Block (WASABi) or a services like MetricsHub for implementing Automatic Scaling for your cloud apps hosted on the Windows Azure. The WASABi required to host your auto scaling block in a Windows Azure Worker Role for effectively implementing the auto scaling behaviour to your Windows Azure apps. The newly announced Auto Scaling service in Windows Azure lets you add automatic scaling capability to your Windows Azure Compute Services such as Cloud Services, Web Sites and Virtual Machine. Unlike WASABi hosted on a Worker Role, you don’t need to host any monitoring service for using the new Auto Scaling service and the Auto Scaling service will be available to individual Windows Azure Compute Services as part of the Scaling.
In this post, I will demonstrate how to scale out real-time Socket.IO apps with Windows Azure Service Bus by leveraging the Node.js module Socket.IO-ServiceBus. The Node module Socket.IO-ServiceBus lets the Node.js developers scale out the Socket.IO apps to multiple servers, which will work with Socket.IO store, provided by Windows Azure Service Bus Topic. The only Windows Azure component you need to scale out your Socket.IO apps with Socket.IO-ServiceBus, is Windows Azure Service Bus Topic. You can deploy your Socket.IO apps into any cloud platform or on-premise servers and, the apps deployed in multiples servers, that will be work through the Windows Azure Service Bus. This blog post assumes that you have already worked with Socket.IO apps and will be focused on how to scale out Socket.IO apps with Windows Azure Service Bus.