Keep your Web site's service consistent and uninterrupted
All load balancing distributes a common workload among multiple machines, but the term is difficult to define more specifically in a Web context. The definition of load varies among load-balancing products for Web servers: One product defines load as the retrieval of static HTML pages, and another defines load as the back-end processing that dynamic Web content requires. Vendors don't use a common definition of balance, either. Web-based load-balancing products differ significantly in their methods for distributing servers' loads.
Load-Balancing Techniques
You can achieve load balancing on a Windows NT Web server using the Domain Name System. DNS's round-robin function spreads incoming TCP/IP requests evenly among several servers. This load-balancing technique is easy to implement and doesn't require software other than NT. But DNS doesn't keep track of which servers are active and which are down, so it sends TCP/IP requests to servers whether they are online or offline. To distribute your Web site's load without interrupting its performance, you need to implement a load-balancing solution that works seamlessly when a server fails. (For more detailed information about using round-robin DNS, see Douglas Toombs, "Load Sharing for Your NT Web Server," April 1998.)
To get a handle on what load balancing can do for a Web server running NT, I tested four products: Resonate's Central Dispatch 2.1B3, Bright Tiger Technologies' ClusterCATS 1.1, Valence Research's Convoy Cluster 2.03, and Tandem's NonStop WebCharger 1.0A+. Each product uses one of three techniques to achieve load balancing: virtual IP addressing, HTTP redirecting, or application load balancing.
Virtual IP addressing.
Virtual IP addressing lets multiple servers respond to requests for one IP address. For example, suppose you have three NT servers with the IP addresses 222.222.231.1, 222.222.231.2, and 222.222.231.3. You can use virtual IP addressing software to configure all three servers to use IP address 222.222.231.10. You designate one server as the routing, or scheduling, server. The scheduling server receives all inbound traffic and routes requests for Web content to other servers based on load-balancing parameters you set. If the scheduling server fails, virtual IP addressing software assigns routing responsibilities to another server.
Because the Web interface uses one IP address, virtual IP addressing achieves uninterrupted service unless all your Web servers fail. The disadvantage of virtual IP addressing is that you can't easily watch the flow of Web traffic from an external network monitor because all the servers use one IP address.
HTTP redirecting.
HTTP redirecting distributes a Web site's load among multiple servers by connecting users' browsers directly to the servers. When you select a Web site's URL, you usually connect directly to the computer servicing that URL. For example, type http://www.winntmag.com, and the server designated to respond to requests for that HTTP address will provide the Windows NT Magazine Web site. However, if the Windows NT Magazine site has a replica on a server with the URL http://www.winnt
mag2.com, an HTTP-redirecting program can redirect users' browsers to http://
www.winntmag2.com to balance the Web site's load. HTTP-redirecting software automatically directs browsers to a Web site replica if the primary URL's server fails. HTTP redirecting's main disadvantage is that it doesn't work with all Web browsers.
Application load balancing.
Application load-balancing software distributes a Web site's workload among servers according to the content browsers request. A primary Web server accepts all incoming Web traffic and performs tasks such as static HTML file transmissions. The primary server redirects back-
end applications, such as Active Server Pages (ASP) and Common Gateway Interface (CGI) programs, to other computers. Servers process back-end applications more efficiently when those ap-
plications aren't intermingled with HTML file processing, so application load balancing reduces response time for back-end applications.
The Tests
To evaluate the four load-balancing products I selected, I compared their load-balancing techniques and examined their features. I determined whether the products include built-in alert options such as email, Simple Network Management Protocol (SNMP) messaging, or paging. I tested whether the products let a node re-enter a load-balancing group when the node reboots. I looked at whether each product supports load balancing of other TCP/IP services, including FTP and Telnet. I checked whether each product works on multiple Web server products, and whether each product includes a built-in monitoring tool or replication capability. I considered the hardware the products require (their overhead) and each product's price. Finally, I examined each product's installation process, documentation, online Help, and technical support. Table 1, page 69, shows my analysis of the products' features.
After I evaluated the products' features, I used two tools to test their load-balancing capabilities. First, I used the Web Capacity Analysis Tool (WCAT), which comes in Microsoft Windows NT Server 4.0 Resource Kit, Supplement One, to test the products that use virtual IP addressing and application load balancing. WCAT ran scripts that generated a variety of workloads on two test servers and measured the products' ability to balance each workload. (For more information about WCAT, see T.J. Harty, "Testing Your Web Environment," December 1997.) Second, because WCAT can't test HTTP redirecting, I used Technovations' Websizr to generate HTTP-redirect scripts and test the load-balancing capability of ClusterCATS. (For more information about Websizr, go to http://
www.technovations.com.)