While enterprises may find Microsoft Windows Azure's pricing model perfectly reasonable, many developers say it...
is expensive enough to make basic experimentation with the platform unattractive. In fact, on a Microsoft-sponsored forum for voting on possible Azure features, the number one most requested item as of March was "make it less expensive to run very small services on Windows Azure." The second involved a free developer version. Benjamin Day of the Boston-area Benjamin Day Consulting said the hidden cost is idle hosting.
"If you leave your application deployed to Windows Azure but not turned on," said Day, "you're still getting charged just for having your bits up on their cloud but not running." After a few months with Azure's pricing model, a number of developers say the platform is a bit pricy for smaller applications. On Azure, "compute" time is priced at $0.12/hour. However, unlike Google App Engine, Azure calculates compute time as uptime, not CPU cycles used. What this means is, as long as you have an application instance hosted on Azure, you will be paying a monthly minimum of just north of $80. And that comes before calculating in storage ($0.15/GB/month), storage transactions ($0.01/10,000) and data transfers ($0.10/GB in and $0.15/GB outgoing, outside of Asia).
Amazon EC2 also charges $0.12/hr for small, on-demand instances of Windows servers. But on EC2, an "instance" refers to a virtual machine that can run a number of applications. In Azure, an instance refers to an individual application. Google App Engine charges on CPU time at a rate of $0.10/CPU hour and is still free if you can keep storage to fewer than 500 MB and page views to fewer than 5 million per month. Of course, App Engine only supports Python and Java, so EC2 and Azure would be more compelling to the .NET community.
Idle hosting costs aside, Day said he is impressed with Azure. He said the platform shows a real focus on application development whereas EC2 requires some system administration and App Engine is more limiting in terms of what you can do with your code.
How bandwidth affects cost
The major challenge he has found regarding cost is estimating bandwidth.
"The one that's hard for me is trying to estimate how much database traffic you have," said Day. "Azure bills you by data transfer and how much you talk to storage, so a chatty database could make things more expensive.
In general, Day said the major benefit to going with any cloud computing platform is not having to run a data center.
Dominos Pizza Inc. could not agree more.
In 2009, Dominos Pizza experimented with Azure as part of a project to redesign its online ordering system. Last year the company sold more than 20 million pizzas online, which accounted for roughly 20% of the company's total incoming orders. After considering that this number is growing and the traffic tends to come in spikes around dinner time and holidays, it was time to look at cloud computing, said Jim Vitek, director of e-commerce, Dominos.
"We did some modeling and their pricing is pretty competitive," said Vitek. "We expect that there would be a significant savings in the cloud compared to our own infrastructure."
Comparing Azure to in-house
The question when it comes to pricing, he said, is mostly a matter of whether the total cost of running an app in Azure would be less expensive than the supporting infrastructural components the company relies on now. When you take into account bandwidth, servers, networking gear and other related costs, Vitek said cloud computing becomes very attractive.
When comparing internal costs with a cloud model, bandwidth is one of the major costs to consider, said James Staten, an analyst with Forrester Research. He said storage prices seem to be coming down, while data transfer rates are holding fast.
"Bandwidth is the hidden charge that we don't see declining," said Staten. "The most expensive connection you can make is the one that leaves the cloud." One of the most widely discussed issues with cloud computing is the general reluctance of enterprises to trust their sensitive data to a multi-tenant environment. Many IT shops find it hard to be certain of the security of data that live outside of the corporate firewall. Staten said he has heard from a number of people considering linking cloud applications back to an on-site datacenter. Depending on the amount of data involved, he said, this can be very expensive.
As far as Dominos is concerned, however, the cost of data transfers in Azure is not a concern when compared with the operational expenses of hosting its own private cloud, Vitek said.
At present, Dominos has not migrated its production system over to Azure, but cost had little to do with it. As is the case with many companies, security concerns are the major barrier, Vitek said. As is common in cloud computing, Azure is not yet Payment Card Industry (PCI) certifiable. Until customer credit card transactions can be processed in an Azure-based application, he said Dominos will continue manage its own infrastructure.
For the time being, the company's e-commerce department is building out a private cloud running on mostly open source software and Apache Tomcat inside the Java Virtual Machine. The system makes use of non-relational BLOB storage so, Vitek said, if and when the application moves to Azure, it would use Azure Storage instead of the more expensive SQL Azure ($9.99/1 GB database or $99.99/10 GB database, monthly).