Avoiding lock-in in the cloud
Cloud computing has many benefits, but the risk of being locked-in to a single vendors' platform is very real.
As the cloud continues to emerge as a serious option, many people are starting to catch on that there are limits to what can be done outside that particular platform.
Right now there only a few options if you are a cloud or PaaS provider:
1. Cordon off virtual machines and use VM images (like Amazon.com or Joyent)
2. Allow development on some programming language (like Google App Engine)
3. Force users onto your platform (like Salesforce.com)
The applications that are built on top of a particular vendor's infrastructure are locked into that provider's way of doing things. I always expect the cloud to be about freedom from vendor control--much like how open source gives control to the users.
Where is the "write once, run anywhere" ideal of Java? Sun should be the next big Cloud vendor--it's got hardware, virtualization, and Java all under one roof and yet it remains late to the game.
Over at GigaOm I read about Dreamfactory which provides some cloud-agnostic/opportunistic offerings to integrate its own applications with other SaaS vendors.
But rather than being tied to a particular cloud, DreamFactory works with many of them. Relying on a rich client that runs as a browser plug-in, DreamFactory's application only needs the cloud for storage. It can use Salesforce, Webex Connect and Amazon EC2. Quickbase support is just around the corner, with Google BigTable hot on its heels. It will even run on your hard drive.
The fact that the Dreamfactory plug-in runs locally solves a major issue--what happens when you are not connected. It also means you can move from platform-to-platform.
But this approach is merely the tip of the iceberg. When you consider the domination of the Flash plug-in, you can certainly imagine Adobe making strides very quickly. For that matter, this approach could be Microsoft's first step into being cloud-relevant.
The next stage of the cloud is the maneuverability of data regardless of its location or destination.