You raise some valid points here Baz.

What you highlight below, isn't necessarily vendor lockin, but what i call architectural lockin -- you've made decisions to utilize a given service to the point where you have left yourself with no other alternative.

Our company, aw2.0 Ltd, make our real money on cloud architecture and building extremely high availability/volume solutions that are transportable. We do not lock in any of our clients to Amazon/RackSpace and make sure they can easily deploy from their own in-house bare-metal systems to the cloud and back again without even thinking about it. You can do it, but you have to be aware to not lock yourself in architecturally.



Baz wrote:
Good points Alan. About Facebook, they do have their own infrastructure, but it was all built using new-fangled "cloud" technologies that weren't adequately baked just a few years back. Anyway I'm just ripping off Marc Andreessen in an article he wrote recently, I don't know too much more about the details :)

Vendor lock-in is a very important issue - there's no doubt about that. What I've noticed though, is whatever technology you use, be it open-source, closed-source, standards-compliant etc. there is always a relatively high degree of lock-in once the app starts getting medium complex. Let's take SQL for example, you can stick to the lowest-common-denominator syntax, but how long does that last before you you need full-text search, stored procedures, nested queries, custom functions, and so on. I've almost never worked on an app that wasn't married to its DB.

Now what about open-source - how many people do you know can reliably fix a bug in Linux or MySQL or Apache, at a reasonable cost? It would often be cheaper/easier/safer to just move to Windows, Oracle or IIS to solve the problem. Not to mention writing the patch is only the beginning, it starts getting real hairy managing that patch, testing for regression when the core is updated, etc. It's a costly, complicated and delicate endeavor to maintain your own branch of a complex open-source software.

As for GAE, it's Java! Or should I say it's OpenBD! Yes, there are many custom aspects to it, especially if you have a lot of datastore logic - but I think you'd be able to re-use 70%-80% of your code on a standard Java platform if you needed to. In my experience, that's about exactly the same as if you moved from SQL Server to MySQL, or ACF to OpenBD.

Amazon, Rackspace and GoGrid aren't that portable either. Before you know it you will start having complex scripts to build/setup your AMI's, you'll use SQS, SimpleDB, and so on. Even S3 is kind-of a weird beast. None of that is insurmountable of course, but I'd be leery about how much easier it is to switch a complex AWS app to GoGrid, than GAE to Tomcat.

--
official tag/function reference: http://openbd.org/manual/
mailing list - http://groups.google.com/group/openbd?hl=en

Reply via email to