What is Cloud Computing, anyway?
Wednesday, March 31st, 2010
Let’s Answer The Question: What is Cloud Computing?
Buzzwords and acronyms are a mixed blessing. On one hand, they are a very useful shorthand for those who are ‘in the know’. However, for those who have no idea what it means, a phrase like “Web 2.0″ or an acronym like “SEO” can be a barrier to understanding, and for those who are too ashamed of their ignorance to ask, they risk using these terms incorrectly.
One of the newer phrases being bandied about is “Cloud Computing”. In order to take the mystery out of the term (and allow us to use the term correctly), let’s answer that question: What is Cloud Computing?
Getting Virtual With Your Servers
To understand Cloud Computing, first you have to understand the concept of Virtualization. Virtualization is the ability to run several standalone disk images on the same server. Being able to create an image of your machine is technology that we’ve been using for years. A typical machine backup involves making an image of the machine and pushing it to another server. Then, when you need to restore your data, you can simply load the disk image onto your new hard drive.
Virtualization is just like this, except you take this disk image and you run it. It’s like having an OS inside of another OS. So you might have a Linux machine that is running several different Virtual machines, disk images that were created and loaded onto the server and assigned an IP address so that you can hit that virtual machine directly.
A Traditional Server Is A Great Big Desktop Computer On Steroids
A traditional server is a great big desktop computer on steroids, with hundreds or even thousands of different websites running on it. They usually will share a single SQL server, run under the same OS, and everything on the server rises and falls together. So if Site A has a big day and receives a hundred thousand requests, it can impact the performance of Site B because Site B resides on the same server and shares resources with Site A (and about a hundred other sites).
There are notable downsides to this traditional approach, namely:
- Hardware Expense- When hardware breaks or gets old and obsolete, you’re going to reinvest in the server that’s been purchased.
- Inefficiency- Of the 100 sites on a server, do all of them really need access to 16GB of RAM? You’re usually increasing your server resources to account for 1 or 2 very busy/intensive sites on a server.
- Shared Risk- When the hard drive of your server fails, every site on the server is going to suffer. When the OS encounters a “blue screen of death” sort of error, it’s going to bring down the entire server. Why should 99 sites suffer for the failure caused by a single site?
There Is A Better Way Up In The Clouds
“There’s got to be a better way!” cries our paid sponsor, and there is. Virtualization offers us the ability to grant every site its very own server, at a fraction of the cost. The hardware doesn’t really matter, because you’re only going to allocate a small portion of system resources to each virtual machine. So even though the server might have 16GB of RAM available, “Bob and Jo’s Kitty Cat Site” might only need a max of 256MB of RAM to run smoothly. If we need to ’scale up’ and provide extra system resources for Bob and Jo’s Kitty Cat Site, we can do that easily and tell our server to allocate 512MB of RAM to the server instead.
This resolves the issue of shared risk, since if Bob and Jo’s Kitty Cat Site encounters a horrible error that requires a restart, you’re only restarting the Virtual Machine that runs on the server, rather than the entire server itself. Service Interruption for a single client, rather than everyone on the server.
This also resolves the issues of efficiency and hardware expense, because at a more granular level you can assess the resource requirements of a site and limit a site to only using the resources it needs, rather than infringing on the resources needed by a more resource-intensive site.
With these advantages, it is no wonder so many companies are moving apps into “the cloud”. Cloud providers like Amazon EC2 and Rackspace offer a very tempting proposal: Create as many servers as you want for a fraction of the cost of doing things “the old way”. Backups and maintenance on the hardware are handled already by the cloud providers, all that a web hosting company has to do is make sure that everything is running smoothly within the virtual machine itself.
Cloud Computing Offers An Inexpensive & Hassle-free Solution
Hopefully this has de-mystified some of the questions regarding Cloud Computing. ArcStone has been using this capability for some time in managing our own servers, and after all of the advantages provided to using this method, it’s hard for us to imagine ever going back.
Of course, this solution is not the right one for all situations, and you should first evaluate the pros and cons of hosting a physical server of your own versus utilizing a cloud computing strategy. In most web apps, however, cloud computing offers an inexpensive and hassle-free solution for your hosting needs.
If you’re interested in learning more about ArcStone’s hosting options see our email and web hosting services page.













