Working with technology, one of the most important things that any website can have is availability. A beautiful layout, with great content doesn’t mean a thing if you can’t access it! There’s a lot of ways you can accomplish this, such as using round robin DNS or having disaster recovery sites, but what I’d like to focus on today is utilizing an application delivery controller (ADC) to load balance two different web servers. My preferred ADC is F5’s Local Traffic Manager(LTM). There’s a lot of technical reasons, but first for me is that its the leader in market share, which has been a big boost in my professional career.
I use virtualization heavily in my job and also in my lab. Most of the time I use VMWare’s ESXi server as its very user friendly, was one of the first hypervisors and has a free version :). I also use the Linux Kernel Virtualization (KVM) but it tends to be a bit more complicated to learn and maintain. I’ve already built a website with two Linux servers and a single MySQL server and installed Joomla on the apache servers.
The basic load balancing method that I’ve started with is called Round Robin DNS. This is where you setup a DNS host record, called an A record with two entries pointing to the two servers. This is a good start to scaling and high availability, but really doesn’t cut it when you need 99.9% uptime or more for your website. Instead of having the multiple A records, we’ll create what is called a virtual IP or VIP in our load balancer, and instead of two A records, a single A record pointing to the VIP. The load balancer is generally deployed as a cluster, so you don’t have to worry about that part.