What's the difference between cloud hosting and normal hosting?

Firstly, "cloud computing" is a vague term created by marketing as a set of features, and diluted by sales people pushing services when applications aren't obvious to their customers. I will assume we're mainly discussing elastic computing and any technologies necessary to implement that, like hypervisors and distrubuted storage.

Elastic computing is a tool to scale your computer power up and down as needed. It's related to time-share, but instead of one large mainframe to rent server time on, you're given a large cloud of servers to rent or share. You can script the start and closing of additional nodes, to match your use of the cloud to demand for the services those nodes offer.

The important distinction between elastic compute clouds and normal hosting is provisioning. Imagine you run a website that publishes football scores, and you're very popular. To make a profit you need to keep the website responsive under heavy load. We're talking Superbowl heavy load. Constant refreshes and sustained traffic for hours. In order to meet that goal, you could buy a massive server farm that can handle Superbowl traffic, and let them sit mostly idle during the off-season. Or you could buy server time from an elastic compute cloud to make up the difference. Normal hosting services may choose to simply fail during high load, with catastrophic effects on your Superbowl revenue. They may even kick you off for too much CPU use or network traffic.

Economically, cloud computing allows for full employment of servers. Rather than have everyone buy lots of beefy hardware in case of Slashdot, the hardware that would serve Slashdotters can migrate to the sites that need it (and pay for it). Combined with economies of scale, we can expect that large compute farms may become cheaper than hosted or colocated solutions. If APIs are created to migrate servers between clouds, additional competitive forces may help drive prices towards marginal costs; hence the chasm between Amazon and the Cloud Computing Bill of Rights. Some are proposing a cloud marketplace, where cloud computing is bought and sold by principles of supply and demand. This would encourage people to shift compute power to off peak hours, as we see with cell phone plans and industrial use of electricity.

The reasons to stay away from cloud computing are twofold: price, and privacy. None of the above guarantees cloud computing will be cheaper than your current solution. You may be fine with failure during Superbowl events. Or it may be cheaper for you to build and buy your own servers and datacenter. Alternatively, you may have data you would prefer not reside in the hands of anonymous cloud vendors whose security and technology may leak information about your service or your customers. The last part means you may in fact be legally impaired from implementing cloud computing, as the cloud vendor has access to your disk and RAM.


Hosting is actually more complex than just 'regular' and 'cloud'. There are actually quite a range of traditional hosting solutions that fall under 'normal' hosting and at least two major classes of 'cloud' to consider. The end benefit to the customer for picking the right platform is they pay the least amount to get their site running with the technology they need to make it a success. What that platform is depends on the technical needs for development as well as the specific needs for scaling during both development and as it is released to production.

In short, a brief analysis to help make a decision:

Use classic 'shared' hosting if you're just getting started and have no money (you can get in for $2-10 US/month), upgrade this decision to getting a VPS if you do have money, with the plans to migrate to a dedicated server if you plan on getting serious traffic or are doing heavy data crunching (think: anything that requires a single core or multiple cpu cores to do it's work).

Use cloud hosting if you're confident in being able to scale your application horizontally using traditional technology or you intend to build your application onto an 'application' cloud's archictecture. Also use cloud if you have an existing application built on traditional technology that suffers from lots of idle hardware during peak times.

In long, an explanation of the different kinds of hosting:

There are three or four kinds of 'normal' hosting:

You have general 'shared', which means your account will share a server with many other accounts and likely you will have little control over the core server configuration outside of what you can do with your specific application. (Hint: If you're running php + mysql, this is likely not going to be an issue as this is the most commoditized, asp + mssql is also fairly standard but I don't really fly in that market). While 'shared' hosting is often oversold, you can find reputable companies who know how to provide stellar service to individuals and SMB's in the 'shared' market, often at less than what you're paying for your cellphone monthly.

You also have VPS hosting, which leverages virtualization to give you a larger slice of system resources on a powerful machine. With a VPS, you get a 'virtual' server you can configure (or order configured) tuned to your specific needs. You can also get burstable resources usage with this depending on your hosting company and what your/their technical capabilties are to configure a server to suit your needs.

The last level is dedicated hosting, which can include everything up to one servers to dozens of servers with custom network equipment and full managed support. This can also include co-location (probably a 'fourth' level of this) where you'll purchase hardware from your host or have it shipped to a datacenter and installed and managed by a team.

There are also two ways to use 'cloud' hosting:

Cloud hosting can come in the form of a what is essentially server instances that can be given dedicated resources and have completely virtualized networking and storage. You'll 'spin up' instances as you need them (or your provider will do this 'magically on the back end) to scale your application across multiple virtual and physical servers.

Cloud hosting can also come in the form of a platform to build your application (see: google app engine), where you may need to start from the ground up with your application or migrate your existing application over to a new system.

Which one of these two you pick often comes from whether you have a pre-built application/are using pieces from existing software or are writing something completely new from the ground up.