First, cloud is a buzzword which is used to describe various technologies and techniques, without a single technical definition. It normally means the combination of at least virtualization (think vmware) and a storage network.
Some cloud configurations are better for some situations. For other situations, dedicated hardware is better. Clouds excel when scalability is super important because traffic goes from very low to very high. A site like superbowl.com is a great example. It gets little traffic all year, then suddenly gets super busy for a few hours during the game. It would be silly for them to buy a thousand servers if they only need them for a few hours. On the other hand, a group of porn sites will have similar traffic levels each week, so it can be more efficient to just buy the server.
Clouds can provide tiny virtual private servers with only 512 MB of RAM or less. If for some technical reason you really need a dedicated OS but have little traffic and need little resources, a cloud server can be more efficient on space and power than running an old PII server with a 500 Mhz CPU. On the other hand, if you need 2 GB of RAM or more, you may as well have a whole physical server to yourself.
In theory cloud environments can be set up to be more reliable than individual servers, but in practice that's often not the case. Particularly large public clouds haven't been as reliable as hoped. A single server, once set up properly, will generally continue to run fine until the power supply or the hard drive wears out in about five years or so. The OS may get hacked or otherwise screwed up before that, but that's the same on a cloud as it is on metal. The difference is hardware failure. That'll happen maybe once every five years if you have a single drive and power supply. With monitored RAID and dual power supplies, maybe once in ten years will the hardware fail. On the other hand, a cloud is much more complex, and constantly being expanded, upgraded, and reconfigured. All of that extra complexity means more things can go wrong. A cloud crash every 1-3 years is probably typical. A small, simple, private cloud like we use can be more reliable because as mentioned above if one hardware dies the server is just booted on a different hardware.
An advantage of physical hardware, called bare metal, is that you know what you're getting. If you buy a 2Ghz dual core processor and a pair of Cheetah drives, you know what kind of performance you'll get.
With a public cloud, in the other hand, you are sharing several processors and dozens of drives with hundreds of other people. You have no way of knowing what kind of disk performance you'll get on any given day. So clouds have that uncertainty that you don't know exactly what you're buying, and that encourages vendors to oversell their resources, reducing performance. A small private cloud is like bare metal in that respect. We know that our small cloud has exactly thirty hard drives and twenty-two CPU cores and we know exactly what kind of performance to expect from it.
Lastly, cloud is good for hot spares, like Clonebox. You'll probably only need to run your sites from your Clonebox hot spare server once every few years, so why pay for a dedicated server every month when you're not using it? In this role the cloud server, which is an exact copy of your main server, is a lot like a timeshare. You pay a few dollars a month since you're normally not using any resources other than disk space, but your sites can run from the clone once in a while when something bad happens with your main hosting.
So neither physical hardware nor any particular cloud, public or private, is "better". They are each suited to different needs, with different advantages and disadvantages.
|