Choosing between SQL Azure and Windows Azure Storage

I was having a chat with an Azure architect at Microsoft last week, and he pointed out that SQL Azure storage costs 66x (yes, sixty-six times) Table Storage.

Not quite believing I went back to check pricing. And sure enough it’s true. In fact it is probably an even higher ratio as you have to buy SQL Azure in chunks of 1,5,10,20 GB etc.

If you have 15Gb of data in SQL Azure you need a 20Gb database @ ~$200/month.

15 Gb of data in Table Storage = 15 * $0.15 = $2.25 / month.

That would make SQL Azure around 89x as expensive as Table Storage.

Wow.

That’s not quite the full story though. In Table Storage the idea is that you would often not normalise your data. Data is likely to be stored multiple times in the store. And additionally there are transactional costs associated with Table Storage ($0.01 per 10,000) transactions.  These both make estimating cost more tricky.

As a guestimate starting point, let’s say I need to store each data item 3 times in Table Storage, meaning that 15Gb of normalised data gives me a requirement of 45Gb Table Storage. If my system has 1000 users each performing 10,000 transactions / month, then my total Table Storage costs would be:

(45 * $0.15) + (1000 * $0.01) = $16.75 / month

That’s about a 12x ratio (and is based on a lot of assumption too).

There’s probably a need for a simple spreadsheet to help look at the trade-offs here, but as a rule of thumb the pricing model from Microsoft is giving us some strong guidance: Windows Azure architects should look to put data in Windows Azure Storage first and SQL Azure conservatively.

The two scenarios I see when I would prefer SQL Azure over Table Storage are:

  • When I need SQL Transactions – ie. the ability to group together a bunch of database actions and commit them as a single atomic unit. There’s no concept of this type of transaction in Table Storage.
  • When I need reporting – especially enabling end-users to design their own queries and reports. In this case I don’t know how the user will want to query the data at design time and will need to rely on SQL Servers ability to query across tables to enable this.

How Cloud Computing Changes the Economics of Software Architecture

I’ve been thinking a lot about architecting software applications for the cloud lately – particularly for Windows Azure, as that’s the platform we have chosen to build CubeSocial’s SaaS solution on.

Lots has been written about the impact of PaaS and IaaS services like Amazon Web Services and Windows Azure on software architecture.  I’ve seen plenty of commentary arguing that architects need to change the way they design systems to consider the platform billing model and on-going costs.

But is that really a change? In my opinion, it’s no different to what we architects have always done – only in the past the cost considerations were different. It was about numbers of servers, software licences, software versions etc.

I believe the cloud computing model changes our approach in a much more fundamental way.

I see the shift that is happening right now as the modern equivalent of what happened when Windows went from 16-bit to 32-bit.

Freed from the memory limitations of 16-bit computing we all stopped optimizing our Windows code, as there were simply so many system resources available to play with… it was effectively limitless.

Cloud computing platforms bring the same philosophical shift to web applications.

Yes, I could spend time architecting for the billing model. I could spend money getting programmers to performance tune their code to reduce billing charges. But that doesn’t mean I should.

Let me ask you this: Why spend 50$ an hour on getting a programmer to tune their code, when instead I can pay Microsoft or Amazon another $50 a month and throw another web front end at the problem. Then, instead I can have my developers doing something much more useful to the business: adding new product features more quickly than the competition so that I can sell more and make more revenue.

And that is the true economics of cloud computing.

Cloud Computing to Top IT Spending in 2010

Gartner has published it’s annual prediction of the Top 10 strategic IT investment areas. They are:

  1. Cloud computing
  2. Advanced analytics
  3. Client computing
  4. IT for green
  5. Reshaping the data center
  6. Social computing
  7. Security
  8. Flash memory
  9. Virtualization
  10. Mobile applications
Follow

Get every new post delivered to your Inbox.