Wednesday, January 20, 2010

Why Windows Azure is on Cloud 9?

Cloud computing market is crowded with more and more vendors as it is seen becoming no.1 in the ‘what’s next’ list among the CEOs & CIOs. Google, Amazon, Microsoft are pioneers in this arena. Based on my observations, I can see more tractions on Windows Azure based enterprise apps. There may be many reasons. One key reason that would have made Windows Azure as one of the key choice may be ‘data storage’ facilities it offers.

If you see the key players in cloud computing viz Amazon, Google, Microsoft, they are offering data stores based on EAV model:

• Amazon – SimpleDB

• Google – BigTable

• Microsoft – SQL Data Services

EAV models are suited only for the scenarios where vast no. of attributes is used to describe an ‘Entity’. From the business domain perspective, ‘Health Care’ can be a good candidate for such scenarios. Especially when data models are designed for the databases to store info on clinical findings, we will end up in lots of attributes. If we design database models for such info based on relational database principles, we will end up in tables with thousands of columns and it will end up in many overheads and underperforming systems. For such scenarios, EAV based data storages are appropriate. So, when we design and develop a cloud application for Health Care, it is best to leverage the EAV based storage systems provided by the cloud vendors either it is SimpleDB or BigTable or SQL Data Services.

For the applications such e-commerce or banking where we don’t see much variation in attributes of entities, EAV will not work. RDBMS based storage is the best option for such applications.

Unlike the other vendors, Microsoft provides first relational database model based cloud storage called ‘SQL Azure’, in addition to EAV model storage ‘SQL Data Services’. Developers can leverage their existing skills on T-SQL, SQL Query, stored procedures etc.

So, for applications like e-commerce or banking where EAV may not appropriate, Windows Azure stands as the first choice because of its support for relational database model.

With the opportunities for leveraging developers skills on Visual Studio and conventional SQL based data access techniques, cloud computing may not look much different for the developers. Their lack of knowledge on EAV concepts will not become stumbling blocks in their development journey. Adding to that, SQL Azure also allows SQL developers to migrate the data from their existing RDBMS databases without any major effort.

With the fact that not all applications to be made ‘Cloud’ aware are should be based on EAV models, I think we have justifications to see Windows Azure as the front runner in cloud platform.

Let us wait & watch :)