Many of our customers have found that as the number of critical applications and services increases in their environment, so does the need to deliver them to their users continuously. Additionally, users are demanding more out of the applications, wanting customized views, dynamic data, and ad-hoc reporting. These requirements are putting additional stress on the web servers and application infrastructure. Often, web or application servers become overly taxed, and appear non-responsive to the users.
To address this problem, many IT organizations have implemented DNS round robin. This is an inexpensive and quick method of distributing the user connections among two or more web or application servers. This method is very basic, in that two or more DNS entries are made for the web server or application, one for each server that will answer requests. For example, myapplication.identityautomation.com may have two entries, one that points to server1.identityautomation.com and one that points to server2.identityautomation.com. However, as simple as this may be, there are drawbacks to using this method to spread the load among the infrastructure. DNS round robin might be more appropriately named DNS random robin, as DNS servers cannot tell if a server is available before they respond with the server name to the requestor, nor can they help in the case of cached DNS entries on a user’s computer. DNS round robin will simply hand out server1 then server2, and then repeat this. Hypothetically, the DNS server could hand out server1 several times in a row. Furthermore, the session state will be opened with the server that DNS returns to the user, and in the event that something happens to the server, that conversation is broken and dropped.
An alternative to DNS round robin is to use a load balancing appliance that can load balance at different layers of the Open Systems Interconnect (OSI) model. A load balancing appliance, such as a Citrix Netscaler MPX series device, uses algorithms that can be customized to first check to see if a server is available to service a request, and also determine how many connections that server already has. Some of these devices can dig further into the application infrastructure to determine if the server has enough memory, cpu, etc. to service the request. Load Balancing appliances can even use a geographic algorithm to determine which server is closer to the user and will be better suited to service the request. These appliances make these determinations at an extremely high rate, and often handle 100,000 or more simultaneous requests. They can also maintain session state, ensuring that access to the server or application is continuous and not dropped. One Netscaler model, the MPX 17000, can handle a throughput speed of 18gbps, and handle 1.5 Million HTTP requests per second.
The main drawback to the load balancing appliances is that they are not free. However, managing them is not difficult, and the performance that they offer can help keep the path for the user to access web servers and applications open and available. This allows IT organizations to deliver complex applications to their user community without sacrificing performance, increasing availability, and without relying on randomization.