At a high level, load balancing can be described as a technique that shares work requests evenly between resources hosted on a pool of virtual or physical servers. In practice load balancing solutions use various algorithms, and comprehensive monitoring of the network, to make intelligent choices about load distribution across a server pool.
In addition to dynamically distributing the load over a server pool, load balancing infrastructure helps maximise availability of the services and applications that are presented to users. The health of servers and services is checked in real time. If a server, or just an individual service or application, is not responding the load balancer will redirect client traffic to other available resources.
A load balancer can use several techniques and algorithms to choose how to balance server load. The method chosen will depend on the type of service or application being served, and on the network and server load conditions at that particular time. The pool of servers and services that are being shared by load balancers can be located in a single data centre, or they can be geographically distributed over multiple data centres. Services for users need not necessarily be delivered from the data centre nearest to them, but rather can come from the one best placed at a particular time to service requests.
In addition to basic web services, load balancers can also mediate access to other applications and services. From a services perspective the standard Internet protocols can all be presented via load balancers. Industry leading business applications can also be made more responsive and resilient when deployed along with load balancers, either on premise, in the Cloud, or in Hybrid Cloud configurations. For example the sample list below shows some of the applications that benefit greatly when deployed with load balancers: