INetU Managed Hosting

Scaling Out Web Tiers — Part I

March 26th, 2009 by Rich H.

Congratulations! If you’re reading this, you’re likely the proud owner of a website that’s crossed into the territory of requiring either high-availability hosting or additional performance.

Let’s assume, for the sake of this example, your web tier is running .NET and your database is running on a separate stand-alone server. If you’re still running both your web and DB tier on the same server, you should separate those roles before reading any further. The methods for scaling a web tier are generally not compatible with having a combined web/db tier.

Whether the goal is reliability, performance, or both, you’re going to need some way of balancing or directing incoming load to your web site across multiple servers. This is generally done with a hardware load balancer. It can also be accomplished through many varieties of software load balancing or DNS tricks, but there are many limitations you’ll face. Some of these typical limitations encountered with software load balancing are:

  1. Inefficient use of network gear, and sometimes incompatibility with existing network gear
  2. Supports fewer servers
  3. Typically no re-connection or session-storing options
  4. All servers must be on the same subnet
  5. Higher-end equipment needed to support the additional task of your servers performing the load balancing
  6. Generally no way to provide redundancy to the actual load balancing tier

Hardware load balancers whose only role in life is to disperse visitors to your website are more efficient/reliable in comparison to any software-based solution, and are the clear choice for any business-driven web presence.

Selecting the right load balancer is a crucial step in this scaling-out process. Inexpensive load balancers perform a quick check to make sure the web server they’re about to send traffic to is alive and responding. Unfortunately, they don’t care what that response is. Your web server could be responding with, “ERROR: 9009 — Please send help, my drives are on fire!!”. This is certainly not what you would want your customers to see when visiting your site.

A full-featured application-aware load balancer has the intelligence to determine if your website is responding correctly before sending traffic there. For example, you could create a test page on your website for the load balancer to check that assembles a few variables in .NET and makes a call to your database tier. If .NET fails to assemble the variables, or the database call fails, the correct string is not returned and the load balancer will not send traffic to that web server.

In Part II we’ll cover how to pick the shiny new servers to add to your web tier behind the load balancer you select, so stay tuned!

Other posts that might interest you:

Leave a Reply

©1996-2010 INetU Inc, All rights reserved.