- The Importance of Scaling
- Scaling Considerations
- How to Write ColdFusion MX Applications that Scale
- Keeping Web Site Servers in Sync
- Hardware Versus Software Load-Balancing Options
- Scaling with ClusterCATS
- Hardware Load- Balancing Options
- Finishing Up
Hardware Versus Software Load-Balancing Options
ClusterCATS and Software-Based Load Balancing
In most software-based load-balancing methodologies, a service runs on each machine in a cluster. A machine designated as the primary cluster server distributes load to the other servers in the cluster. Should one server go down, the other machines in the cluster are notified by communication among each server's cluster service, and they act to absorb the extra load. One limitation of this approach is that it requires your Web servers to act as their own clustering agents, but this also eliminates a single point of failure with the load balancer.
Macromedia's ClusterCATS provides load balancing and failover services for ColdFusion MX and JRun Web sites. You can build and manage clusters using the ClusterCATS Explorer. It can detect failed servers and busy applications, and provide redirection from these servers to other available servers. ClusterCATS uses HTTP redirection to balance load across a cluster (see Figure 3.15). ClusterCATS runs on Windows, Solaris, and Linux platforms.
Application and server load management for ColdFusion and JRun applications is provided. Server failover is also provided where requests to failed servers are redirected to other servers in the cluster.
Session state management can be implemented so that users stay on the same server for the duration of their session.
Application servers can be monitored and restarted if they fail.
All servers in the cluster work together to manage HTTP requests eliminating a single point of failure for the load balancer.
Centralized configuration services for all nodes in the cluster is provided.
See Table 3.2 for advantages and disadvantages to ClusterCATS software-based load balancing.
Table 3.2 ClusterCATS Advantages and Disadvantages
ADVANTAGES |
DISADVANTAGES |
Tightly integrated with ColdFusion MX and JRun |
Negates full proportional distribution of load |
Provides for failover and content awareness |
No intermediary between servers and load |
Can perform session-aware clustering |
Does not provide for network address translation for security |
Can work with RRDNS as a two-layer approach |
|
No single point of failure |
|
Included with ColdFusion MX Enterprise |
|
Inexpensive |
Dedicated Load-Balancing Hardware
Two Types of Hardware Load Balancers
Hardware load balancers come in two basic flavors:
Server-based load-balancing hardware. Server-class PCs with specialized load-balancing software. The most widely used load balancers on the market today are Cisco's LocalDirector and F5' BigIP series.
Content-switch-based load balancers. Load balancers such as Cisco's CSS series combine the efficiency of routing switch with load-balancing software that acts as an intelligent switching device.
Using dedicated load-balancing hardware is the most sophisticated way to balance load across a cluster. Hardware-based load balancers sit in front of the Web servers and route all requests to the Web servers. Requests come in to a single IP address for your domain. The load-balancing hardware answers the request and mediates with individual Web servers to provide a response that appears to have originated from your domain's single public IP address. This form of distribution relies on complex algorithms to determine which Web server is "most available" at the time the request is presented. Usually this determination is made by server polling for HTTP response time and optionally by the use of agents residing on the Web servers that make up your cluster. The agents report to the load-balancing hardware various aspects of your system's performance, such as CPU utilization, process utilization, and other vital machine statistics. Based on this data, the device routes the request to the most available server. Server failover is managed because a server fails polling tests and doesn't return any usable performance data via its agent.
Setting up load-balancing hardware is fairly complex. Load-balancing hardware is generally dual-homed (see the section "Tiered Application Architecture" in this chapter). Configuration requires fairly robust knowledge of TCP/IP networking principles, as well as the ability to absorb new concepts associated with the load-balancing hardware itself. For example, one downside to load-balancing hardware is the single-point-of-failure problem. To alleviate this issue, most load-balancing hardware manufacturers recommend that you purchase two boxes and set them up so that the second can seam-lessly take over for the first in case of failure. This backup box is known as a hot spare. You also need to address security and administration issues for your load-balancing hardware, just as you would for any other machine on your network.
NOTE
Only qualified routing technicians should set up hardware-based load balancing. Because these machines actually translate addresses, you can affect the operation of other routers on your network with an incorrect installation or modification. In addition, network address translations (NATs) can affect the way your site functions after it is behind the load balancer.
Hardware-based load balancing provides an enhanced level of security because most of this hardware uses network address translation (NAT). This way, an administrator can use private, non-routable IP numbers to address Web servers and filter requests to those machines on specific ports at the NAT machine. For example, the NAT machine knows that 192.168.0.1 is a Web server behind it. An instruction is given to the NAT machine that says a public address of 206.123.23.5 maps to 192.168.0.1 on port 80. Then, when a request comes to 206.123.23.5 on port 80, the NAT machine passes the request through to the back-end server. The user, however, never knows the true IP address of the server responding to the request, and a different server could be substituted for 192.168.0.1 by changing the mapping. See Table 3.3 for advantages and disadvantages to using a hardware load-balancing solution.
Table 3.3 Hardware-Based Load-Balancing Advantages and Disadvantages
ADVANTAGES |
DISADVANTAGES |
Provides true distribution of load based on server resources |
Requires advanced networking knowledge based on server resources to set up and administer |
Acts as an added layer of security |
Single point of failure |
Provides for automatic failover to standby machines |
Expensive |
More reliable than software-based solutions |
|
Enables a single URL to access all machines behind load balance (more seamless to end user) |