Okay so we routinely hear from people that have setup concrete5 on some cloud based web server and find it slow. My answer is routinely, "Well of course, what would you expect out of something called ‘the cloud' speed?"

The cloud makes a lot of sense to me if you have a huge number of small computing tasks. Need to store a load of data? Sure. Want to convert a kaballion images from one format to another? Perfect solution. Even if you've got a simple webapp that you want to be able to replicate a million times some morning when you get Dugg okay, as long as the app is pretty light weight and you design it with this in mind.

Where "the cloud" becomes more of a marketing solution than a real one to me is in generalized web hosting. Keeping sites fast is all about making disparate systems communicate quickly with each other. You have Apache, PHP, and MySQL all depending on one another to get a single page out to the visitor, and the faster those applications can share data, the faster the site runs. Really that's it. There's no magic to tuning a web server, it's just watching these three apps run, along with the hard drive and figuring out where the bottle necks and backups are happening.

So when you put those applications on a virtualized environment that spreads them across thousands of machines that are talking over network cables, you're not really buying yourself any advantage. Moreover, you've bought into a proprietary system (the cloud) where you're giving up control. Yes, the performance difference between 1 and 1,000,000 hits might be more consistent, but they'll all definitely be consistently slow as well.

I don't have any studies, just common sense and personal experience. I can tell you I've seen people routinely fail to get acceptable performance out of concrete5 of RackSpace's cloud. I've heard people say it can be made to run on mediaTemple's grid but it is still slow. I do know there are some caching improvements in the upcoming version of concrete5 that might make it behave better but fundamentally if I were designing an application that ran in the cloud it'd probably spit out static HTML files instead of depending on a database as much as concrete5 does today.

Assuming you've got caching turned on, really the best performance advice I can give you is put your concrete5 site on a well tuned LAMP stack and all will be well.

Just to be clear I'm a big believer in the web as an operating system, and I do see value in using cloud based setups for problems that lend themselves to low processor multi-threading (I bet SETI would shine in that thing.) I just don't see why we're solving a problem that doesn't exist by suggesting every website on earth would be better run in the cloud. Without a lot of custom work and planning, I can promise you any serious app will absolutely run slower on the cloud than on a well tuned LAMP stack.