Massive, remote, dispersed and often mobile user bases can cause radical and unpredictable swings in computing demands, requiring powerful technologies capable of dynamically monitoring and scaling IT resources.
Application load balancing and application delivery controllers improve the efficiency of resource utilization for unpredictable workloads and enhance user-facing experience of application performance.
Invest the effort into understanding and choosing appropriate application load-balancing technology to benefit from minimal IT resource usage while ensuring a superior user experience.
Application load-balancing and control technologies
Application load balancing and application delivery control both enhance client-server application performance, via different technologies.
Load balancing involves dedicated hardware or software that listens to network traffic -- such as receiving user requests -- and then distributing that traffic across multiple computing components -- such as application servers. For example, rather than relying on a single application server and network connection to support varying and unpredictable levels of user traffic, a business deploys a cluster of application servers along with multiple network links and redundant access to high-performance storage. Load balancing helps IT deployments handle greater levels of application traffic while minimizing response time that manifests into unwanted application latency.
Load balancing also facilitates redundancy for greater application availability. When an application server fails, traffic reroutes to another available server in the cluster, symmetrically or asymmetrically. Symmetric setups evenly redistribute the workload across available devices. If one server fails in a four server cluster, one-third of its workload would be added to each of the three remaining servers. Asymmetrical load balancing works when servers are not identical so that some servers have more computing resources than others. In this scenario, one or two of the remaining three servers could handle all of the failed server's traffic.
Common load balancing works with a fixed number of servers and related storage and network gear already provisioned to support the cluster, but this is changing. A static approach wastes computing resources if traffic demands are lighter than planned, and can be overwhelmed by higher traffic than expected. Modern application load balancing is getting smarter, integrating with rule-based automation and orchestration platforms capable of detecting traffic levels and spinning up additional server instances and retiring unneeded instances in response to traffic changes. This eliminates a permanent commitment of computing resources and allows much greater application scalability.
Application delivery controllers (ADCs) supply various network services, such as load balancing, network data compression, caching, traffic shaping, application security, SSL offload, content switching and firewalls. Vendors include F5 Networks, Microsoft, KEMP Technologies, Juniper Networks and others. These services present a level of intelligence to improve the flow of application traffic between clients and servers. IT organizations typically use application delivery control services to accelerate websites or web-based applications, offloading many of the tasks routinely performed by web servers.
In many cases today, load balancers and ADCs are virtually indistinguishable. The notion of pure load balancers is largely obsolete, and today's application load balancers integrate much of the same intelligent features -- content switching, SSL offload -- as ADCs. ADCs direct network traffic to the best-performing and most-available servers, while performing automatic traffic balancing as server availability changes -- much the same as load balancers.
How to buy a load-balancing product
Each product -- load balancer or ADC -- offers a set of intelligent features that may suit a given application's needs. For example, Radware's LinkProof product is a load balancer and wide area network accelerator that uses bandwidth management and traffic shaping, while Radware FastView promises faster websites and web-based applications using web performance optimizations, and the company's top-end Alteon NG ADC offers advanced end-to-end load-balancing capabilities for all web-, cloud- and mobile-based applications. In addition to needed features, consider the cost/benefit ratio of performance, scalability -- using multiple iterations of the load balancer or ADC to prevent a single point of failure -- and ease of management in an offering.
Application load-balancing methods
The choice of load-balancing method is usually influenced by the particular application or service. HTTP, TCP, UDP and other traffic types benefit from different methods more than others. Consider these common methodologies when selecting an application load-balancing product: least connections, round robin, hash-based and least time.
The least connections method sends application traffic to the server with the fewest active connections or transactions. For example, if there are three application servers where one server is handling 10 requests, another server has 20 requests, and a third server has none, the load balancer sends traffic to that third server. Operations managers can assign weights to the servers, allowing the least connections algorithm to adjust for servers that are larger and more powerful than others.
The round robin method is often a default for load balancing, distributing application traffic evenly across available servers. For example, over three application servers, the first request or transaction goes to server one, the second goes to server two, the third goes to server three, the fourth goes back to server one and so on. The load balancer cycles repeatedly through the available servers. IT managers can also assign weights so that larger and more powerful systems handle more requests per turn than others. Alternatively, consider weighting traffic dynamically depending on the actual measured performance of servers.
Hash-based load balancing routes traffic to a limited number of specific application servers. A generic hash uses a user-defined key to distribute traffic to certain servers, possibly excluding other servers. An IP hash locks traffic distribution to a specific server based on IP address. This kind of operation is useful for some streaming applications that don't handle distributed traffic well, or when a level of session persistence is beneficial for the application. However, hashing can leave some servers underutilized and overload others.
The least time method is a variation on least connections, where traffic passes to the server with the fewest current connections, or transactions, as well as the fastest response time. Consider this method for performance-sensitive applications that rely on fast server responses, or for geographically dispersed servers subject to varying latency. The least time method also supports weighting to skew traffic distribution onto larger, more powerful servers.
Application delivery controllers aren't done evolving yet. Just as load balancers have been subsumed into the broader category of ADCs, there are other features and functionality that may eventually wind up shaping the future of application delivery and acceleration. Features like network access control, caching and compression developments for application acceleration, security technologies such as intrusion detection or prevention, and even automation and orchestration capabilities may ultimately change the landscape of future application delivery controllers.
Should I choose a software load balancer for servers?
Load balancing meets university's apps needs
Digging deeper into VMware DRS and VM load balancing