Over the past few weeks Microsoft announced two significant improvements to their cloud computing platform, Windows Azure, that lower the cost of running a software system while allowing for increased responsiveness during increased load. These improvements are called “Per Minute Billing” and “Automatic Scaling”. Companies who use Azure or solutions built on Azure will be well-positioned to continue lowering operational costs while improving their user experience.
Per Minute Billing is pretty self-explanatory–it actually is what it says it is. With Per Minute Billing, companies that use Azure are now only charged for each minute they run a virtual machine or cloud service. This is distinctly different from Microsoft’s previous billing model where they ‘rounded-up’ for each partial hour used. Under the old model, if a virtual machine was only run for a small period of time, it would be billed as a complete hour (or even two)!
The example below comes from Microsoft’s previous billing FAQ and shows how a 20 minute usage was billed at 2 hours:
For example, if you deploy a small compute instance at 10:50 AM and delete the deployment at 11:10 AM, you will be billed for two small compute hours, one hour for usage during 10:50 AM to 11:00 AM and another hour for usage during 11:00 AM to 11:10 AM.”
The new billing model gives users the ability to cost-effectively utilize short bursts of resource usage when needed — which dovetails nicely with the next Azure improvement, “Automatic Scaling”.
Automatic Scaling is a new Windows Azure feature (currently available as ‘Preview’) that allows applications to automatically scale server capacity up and down as needed. When enabled, the auto scaling feature monitors CPU activity (or message queue volume) and adjusts server capacity based on user-defined rules. For instance, a rule can be configured to automatically add server instances if the average CPU activity remains elevated for a specific period of time and to remove server instances when load is reduced. The rules also allow the configuration of the minimum and maximum number of servers, ensuring that the site remains available and costs are controlled.
This feature not only makes applications more responsive, but also lowers the total-cost-of-ownership for running a system. The following simplified example demonstrates the cost savings of utilizing Automatic Scaling. The graph below shows the typical load, represented by the dashed orange line, on a system used for daily processing in a Fund Administration environment. In the morning, users begin using the system and load steadily increases for a number of hours. As the market closes, load spikes to its highest levels. The blue line represents a scenario where auto-scaling is not used, such as in a traditional on-premise deployment or a cloud that does not support auto scaling. In this scenario, three servers are constantly deployed. The green line represents the number of servers utilized with auto-scaling where servers are brought on- or offline based on CPU activity.
While this example is simple, the data accurately represents real-world results. In this case, server costs are reduced by 56% by utilizing Automatic Scaling!
These new features are exciting and strongly demonstrate the advantages of cloud computing. For many Fund Administration business processes, the system load is relatively low for much of the time but spikes significantly for daily, monthly, quarterly, and annual processes. Utilizing these cloud capabilities ensures users have the processing capacity they need when they need it, but aren’t paying for unused capacity when they don’t.