Monday, November 3, 2008

Vendor Lock-In and The Cloud

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.

8 comments:

  1. Hey Hank!

    To be honest, I don't think that is that bad this Microsoft approach. Most coders I know use Visual Studio or the Express version and are quite excited of just "moving" their apps into Azure.

    Do you think Mac or any other major software player will consider to compete with Microsoft on cloud platform? Google or so?

    ReplyDelete
  2. The concept of Cloud computing is supposed to lead to platform independence. Enterprises have for a very long time been forced to choose some platform or the other and have been locked in for a pretty long time. You could be a MSFT shop a UNIX shop within which you had several flavors and then there are the AS 400 and Mainframe shops.
    The whole notion of having cloud computing is to avoid that platform lock in and have applications run on a central servers that you pay some nominal fee for it.
    Cloud computing for most Fortune 500 companies has already happened or is almost happening, they have their own large data centers and run their applications in those data centers.
    The real value for cloud computing is in the SMB markets and vendors who can provide a set of services without locking in the SMB's onto specific platforms will be better. But knowing how MSFT operates and all the various reseller channels they have it will become another campaign to get a lock in as happened back in the Nineties with Windows.
    The value is in offering SMB's a set of services on the cloud that is platform agnostic and offers the best services to the client.

    ReplyDelete
  3. @WhoInDatGarden,

    Indeed, it makes more sense to users to be platform agnostic, but the thing is that It might be unlikely to happen. This might be Microsoft's last chance, sort to speak, to continue "ruling".

    But If there's competition, it will be better for everyone on the long run, but Microsoft seems to be leading the pack now...

    What do you think, Hank?

    ReplyDelete
  4. Well it is not just for users to be platform agnostic. For the vendors who can build a stack that is platform agnostic that makes a lot of sense. In the case of MSFT, they still are tied to the revenues of Windows platform and therefore can't ever get to be platform agnostic.
    The day Visual Studio can be used a s a development platform to deploy applications to work on any Browser that runs on any client OS will be a day that MSFT has moved from depending on OS revenues only. MSFT is still a OS company that happens to have a few other products to offer but all tied to that OS.

    ReplyDelete
  5. Agree with you that open sourcing is not a total solution to risk avoidance. We do think it helps though.

    We think the solution is developing to standard, open application frameworks (e.g., Rails, Django) that the cloud vendor has mapped to their platform. Then you have true portability. We're working on this now.

    ReplyDelete
  6. Dwight,

    That certainly seems like a good approach, but if that is what you are doing, does it need to be open source?

    ReplyDelete
  7. You are right, it does not then have to be open source -- the lock-in is avoided regardless.

    We still like open source model and think it is helpful in other ways. We want to build a community around the internals of our system. We don't want to see everything become too proprietary (even on the internals) as everything moves into the cloud.

    ReplyDelete
  8. @WhoInDatGarden,

    Interesting approach. But I can't even consider Microsoft letting go of all the coders from its proprietary software...looking into the future it sounds like the most congruent approach.

    As Dwight suggests, the cloud might just need to be based on open source code, with different flavors, but basically the same at the end.

    Im curios to see if Sun or another major player jumps into the bandwagon of becoming the cloud's OS.

    It's fun to watch, at least!

    ReplyDelete