Archive for May, 2008

Define Cloud Computing

It looks like pretty soon all computing will be called cloud computing, just because the cloud is “in.” Fortunately most computer savvy folks actually have a pretty good idea of what the term ‘cloud computing’ means: outsourced, pay-as-you-go, on-demand, somewhere in the internet, etc. What is still confusing to many is how the different offerings compare from Amazon Web Services to Google App Engine and Force.com. I recently heard a characterization of three different levels of clouds which really helps put the various offerings into perspective. Here’s my rephrasing:

Applications in the cloud: this is what almost everyone has already used in the form of gmail, yahoo mail, wordpress.com (hosting this blog), the rest of google apps, the various search engines, wikipedia, encyclopedia britannica, etc. Some company hosts an application in the internet that many users sign-up for and use without any concern about where, how, by whom the compute cycles and storage bits are provided. The service being sold (or offered in ad-sponsored form) is a complete end-user application. To me all this is SaaS, Software as a Service, looking to join the ‘cloud’ craze.

Platforms in the cloud: this is the newest entry where an application platform is offered to developers in the cloud. Developers write their application to a more or less open specification and then upload their code into the cloud where the app is run magically somewhere, typically being able to scale up automagically as usage for the app grows. Examples are Mosso, Google App Engine, and Force.com. The service being sold is the machinery that funnels requests to an application and makes the application tick.

Infrastructure in the cloud: this is the most general offering that Amazon has pioneered and where RightScale offers its management platform. Developers and system administrators obtain general compute, storage, queueing, and other resources and run their applications with the fewest limitations. This is the most powerful type of cloud in that virtually any application and any configuration that is fit for the internet can be mapped to this type of service. Of course it also requires more work on the part of the buyer, which is where RightScale comes in to help with set-up and automation.

Looking at these different types of clouds it’s pretty clear that they are geared toward different purposes and that they all have a reason for being. The platforms in the cloud are a very interesting offering in that they promise to take some of the mundane pain away from dealing with the raw infrastructure. But it’s not at all clear to me that the vendors can live up to the promise of managing everything seamlessly and that the functional constraints won’t cause applications to have to move up to the infrastructure clouds as they mature and gain complexity. It would not be good if toy apps started on the platform clouds and then moved to the infrastructure clouds as they gain adoption. One possible outcome is a hybrid model where the canonical application core remains in the platform cloud and the odd pieces of functionality and/or the parts that need to scale the most drastically move off to infrastructure clouds.

Comments (37)

MySQL comes to the Amazon EC2 Cloud

I’m sure you’ve seen the announcement that MySQL/Sun now supports the MySQL Enterprise Server product on Amazon EC2. Of course the MySQL community edition has been in the cloud for a very long time and we have engineered and supported it for many months. But it is nevertheless exciting to see another vendor (after RedHat) embrace the cloud and offer support for its software there.

Interestingly MySQL hasn’t announced any new product or any new pricing. I suppose this just means they don’t really care whether the copy of MySQL Enterprise you bought is running on your server or on Amazon’s server, and why would they as long as you pay. I also suppose this means that if you call for support you won’t get a blanket “sorry, we don’t support this configuration” when you mention that it’s running in EC2. We’re trying to find out whether there is anything additional happening, like special training for the support reps on EC2-specific issues.

No doubt the next step will be for the folks at MySQL to go a step further and offer more flexible pricing in keeping with the variable nature of cloud usage. As I’ve written before, I am convinced that cloud computing will dramatically change processes around managing databases for the better. All DBAs that have worked for me have hated change. If the database is running don’t touch it! If it’s broken don’t touch it until all the causes are figured out! As a result the most common request I’ve gotten from my DBAs is “Thorsten, I really need another box”. If the database is running fine my DBAs always wanted another box to test out the changes I requested before committing them for real. Or they wanted to run that killer reporting job where it’s guaranteed not to impact production. If something broke and we failed-over to the slave I was breathing down their neck to get the broken box back togteher asap so we had a replicated database again. But they always wanted to take their time and analyze the cause for failure and perhaps even try to reproduce it. Agonizing tugs of war!

I’m sure you got it: the cloud changes all that. In all the above cases the answer becomes trivial: just launch another instance. Another slave machine with the database replicating in sync is one click away (at least with RightScale’s automation). And it only costs a few bucks in server charges to run it for the couple of days most of the above scenarios take. Once we also have by-the-hour MySQL Enterprise Server licensing to match, we’ll be in database heaven. MÃ¥rten, I know you will get there soon and we’ll be waiting!

Comments (2)