We have a client that is hosting their site on Microsoft Azure. It is a basic content managed site with a SQL Azure backend. When our client got their monthly hosting bill, we discovered a significant transfer cost that couldn’t be easily explained (it was almost 100 gigabytes a month!). When we investigated the problem, we found a couple challenges:
- Our CMS was constantly polling the database to synchronize the azure SQL database with its in memory cache. This seemingly innocuous polling was racking up transfer activity on a continual basis.
- The Azure storage was in one Microsoft data center and our staging environment was in a second Microsoft data center. We discovered that when this is set up that way, we ended up being charged double because Microsoft charges both for the external data going out one data center and the incoming data entering into the second data center.
Here is the interesting thing: in a traditional hosting infrastructure, these issues wouldn’t generate any additional cost. It’s the “pay as you go” model that cloud provides that causes the increased costs on the customer’s monthly bill.
So if you are building Azure based (or any other cloud based for that matter), you will need to focus on optimizing the impacts of performance, data transfers, and storage in ways that you could get away with in a traditional hosting environment as these are highly metered and cost money for every poor line of code, bad configuration, increased need for processing power, etc..