Friday, February 18, 2011

BI in the Cloud or Head in the clouds?

Last week I went to a .NET user group presentation for Microsoft's Azure cloud computing platform.  The topic, though a bit dry, was interesting.  Cloud storage confuses me a bit since I'm a relational database kind of guy.  Azure Cloud Storage provides a basic API to store BLOBs (binary objects like images, music or video) in its massive redundant storage data centers.  It has 3 major types of semi-structured or unstructured storage:
  • Blobs
  • Queues
  • Tables
The coding examples actually offended my sense of good form with databases and coding, probably since the opposite design philosophies are true for Azure Storage apps versus relational database apps.  Or at least this is what I got from the presentation, which might be a bit off.
  • Keys are no longer supposed to be small, integer, incrementing for performance.  
  • Keys are long strings, sometimes with pipe delimiters.  
  • There is no concept of ATOMIC transactions - the app does the work.  
  • A table can hold two different types of object information (invoice/invoice details) with the key differentiating.   Duplicate data is replicated everywhere.  
  • Message Queues have a chance of dropping data which the app needs to handle.  
  • There are limits to the scalability of requests and storage size that the app needs to be aware of and design around.  
  • There's only 1 key on a table, so searching against a non-partition-key field causes table scans.
  • It's better to update / merge data than to append to the end.
The cloud will scale to terabytes, petabytes, exabytes of data depending on your budget, however good luck doing any complex searches against your metadata.  Seems rather painful right now.

Many of the stable, reliable, tried-and-true server and developer tools available outside the "cloud" provide a huge step up in terms of ease of development effort and data quality.  Why are we taking steps backwards in development to accommodate buzzwords and marketing stories?  Is there really a great benefit to moving your enterprise into the cloud?

Cloud in simple words is 'Pay as you use'. Cloud computing is analogous to the way we pay for our utilities like electricity or water based on the consumption. The underlying Infrastructure is owned  and managed by some third party and cost is billed to us in form of units consumed - BI In the Cloud

Driving around eastern Ontario a couple weekends ago, I was amazed by all the farms and houses having solar panels that weren't there last year.  I told my wife some salesperson was doing a good job.  This type of micropower distribution structure seems like the way of the future; not a huge smoke-belching power plant.  Why isn't it the same for the cloud?

The thing that bothered me the most though?  MS has Azure Cloud Data Centers around the world.  But no Azure Cloud Data Centres, eh?  I guess Canada is considered Northern US to the Redmond folks...  :)

No comments: