There are a number of elements relevant to the potential of an Azure application—elasticity being one of the most interesting. The idea that you can, on demand, scale up and down your application based on need. And you are only billed for what you use, more or less.
But Azure billing is more detailed than that. You pay per hour per computing instance and per gigabyte for storage, uploads, and downloads. And that billing detail opens an interesting avenue for determining the real cost and benefit of software.
It's always been possible to compute the cost of software—not just the cost of the developers who built it, but the operational costs as well. That includes the price of the computers, networking equipment, and Internet connections, plus the personnel involved in maintaining all that equipment and software. And that's where things break down. It's very hard to break out the individual costs for each application, since they tend to share an awful lot of equipment and personnel.
Moving to Azure simplifies those calculations significantly. You get a bill every month for all the equipment involved, and much of the maintenance is handled by the Azure folks as well. No more OS updates for you!
Once the cost calculations are in hand, then the next step is calculating the value of the application. For an e-commerce application, this is pretty easy, since it's money in the bank, presumably every day. Provided that number is larger than the cost of goods and operations, you've got a positive ROI. Things are a little trickier when you evaluate internal applications. Often it's easier to assess the cost of downtime or poor performance than actual income value.
With an Azure-based website, suddenly a denial-of-service attack has a clear cost... not just in lost revenues, but in the bytes and processing power consumed. It's also interesting to consider spam in the same cloud-centric light. You're clearly paying for those bytes now.
But an ROI is not just the time to takes to cover the cost of initial development; it can also point to the cost-benefit of features, including performance tuning. There is clear data available today that shows that faster websites convert more visitors to buyers, and the buyers buy more. But speed is not the only element of performance. There's also throughput, which is the number of users that a given computer can service. When you're paying per hour per instance, throughput can represent significant value. The developer that can build a more throughput-efficient application makes a more profitable application, too.
There's plenty of anecdotal evidence showing the value of software to businesses—it's one of the reasons there's so much development going on. But if you're willing to take on the numbers yourself and really understand them, you open the door to far more development potential, and Azure is a facilitator of that goal.
Richard Campbell is technical director for DevProConnections and is also a cofounder of Strangeloop Networks. He has more than 30 years of high-tech experience and is both a Microsoft Regional Director and Microsoft MVP. In addition to speaking at conferences around the world, Richard is cohost of .NET Rocks! ( www.dotnetrocks.com) and host of RunAs Radio ( www.runasradio.com).