There is much talk about the concerns over vendor lock-in related to the cloud. People are concerned that the new cloud related application platforms have APIs that are not supported by other vendors. Obviously if your vendor goes out of business or raise prices, or performs poorly that’s bad news.
This is a valid concern, but there are a variety of issues to consider. Microsoft has recently launched Azure , which is essentially a cloud-based version of its impressive existing software stack. While I am not a fan of everything Microsoft does, I have of late been a fan of their Office suite, and I have always been a fan of their developer tools. Though I have never been an active Visual Studio user, I can say with confidence that it is awesome. So if you are willing to commit to the Microsoft back-end software stack for things such as Microsoft SQL Server, and their web server tools, it is a great option. On the other hand, one of the primary attacks on Microsoft is the fact that their stack only runs on Windows, is closed source, etc. and so people are concerned about locking-in to Microsoft.
But in my mind, if you are going to lock-in to someone, Microsoft is not a bad place to be locked into if Azure works well. I have no reason to believe that it won’t given that, as I see it, it is critical to their survival (already hearing commenters groaning and referring me to Vista).
But this type of lock-in is small potatoes as compared to depending on startup X when developing a mission critical application. There you need to concern yourself not just with performance, but with the survival of the service provider.
Some vendors, like 10Gen are attempting to resolve this problem by making their tools open source, so that you can run them not just within the 10Gen cloud, but on any cloud based infrastructure such as Amazon or perhaps Azure with presumably minor modifications. This is a reasonable solution, but I would contend that basing your company on any new project, open source or not, is still risky. Open source does not mean risk-free.
None of this should be interpreted to suggest that I believe that Cloud computing is too risky. On the contrary, I believe it is critical to moving to the next phase of computing. But I do believe that for many developers, the key to cloud computing is leveraging the new opportunities as opposed to trying to port existing, or moderately enhanced development models to the cloud.
For example, Facebook is, in a certain sense, a cloud-computing platform. It is not the same as Azure, or 10Gen which host your applications, but it had when it launched the concept of actually being of real business value to the developers. Of course recently, I think we have come to realize that Facebook may not have as much profit potential for developers as we may have thought in the beginning. But I am speaking here in concepts, not specifics. The point is that cloud computing offers us the potential to think differently about what web applications mean. There will be opportunities, most of which I cannot even yet imagine, to create new types of applications, new eco-systems, etc.
In this context, you embrace the unique characteristics of the platform, which means embracing lock-in. Certainly if you invested a bunch of time in Facebook development, you did so because you felt there was a business opportunity there. No one was talking about “lock-in” around Facebook, because it was obvious that your apps would not be portable, and that lock-in didn’t bother you because there was a perceived benefit in being part of the Facebook eco-system.
And so the point here is that if all you are doing is attempting to get your web application into the cloud, then I think you need to take these kinds of risks seriously. But if there is an opportunity to leverage a given platform to generate real business opportunity, then lock-in should be the last thing on your mind.
Admittedly we are in early days yet, and I am not saying there are any platforms that fit my criteria yet, but I am confident they are coming, and that this is what the real cloud computing revolution will be about, not just saving a few bucks on infrastructure.