If you’ve travelled through the forest of shared hosting, passed the doorstep of VPS and even scaled the castle walls of dedicated servers but still haven’t defeated your hosting dragon, then maybe you need a load balanced server cluster system. The marketing speak way of referring to this is THE CLOUD. This article builds on my web hosting comparison and corresponds to a campus in terms of my ongoing analogy.
The idea is that rather than accommodating all traffic through the same physical location, you have multiple locations and visitors are directed to the location that is least busy at any given moment. In a system like this there’s a guy at the gate and for each visitor he does a quick check and sends them somewhere to get serviced. The next visitor might go to the same place or a different place depending on how busy that location is when the visitor arrives.
Is there really a cloud?
The reason this is referred to as a cloud is that the number of machines that are serving requests for a given page may increase or decrease depending on the number of visitors requesting it. Once the system is setup correctly, it will do this automatically without requiring intervention by the site administrator. The system will scale automatically when large spikes in traffic come. If you’ve ever had your site crash under heavy load this should be music to your ears.
Behind the scenes this is really a cluster of computers, and each node (computer) in the cluster can accommodate requests. There are one or more machines that perform load balancing. That means they monitor how busy each computer in the cluster is and send new traffic to the machines that have the least amount of work. They can also assign new machines to take on responsibility when the existing number of machines aren’t sufficient to accommodate a traffic spike.
Examples of cloud computing
When wass the last time you did a search on Google and it took 2 minutes to process? Or when did you last see a server error on Amazon.com? Well, Google actually has about 400,000 servers answering requests. While not all of those servers are strictly for the search engine, you get the idea that if you want to accommodate large amounts of traffic you can’t get by with just a single machine. It’s just like a superstore with dozens of checkout lanes, or a large event center with many doors. If you want to accommodate many people you need many resources, and load balancing is the best way to do this.
Good uses for cloud computing
If your site gets large, localized spikes in traffic, then cloud hosting might be the best option. There are a lot of things that can cause large spikes in traffic. For example:
- You end up on TV, or get featured by other media
- You get featured on a site like Digg or Slashdot
- You do a product launch
There are other scenarios, but that should give you an idea of when you might want to be in “the cloud”. A cloud hosting environment in many cases would easily accommodate millions of page views per month.
When not to buy cloud hosting
If your site visitors are evenly spaced and don’t come all at the same time then you might not need the overhead of cloud hosting. It might also be good to avoid cloud hosting if you have very custom server requirements or very strict data isolation requirements. Unless you build your own load balanced server cluster, then you want to keep in mind that cloud hosting is a shared environment. Even though it’s shared, it is unlikely that other users spikes in traffic will affect you, but that can still happen.
Another aspect of cloud hosting that might surprise a lot of people is that it doesn’t cost a lot (comparatively). For example, many dedicated servers start at $99 and a cloud hosting account goes for about $150. One thing to be leery of is that there are a lot of service providers out there that claim to provide cloud hosting, but they can mean very different things. As with most services in life, you get what you pay for, but $150/month gives you quite a lot.
I recommend rackspace cloud for hosting needs that exceed that of a dedicated server (or even for VPS hosting). In fact, the ease of use for their cloudsites offering make it much easier to get a scalable site up and running quickly. You don’t have to worry about server setup, maintenance or other messy details. For my highest traffic sites this is the top of the stack.
If you’ve already been dashed on the rocks of disappointment from shared, VPS or dedicated server hosting, maybe it’s time to upgrade to a load balanced hosting solution.
If a cloud environment is overkill for your site, then you should look into shared hosting, VPS hosting and dedicated server hosting. Each offering has it’s purpose and cloud hosting is for the top of the pile when responsiveness and scalability take highest priority.