Cartika Blog

What Can Load Balancers Do For Your Site?

Lets say you have very popular website. It’s been chugging along fine for the last couple of months; your server has handled the load perfectly well. But as your site becomes ever more popular, the server starts to show the strain — too many connections swamp the available memory, pages load slowly, and sometimes not at all. It’s time for an upgrade. There are a couple of ways you could go about upgrading your hosting. You can choose what’s usually known as vertical scaling, which is basically getting a more powerful server. That’ll work well in some cases, but there is obviously a limit. More powerful servers are very expensive, and you can’t scale vertically forever —it’s neither technically nor economically feasible. The other option is horizontal scaling. Instead of getting a more powerful server, you opt to duplicate the server you already have. By sharing the workload between two servers, which can both be serving identical content or each given specific jobs, you ensure that no one server is overburdened. The load is balanced between two or more servers Of course, there needs to be some mechanism for deciding which server responds to which requests, and that’s the job of the load balancer. Load balancers are essentially reverse proxies that parcel out jobs to your servers. They sit in front of your servers, accepting connections from the web and distributing them to the web servers (or database and file servers, depending on the complexity of the arrangement). The simplest load balancers use a round robin algorithm — basically a queue where each server gets sent work in turn. More complex load balancing algorithms can monitor server response times and send work to the fastest responding, ensuring that no one server is every accidentally overloaded. When discussing load balancing, I’ve often come across a misunderstanding: load balancing will not make a site faster. The site can only ever be as fast as the servers behind the load balancers, so if a site is performing badly because of poor coding or unoptimized databases, a load balancer isn’t going to make much of a difference. It will, however, make a huge difference if a site performing poorly because of excessive load. Load balancers bring another benefit. Because load balancers are able to monitor the performance of the servers in their cluster, they can determine if one or more of the servers has availability issues and stop sending work to that server until it becomes responsive again. By leveraging the redundancy inherent in load balancing, the reliability of the network as a whole can be improved — a single unavailable server can’t take down a site, which isn’t the case with a vertically scaled hosting platform. Furthermore, it’s possible to also have a redundant load balancer, which removes the remaining single point of failure — a configuration that is known as high-availability. Cartika’s Infrastructure As A Service platform makes available a number of powerful load balancing solutions to clients, including high-availability setups, and load balancing across heterogeneous networks to ensure maximal redundancy. Image: Flickr/evoo92