Should a developer understand Windows Azure pricing?

My answer is Yes. This is even before learning to write and deploy applications in Windows Azure.  Instead of getting carried away by the ease of adding and removal of resources at short interval with little additional effort and proposing solutions to be migrate to cloud, let us also work the cost advantage, before moving applications to the cloud.

I have deployed applications on Azure in Beta times when things were free. . I saw pricing information at Windows Azure Platform Offer Comparison Table and went ahead and signed up for the Introductory offer providing my credit card on Friday. Once I bought this offer, my thinking process changed. I want to understand how much money I might end up spending . The Comparison table was not very easy to understand and there is no human interface to get my queries answered. The support at Microsoft India just pointed to the internet and asked me to post on the support site and there has been no information till now(Monday). I am unhappy.Having swiped my credit card, IO decided to learn some basics before I started deploying my applications on windows Azure.

I found the nice video/podcast of PDC 2009 which served to be extremely helpful. The Business of Windows Azure: What you should know about Windows Azure Platform pricing and SLAs. I am writing down some points/highlights for my reference that have direct impact on the cost and definitions that would enable to optimize the cost and provide better estimates .

Term Description
Pricing Models Consumption based model : if you are not sure or you are getting started, this is a good model to start with Subscription based model: You get a better deal if you are ready to commit your usage or can predict the usage.
Compute The pricing has dependency on application instance size( need of memory and CPU). For pricing the application instances are categorized as Small, Medium,Large and Extra Large. I also understand Compute as “ when you instance is setup and is available, compute charge adds. when the instance continues running, compute charge continues to add and when the instance is stopped, charge stops”. Effectively the pricing is based on number of hours the instance was up and running
Storage Every call to store or retrieve from Windows Azure storage system(blobs, tables) is considered as transaction
The pricing is based on number of transaction and the number of GB of data stored. There are two different editions of SQL Azure. Web Edition and Business Edition. Ingress is data moving into the SQL Azure database.  Egress is data moving out of the SQL Azure database. Storage costs for both Ingress and Egress operations. There is promotional offer that there shall be no charge for off-peak Ingress operations
I understand that data transfer internally are not charged. I  would interpret this 2 databases created by me
Service Bus and Access Control Application to application message is considered as transaction.Creation of every token request, is considered as transaction. Internal is data from within the Windows Azure platform.External is data from outside the Windows Azure platform. The pricing is based on number of transactions


Microsoft has tried to define following SLAs.SLAs are yet to cover security aspects. I think MS assumes that Windows Azure is secure and fool proof as of today. if SLA is below a certain level of promise, you would get 10% credit to be adjusted against next month usage and if failed even more, it can go up to 25% credit
1. internet Connectivity :    SLA for access the service?
2. instance monitoring:      Are instances healthy? when instances are found not healthy, instances will be restarted
3. Storage availability :     SLA for storage Success storage transaction/total storage transactions
4. Database availability :   SLA for databases. databases are monitored on continual basis
5. Service Bus and Access Control availability

Currency For India, we need to pay in dollars. The rupee fluctuation is expected to be averaged across the year. if the rupee weakens, I would end by paying more from my pocket. The pricing system would not allow me with an Indian address to deploy my cloud applications USA. there might be smart address validation that would determine my currency.
There is not yet any special offers for applications that belong to Non-Profit and academic communities
Deployment scenario:

how to optimize costs

Be prepared to identify different type of scenarios possible  in your deployment environments
Workload might increases to peak at some times, like batch processing at a particular time of the day and workload is very less at early morning. Sudden unpredictable increase in workload at short notice(sudden emergency caused to celebrity). Predictable increase in workload(credit card transactions increase on Friday night or the firm runs promotional offer. Also be aware that  maintaining a staging instance and production instance of the application would double the cost.

Deployment scenario:

how to optimize costs

Develop/Test new product/idea:  How much deployment scenario understanding is needed for developers to handle scaling and performance issues? How much time is needed for test engineer to perform integration testing in deployment environment? How to effectively measure performance and the scaling environment and production environment. Is there way to perform testing without transferring data in and out of Azure?