It's the type of service we expect to see more of as companies move infrastructure to the cloud.
- The cloud promises scaling up and down according to usage but it is often a manual exercise
- Cloud management is still nascent. We are just beginning to understand how to optimize cloud environments.
- We're still in transition. Apps are being ported to the cloud but how to optimize is still a bit of an art and a science.
According to Paraleap's Web site, AzureWatch "dynamically adjusts the number of compute instances dedicated to your Azure application according to real time demand." It provides user-defined rules to specify when to scale up down.
Illustrating the complexities of this is a blog post by Paraeap's founder Igor Papirov. In it he covers five tips for creating cost effective Windows Azure applications:
Here they are:
Tip 1 - Avoid crossing data center boundaries
Data that does not leave Microsoft's data center is not subject to transfer charges. Keep your communication between compute nodes, SQL Azure and Table Storage within the same data center as much as possible. This is especially important for applications distributed among multiple geo-locations.
Tip 2 - Minimize the number of compute hours by using auto scaling
Total compute hour is the biggest cost for using Azure. Auto scaling can minimize the cost so the number of nodes on Azure scales up or down depending on demand.
Tip 3 - Use both Azure Table Storage (ATS) and SQL Azure
Try to not limit yourself to a choice between ATS or SQL Azure. Instead, it would be best to figure out when to use both together to your advantage. This is likely to be one of the tougher decisions that architects will need to make, as there are many compromises between relational storage of SQL Azure and highly scalable storage of ATS. Neither technology is perfect for every situation.
Tip 4 - ATS table modeling
This gets into the nitty gritty so I will leave it best for Papirov to explain. Essentially, it requires modeling tablet storage. By modeling, you will "not only speed up your transactions and minimize the amount of data transferred in and out of ATS, but also reduce the burden on you compute nodes that will be required to manipulate data and directly translate into cost savings across the board."
Tip 5 - Data purging in ATS
This is where Azure can be very tricky. In ATS, you are charged for every gigabyte that is stored. Issues arise with data purging as ATS is not a relational database. Each and every row from an ATS table requires two transactions. As a result, it can be expensive, inefficient and slow to purge data. "A better way would be to partition a single table into multiple versions (e.g. Sales2010, Sales2011, Sales2012, etc.) and purge obsolete data by deleting a version of a table at a time."
The complexities of cloud computing will be a front and center issue this year. We expect it will continue to show why cloud management technologies will become critically important for any enterprise working to optimize its presence in the cloud.