Let's go ahead and get this out of the way: The following post contains only my personal opinions. These are not the opinions of my employer and should not be considered as such.
The term "cloud hosting" has become more popular over the past few years and it seems like everyone is talking about it. I'm often asked by customers and coworkers about what cloud hosting really is. Where does traditional dedicated hosting end and cloud begin? Do they overlap? Who needs cloud and who doesn't?
You can't talk about cloud hosting without defining it first. When I think of "cloud", these are the things that come to mind:
- quickly add/remove resources with little or no lead time
- hosting platforms that allow for quick provisioning of highly available systems
- self-service adjustment of tangible and intangible resources that normally require human intervention
That list may seem a bit vague at first, but try to let it sink in just a bit. Hosting applications in a "cloud" shouldn't mean that you must have a virtual instance running on Xen, KVM or VMWare, and it shouldn't mean that you must have an account with Rackspace Cloud, Amazon EC2, or Microsoft Azure. It means that your hosting operations are highly automated and you can rapidly allocate and deallocate resources for the requirements of your current projects.
Consider this: a customer of a traditional dedicated hosting provider decides to take their applications and host them on one VPS at a leading commercial provider. That provider allows the customer to spin up new VM's in a matter of minutes and re-image the VM's whenever they like. Is that cloud hosting? I'd say yes -- even if it's one single virtual instance. That customer has moved from a hosting system with manual interventions and extended lead times to a system where they have instant control over their resources.
It's not possible to talk about what cloud is without talking about what it isn't.
- Cloud is not infinitely scalable. If any provider ever claims that their solution is "infinitely scalable", you should be skeptical. Regardless of the provider, everyone eventually runs out of datacenter space, servers, network bandwidth, or power. (If you know of a provider that is infinitely scalable, please let me know as I'd love to see their facilities and review their supply chain.)
- Cloud isn't right for everybody. Some applications have demands that cloud hosting might not be able to meet (yet). If an application depends on proprietary hardware that is difficult to virtualize or rapidly allocate, cloud hosting is probably not the answer for that particular application.
- Cloud doesn't mean VPS. VPS doesn't mean cloud. As I said before, having a virtual private server environment is not a pre-requisite for cloud hosting. Also, not all VPS solutions fit my definition of cloud as they don't allow for rapid deployments and resource adjustments.
It's important to remember that cloud hosting is a marketing term. As for the technology of cloud, it's what you make of it. You should be looking to reduce costs, solidify availability and increase performance every day. If the ideals of cloud hosting help you do that, it might be the right option for you.

"resource adjustments"
I have dipped my toe into the cloud. Tried to set up a LAMP server. I thought it would be easy to shrink/expand disk size as needed.
My server was CentOS 5.5. When I tried to increase disk size I was somewhat disappointed! Sure on my cloud control panel I could upgrade to more space. But being a Linux novice I was naive about how easy it would then be to make use of that space! Eventually I'm afraid I gave up.
(I should say this was not on the Rackspace Cloud. My bad? Thanks for MySQL tuner by the way)
Richard -
I've run into similar problems on some providers before. Some companies try hard to reduce the impact of resource changes while others offload the work onto the customer -- it just depends on their customer base's familiarity level.
You're welcome! I hope to get back to work on MySQLTuner sometime soon.
You are right to say that Cloud hosting is a marketing term, "traditional hosting with the ability to scale within a physical host due to advances in virtual machine technology" doesn't have the same ring, and is a pain to fit onto the whiteboard.
It is also import to remember that the Cloud doesn't remove all of the infrastructure functions traditional hosting requires. Examples of this might be: DR, supplier independence, monitoring, host-level security.
Also, not every cloud-hosted site or application is a consumer webapp, and as such ISO and PCI DSS certification and the like become important.
At its most basic, the Cloud moves infrastructure teams from an "over-buy capacity now and own the kit" financial model to "buy capacity on demand and rent the kit, at a premium" model. Nothing else.
Sam -
Excellent points. You covered some important business points that I neglected in the original post.
Excellent post!