What is Load Balancing?
What is Load Balancing?
Load balancing refers to efficiently distributing incoming web traffic across a group of backend servers. For example, if you have 4 web server domains supporting your production environment, you’d like to get equal distribution of web traffic amongst these servers for an optimal performance.
Some of the popular load balancers include F5 Big-IP, NGINX Plus, Citrix Netscaler ADC to name a few.
A load balancer acts as the “traffic cop” sitting in front of your web servers (or even one level further up in front of your apache servers) and routes client requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. The load balancer routinely performs checks (like every 30 seconds) to verify if all the servers are up and running or not. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a server comes back online, the load balancer automatically starts to send requests to it.
In this manner, a load balancer performs the following functions:
- Distributes client requests or network load efficiently across multiple servers
- Ensures high availability and reliability by sending requests only to servers that are online
- Provides the flexibility to add or subtract servers as demand dictates
Load Balancing Algorithms
Load balancers use algorithms to make the web traffic decisions. The algorithm chosen will depend on the type of service or application being served and the status of the network and servers at the time of the request. Some of the common algorithm techniques in use are:
- Round Robin – Requests are distributed across the group of servers sequentially. Round Robin works well in most configurations, but is served best when the servers that you are load balancing are equal in processing speed, connection speed, and/or memory. If all the servers are not equal, there is an option of using weighted round robin (also called Ratio) as well. There is also something known as dynamic round robin (or dynamic ratio), which is similar to Weighted Round Robin, however, weights are based on continuous monitoring of the servers and are therefore continually changing. Dynamic round robin is rarely available in simple load balancers.
- Least Connections – A new request is sent to the server with the fewest current connections to clients. The Least Connection method does not take current server load into consideration but makes use of relative computing capacity of each server is factored into determining which one has the least connections.
- IP Hash – Source IP Hash load balancing uses an algorithm that takes the source and destination IP address of the client and server and combines them to generate a unique hash key. This key is used to allocate the client to a particular server. As the key can be regenerated if the session is broken this method of load balancing can ensure that the client request is directed to the same server that it was using previously. This is useful situation like to retain items in a shopping cart between sessions.
- Random – Requests are distributed randomly across the group of servers, picking one via random number generation and sending the current connection to it. While it is available on many load balancing products, its usefulness is questionable.
Hardware vs. Software Load Balancing
Load balancers typically come in two flavors: hardware-based and software-based.
Vendors of hardware-based solutions load proprietary software onto the machine they provide, which often uses specialized processors. To cope with increasing traffic at your website, you have to buy more or bigger machines from the vendor. Examples of hardware load balancers include F5 Big-IP, Barracuda load balancer etc.
Software solutions generally run on commodity hardware, making them less expensive and more flexible. You can install the software on the hardware of your choice or in cloud environments like AWS EC2. Software load balancer deployment is also known as application delivery controller or ADC. NGINX, Mod Athena are software load balancers.
Load Balancer Placement in PeopleSoft Applications
In PeopleSoft application, there are several places where you can place a load balancer. Note that you actually don’t place a load balancer physically but redirect the network traffic from certain places to the load balancer. This task is carried by Network Administrators in consultation with PeopleSoft Administrators.
- The most common place to put load balancers is before your web domains.
- If using multiple integration broker domains, you can place load balancer before them.
Click here for high availability, failover and load balancing PeopleSoft applications.