Quote: sales@farpost.com
24/7 Support: support@farpost.com

Setup load-balancing solutions

Setup hardware and software load-balancing and fail-over solutions.
Request Quote

What is load balancing?

The concept is simple. When a company has only a single web server, all web traffic goes to that server. This is known as a single point of failure. In order to eliminate the single point of failure, or to add more capacity to their network, a company might invest in multiple Web servers. How is traffic distributed evenly amongst the web servers? How is traffic diverted in case of a server outage?

The easiest way of doing so is to use Round Robin DNS. This entails a change to your site's DNS record so that requests are sent to separate IP addresses. Think of the IP addresses as a deck of cards. When a request is made to the DNS, the address on the top card is returned then that card is moved to the bottom of the deck. While this does distribute the traffic evenly between servers it is not very elegant. If a server crashes or is taken down for maintenance, traffic is still sent to the server's IP address. This leads a loss of half or more of the servers requests.. And that leads to irate customers. And that's bad.

To get around this, you can purchase an intelligent load balancer. These products detect down and/or slow servers and send requests to servers that can best handle them. The result is greater up time, a faster site, and generally happier customers - all in all - very good things.

When a load balancer is in place, Web clients connect to a virtual Web site. The load balancer distributes user requests to multiple servers based on traffic volume and server availability. Many of today's load-balancing products also provide content-based balancing, which allows Web administrators to match traffic to server power by designating a large, fast disk array for image content and a fast and secure server for Secure Sockets Layer (SSL) and electronic commerce transactions. Some load balancers can perform trickier maneuvers, such as isolating Common Gateway Interface requests and sending them to a separate server or prioritizing SSL traffic over HTML traffic.

Sophisticated load balancers can operate globally, managing traffic among multiple geographically dispersed sites. Global load balancing ensures that content and applications are quickly and cost-effectively made available to distant users.

A few of the big names in this market are Cisco, Microsoft and IBM. But there are a cadre of smaller, more focused start-ups - including Alteon WebSystems, ArrowPoint Communications, Coyote Point, F5 Networks, HydraWeb Technologies, IPivot, Radware and Resonate. They tend to innovate a lot faster and often provide more comprehensive technical support because load balancing is their mainstay.

Where to start? First we need to start by characterizing the nature of our websites:

What are our application requirements, which will determine the type of persistency policies we need. In the Web server world, persistence means a repeat user is connected to a Web server that is aware of that user's previous requests and account status. For example, if a user browses a site and places items in a shopping cart during one visit and then returns to the site to execute the purchase, the load balancer needs to connect that user to a server that remembers the items placed on hold.

Second, We need to determine the scale we need now and estimate the scale we expect to need in two years based on hits per second, number of simultaneous users and bandwidth requirements - making sure we take into account the maximum capacity of other key elements of our systems, such as WAN link size, database server capacity and application server capacity.

Consider our application architecture. Is it two-tier or N-tier, with different levels of transaction processing at each tier? Do we plan to migrate over time?

A final design requires much more information. But addressing these factors will give us a good foundation and help narrow our list of alternatives. We can then use more detailed information to make good choices about the performance, scalability, redundancy and management features desired.

Software

Software vendors generally deliver their products on CD-ROMs that you install on computer platforms and operating systems of your choice. The load balancer uses the memory, CPU and I/O resources of the platform.

It sounds pretty straightforward, yet within the software category, vendors manage to distinguish themselves by the way they've designed the scheduler, which is responsible for receiving and forwarding user requests to the appropriate server.

Through its Windows NT Load Balancing Service, Microsoft offers a completely distributed system wherein a scheduler is deployed on each content server and all traffic is sent to all servers. IBM's WebSphere Performance Pack is more traditional - software is centralized and simply loaded onto a hardware platform that becomes the site scheduler. All traffic passes through the single scheduler and is distributed to the content servers.

Resonate's Central Dispatch software partitions the scheduler function between a central scheduler and the content servers. This off-loads some functions from the scheduler, which improves performance. Central Dispatch also lets you turn on as many schedulers on as many servers as you need to meet site performance requirements.

Some vendors choose to prepackage their load balancing products in dedicated hardware devices. This allows the manufacturer to select peripherals and drivers, memory speeds and sizes, and operating system parameters tailored for each customer's performance and capacity needs.

Dedicated Hardware Devices

To date, the preloaded device approach has been the simplest and fastest way to get new features to market. The hardware engineering effort required is small, and vendors can focus on software development. Unlike pure software vendors, dedicated hardware vendors don't have to support their products on many different operating systems. Many of the early load-balancing vendors, such as Cisco, F5 Networks and RadWare, have chosen the dedicated device path. Their products have helped define the market and add sophistication to feature sets. Newcomers IPivot and Coyote Point Systems have also chosen to use this model. These devices generally sit between the firewall & a switch, which then connects to the server cluster. iPivot is the only load balancer that I know of that supports pass through SSL2 encryption.

Load balancing Switches

Load-balancing switches combine load-balancing functionality with Layer 2 and 3 routing features. These devices can reduce the number of hardware boxes at a site if you can consolidate individual routers, switches, bandwidth managers and load balancers, and implement all these functions with redundancy.

Load-balancing switches are often among the fastest performing devices. Application Specific Integrated Circuits (ASIC) built for server load balancers usually provide some kind of hardware assist for low-level packet processing because these are common functions needed by routers. After that it comes down to software processing, which is where the switch vendors really begin to distinguish themselves.

Foundry uses its internal management CPU for all load-balancing functions. Alteon, on the other hand, has integrated two RISC processor cores into each of their ASICs, one of which is used per physical port. Therefore, in a 10-port Alteon box, you have 20 processors working, performing all heavy-duty load-balancing tasks.

ArrowPoint's CS-100 and CS-800 switches use an internal MMC chipset that has been microcoded to provide distributed software-based processing at hardware speeds. A central processor handles HTTP processing and cores management functions. HolonTech uses a chip for basic Layer 2 switching, but augments it with ASICs to accelerate some load-balancing functions.