How does a large web site handle the influx of hundreds or thousands of simultaneous users? In this video, you’ll learn about load balancers and how they’re used to ensure the uptime and availability of your important applications.
<< Previous: Content FiltersNext: Packet Shapers >>
If you visited a website of any significant size, one of the things that’s probably in place is a load balancer. This allows the site to maintain uptime and availability for all of its visitors.
You generally see a load balancer in place when you need to distribute a load across multiple servers. Even on a site like ProfessorMesser.com, I need to have multiple servers in place to handle the number of people that are visiting. And the best part about it from your perspective is that it’s completely invisible. All you know is that you’re accessing my web server and that you’re getting a response.
But behind the scenes, there are multiple web servers all providing access for multiple users around the world. It’s very common to see load balancers on extremely large implementations as well. You might have hundreds of web servers or database servers, and you need to provide access for many people from many locations all simultaneously. We can also use these load servers for fault tolerance.
If we lose any one of those web servers on the load, the load balancer recognizes this almost immediately and then instead puts the load on all of the remaining servers to maintain the uptime. It’s a very fast way and very easy way to keep your site up and running all the time. Load balancers can certainly take that very large load and distribute it off to other servers, but they also give us a number of other functions.
For instance, TCP offloading, where the load balancer itself has a single connection back to all the servers and it doesn’t have to keep setting up and tearing down TCP sessions. That way, it provides a much better response time to the end user. They can also do SSL offloading. Instead of having the web servers handle all of that encryption of data and decryption of data, you can do that all on the load balancer.
And generally, these load balancers contain hardware that are specially designed to do this encryption and decryption at very high rates of speed. These can also do caching. The load balancer itself may keep data on the load balancer and provide that information back to the end user. If this is static information, it doesn’t have to go down to the web server to get that data, which means you get to see it that much faster inside of your browser.
There is also prioritization of data. Perhaps there are certain applications that could respond faster than others, and the load balancer may be smart enough to provide that quality of service differentiation between those applications. The load balancer may also be able to decide how to distribute the load based on application. So one application may distribute the load across certain servers, and another application using the same load balancer may distribute across a completely different set of servers.