Google AppEngine & Amazon AWS |
|
May 9, 2008 |
Another couple o’ awesome things happened while I wasn’t blogging - Google launched AppEngine and Amazon released the word that they had rolled out persistent storage to a select few and this would become a regular feature. These are both big noise in the world of cloud computing.
An interesting thing about these two services is that they take such different approaches to the problem. Amazon provides a bunch of loosely coupled services that you can pick and choose from, the flagship of which would be EC2. This directly targets hosting/datacenter environments by providing a system that works quite hosting servers somewhere, except for what hosting is all virtual so bringing servers up and down is quite easy. In a pre-persistent storage world, the difficulty was worrying about how to keep your data safe in the event that an instance went down. To steal from another genre, that really brings you out of the moment. It’s a problem that you don’t have to deal with in a hosting environment and was a barrier to entry. With persistent storage, not only does Amazon remove this barrier, it actually improves fundamentally on the idea by allowing you to move your storage around super simply from instance to instance. Nice!
So, in this world scaling comes very traditionally - you start up more servers and load balance between them. It is very easy for people to transition their learning from the physical datacenter to Amazon’s virtual one. Sure if you can switch your services to use SimpleDB that helps a bundle in getting things to scale, but if the limitations imposed prevent you from going that route, just boot up a MySQL or Postgres or Oracle instance and you’re ready to roll. It’s quick, it’s easy and it’s reasonably cheap and getting cheaper all the time.
AppEngine, on the other hand, goes for a very different route. Ignore, really, that it is tied to Python, they said they’re going to roll out other languages before long, so that’s a red herring. But ultimately, Google’s tactic is a much more prescriptive one - if you think of it more like a framework. They provide you with the structure to build your application, if you can live within those confines you get the scaling for free. That is, theoretically, it just gets bigger and bigger, no managing instances no server maintenance, it just serves more and more content. It’s like a web2.0 cornucopia, runnething over with all your stuff.
AppEngine is much earlier on in it’s development cycle so it remains to be seen how well it actually scales - although, given it’s Googley heritage, methinks that it should scale pretty well. Nor do we see their cost structure, although the free for a reasonably sized set of page views is definitely a lowered barrier to entry. To me its big achilles heel is BigTable. While it has some interesting properties, I believe that it lacks amongst other things join or the use of “OR”, which may make something like a many-to-many relationship difficult to model. Just as an example. And because of that some applications may simply not be able to be built in AppEngine. Unlike AWS there’s no escape clause, at least right now, you are stuck with BigTable.
These are both great options. AppEngine, like any framework (which it isn’t precisely and it will become even less so as more languages are added, but I think it’s similar in appeal) will gain its adherents. It makes certain things easier and certain things harder, a tradeoff that is true for any framework. Big time scaling is a difficult problem and taking away those concerns is quite compelling. On the other hand, AWS, I believe, will increasingly be seen as a real competitor to the big ISP’s like RackSpace. I honestly am waiting for a virtual RackSpace to be setup with whitecoats sitting around some virtual NOC receiving calls and restarting instances and troubleshooting all manner of issues. I mean, really, what difference does it make to me if the hardware is virtual or not? I never even really see my hosted gear… Actually, if you’re interested, let’s talk.
Yahoo looks to be entering this field as well, with the Y! OS. It remains to be seen where that will fall in the PaaS spectrum currently defined by AWS and AppEngine or if it will skirt the issue with a more Facebook like approach. I think ultimately there will never be one winner - there’s plenty of room in the world for both tactics to become very successful as they appeal to very different sorts. I’d like to see what services show up and where they fall on this spectrum or if they push the boundaries. Very interesting times, what do you think? I have some ideas for an AppEngine app, just need to dust off the ol’ python book and have google set me up with an account.
tag: yahoo hosting



May 9, 2008
Leave a Reply