DevCentral > Weblogs > Lori MacVittie - Two Different Socks

posted on Wednesday, January 20, 2010 5:58 AM

Most people don’t start thinking they need a “load balancer” until they need a second server. But even if you’ve only got one server a “load balancer” can help with availability, with performance, and make the transition later on to a multiple server site a whole lot easier.

Before we reveal the secret sauce, let me first say that if you have only one server and the application crashes or the network stack flakes out, you’re out of luck. There are a lot of confusedthings load balancers/application delivery controllers can do with only one server, but automagically fixing application crashes or network connectivity issues ain’t in the list. If these are concerns, then you really do need a second server.

But if you’re just worried about standing up to the load then a Load balancer for even a single server can definitely give you a boost.


HERE COMES THE SCIENCE

  1. A modern load balancer, a.k.a. application delivery controller, can optimize TCP connections via TCP multiplexing. This will improve resource (RAM, CPU) utilization and increase the total number of concurrent users you can serve on a single server. In the face of a request onslaught, this one feature may be the difference between users  seeing “Connection Timed Out” and your content.
  2. Offloading CPU intense operations like compression and SSL operations also improves capacity by letting your application spend time on application logic rather than ancillary encryption functions. Depending on the size and type of content and length of keys, this can net you a nice boost in not only capacity but also performance.
  3. Applying security at the edge of the network before it gets to the server can alleviate a lot of painful processing that essentially results in nothing more than a rejection (or worse, a compromised site). Protocol layer security detects and mitigates DoS attacks, manipulation of protocols as an attempted exploit of the network, and other protocol related attacks. Rather than wasting server resources on these useless packets, a load balancer/application delivery controller can do it at the point of entry, thus improving the capacity of the server to handle legitimate requests.

Now it is absolutely true that what these techniques offer is a way to increase capacity, which may in most cases keep a site available. But there are always situations in which the load is just too much for a single server and in that case, you’re going to have to bite the bullet and either build out a cloud bursting architecture, invest in more servers, or move to a cloud environment. The good news is that these techniques work just as well for two or three or four (hundred) servers as it does for one.

There’s also the added benefit that if you do need to scale out and add a second (or third) server in the future that it can be done in a non-disruptive manner if you already have a load balancing/application delivery solution in place. Just add the server to the load balancer and voila! Scalability. It’s really that easy. If you don’t start with one you may have some network and/or server reconfiguration that needs to be accomplished and that can often result in the dreaded “D” word: downtime.

So if you were thinking that you didn’t need a load balancing solution because you only had one server, or that there’s really not much that can be done to improve the capacity of a single server and keep a site available, think again. There just might be a solution after all.

WILS: Write It Like Seth. Seth Godin always gets his point across with brevity and wit. WILS is an ATTEMPT TO BE concise about application delivery TOPICS AND just get straight to the point. NO DILLY DALLYING AROUND.

Follow me on Twitter    View Lori's profile on SlideShare  friendfeed icon_facebook

AddThis Feed Button Bookmark and Share

Related blogs & articles:


Feedback

1/20/2010 6:36 AM
Gravatar And, even better, with load balancers with appropriate scripting capabilities (Application Delivery Controllers), you can even put content on the load balancer itself (either embedded in the script - ugh, or accessible from the local filesystem). Then, if your single web server fails catastrophically, you can serve backup content from the App Delivery Controller.

Not only useful for hosting standalone error pages when you take your single server down for maintenance; you can potentially also dispense with your webservers altogether for static content.
Owen Garrett
1/20/2010 7:14 PM
Gravatar Great article Lori. Like the simpliciy of addressing the ability to provide performance metrics to one server, it scales exponentially with many more!
Combat Networks
1/25/2010 3:55 AM
Gravatar How To Use CoralCDN On-Demand to Keep Your Site Available. For Free.
Lori MacVittie

Let Me Know What You Think


Please use the form below if you have any comments, questions, or suggestions.

Title:
 
Name:
 
Email: (so we can show your gravatar)
Website:
Comment: Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code
 
Please add 8 and 5 and type the answer here:
Blog Stats
Posts:749
Comments:1425
Stories:0
Trackbacks:397
Application Delivery
Cloud Computing
Random

Chat Catcher