Server Load Balancing: Basic Concepts
Server load balancing is not a new concept in the server world. Several clustering technologies were invented to perform collaborative computing, but succeeded only in a few proprietary systems. However, load balancers have emerged as a powerful solution for mainstream applications to address several areas, including server farm scalability, availability, security, and manageability. First and foremost, load balancing dramatically improves the scalability of an application or server farm by distributing the load across multiple servers. Second, load balancing improves availability because it is able to direct the traffic to alternate servers if a server or application fails. Third, load balancing improves manageability in several ways by allowing network and server administrators to move an application from one server to another or to add more servers to run the application on the fly. Last, but not least, load balancers improve security by protecting the server farms against multiple forms of denial−of−service (DoS) attacks.
The advent of the Internet has given rise to a whole set of new applications or services: Web, DNS, FTP, SMTP, and so on. Fortunately, dividing the task of processing Internet traffic is relatively easy. Because the Internet consists of a number of clients requesting a particular service and each client can be identified by an IP address, it’s relatively easy to distribute the load across multiple servers that provide the same service or run the same application.
This chapter introduces the basic concepts of server load balancing, and covers several fundamental concepts that are key to understanding how load balancers work. While load balancers can be used with several different applications, load balancers are often deployed to manage Web servers. Although, we will use Web servers as an example to discuss and understand load balancing, all of these concepts can be applied to many other applications as well.