Is Vendor Lock-in a Barrier to Cloud Computing Adoption?
Tim Bray wrote a post last week about adopting Cloud Computing. He still sees two major issues:
- we haven’t quite figured out the architectural sweet spot for cloud platforms. Is it Amazon’s EC2/S3 “Naked virtual whitebox” model? Is it a Platform-as-a-service flavor like Google App Engine? We just don’t know yet
- if cloud computing is going to take off, it absolutely, totally, must be lockin-free
and Tim concludes:
Are we so deranged here in the twenty-first century that we’re going to re-enact, wide-eyed, the twin tragedies of the great desktop-suite lock-in and the great proprietary-SQL lock-in? You know, the ones where you give a platform vendor control over your IT budget?
moving from one application to another is a similar yet smaller scoped problem compared to moving from one Web development platform to another
For Cloud Based Office Suite, he argues that:
He urges however to consider these points:
[Is] there is an automated way to perform such bulk imports and exports?
[Do] individuals have to manually export and/or import their online documents to these standard formats?
[What is the impact of] links and references to your organization's data that will be broken by your switch?
how expensive it is for your organization to move the data ([considering] organizational downtime to account for switching services to the actual IT department cost of moving all the data)?
Dare suggests that, in the end,
switching hosted application providers is mostly a tractable problem.... However although the technology makes it possible, the majority of hosted application providers fall far short of making it easy to fully migrate to or away from their service without significant effort
When it comes to cloud computing platforms, Dare explains that:
you have all of the same problems described above and a few extra ones. The key wrinkle with cloud computing platforms is that there is no standardization of the APIs and platform technologies that underlie these services... For zero lock-in to occur in this space, there need to be multiple providers of the same underlying APIs. Otherwise, migrating between cloud computing platforms will be more like switching your application from Ruby on Rails and MySQL to Django and PostgreSQL (i.e. a complete rewrite)
Dewitt Clinton of Google, who commented on Tim Bray's post, explains:
In App Engine's case people can run the open source userland stack (which exposes the API you code to) on other providers any time the want, and there are plenty of open source bigtable implementations to chose from. Granted, bulk export of data is still a bit of a manual process, but it is doable even today and we're working to make it even easier.
Dewitt also noted that what Dare is suggesting is already happening:
But how does Amazon or Google facilitate that, beyond getting licensing correct and open sourcing as much code as they can? Obviously we can't be the ones setting up the alternative instances. (Though we can cheer for them, like we did when we saw the App Engine API implemented on top of EC2 and S3.)
Mark Pilgrim, sees yet another issue with Cloud Computing:
the really scary issue is not lock-in, but lock-out. As in, what recourse do you have if your service provider suddenly decides that your account is exhibiting suspicious activity, and they disable your account? People are generally shocked to learn that their access can be revoked for no outwardly apparent reason, that they may never learn the real reason, and that they have little recourse but to start over. With backups, assuming they made any
Is vendor lock-in (or lock-out) a major issue when it comes to adopting Cloud based solutions (SaaS, PaaS, IaaS)? What kind of issue did you experience when you had to migrate from one platform to another? or Do you think that when a vendor will come with a better offering, it will also solve the migration problem for you, like it happens in the real world for all kinds of services?
Webservices are faring slightly better but that's because WS-* adoption by the vendors has been limited to a lowest common denominator that allows some measure of interoperability. Having said that interoperability is only ensured by constraining the features you use in your web services...
Why should it be different for SaaS or Cloud or the next bandwagon that comes along? Its a direct result of Capitalism. ;-)