June 3, 2011 / Leave a Comment
Sorry for the delay on the third installment. Today let’s discuss Load Balancers or as they are now more commonly referred to as Application Delivery Controllers. The load balancer is the piece of hardware (or software as I will discuss further down) that sends your web traffic to one of a series of machines. It is the key piece of technology that allows you to achieve Horizontal scalability that is so important for a growing company like yours.
You may be thinking (and rightfully so) what is the big deal with a load balancer, all it does is reroute traffic to another IP address. But the rules around how it does it, and how well it does that are what makes the secret sauce in the technology. You need to always ensure that traffic is distributed evenly, but often ensuring the traffic goes to the same place (if sessions are tied to the single instance of your application). This delicate balance combined with monitoring uptime of instances, ability to quickly add and remove instances as they are destroyed or brought up in your virtualized environment, and manage special rules where applicable based on port routing (SSL vs. Non-SSL) or doing hardware based SSL encryption and compression, make the technology a key piece of your infrastructure that can’t be taken lightly.
When you get bigger, there is only one name you need to know: F5 Networks. Their BigIP line of products is the backbone load balancer for almost every major website, except those building their own custom solutions (like Google, Amazon, Facebook). The problem with them when you are small is they are NOT cheap!
So I’m going to cover two approaches that are cost effective. First is alternative hardware offerings from some other good companies. Second is some new virtualization based solutions on the software side.
Hardware Application Delivery Controllers
Brocade is known best for their Fiber switches, but recently have expanded into many other areas. They have a great entry-level solution that like their switches follows a port or bandwidth licensing plan. The box they sell you is far better than you can afford at first, but they anticipate your growth and license you additional bandwidth or ports as its needed. This means no switching hardware as you grow, and offers a very low entry fee to their equipment.
The ADX 1008 starts with 8 ports of GigE and 1 processor. You can add another 8 ports of GigE, 2 ports of 10-GigE, and three additional cores which quadruple performance. These are all software licenses. It starts at 2 Gbps of Layer 7 throughput and 500K Layer 4 transactions per second to 9 Gbps of Layer 7 throughput and 2 million transactions per second.
This is some major scaling power. It’s price point is around $8k, but don’t quote me on that. Remember, that you eventually always want to get a second device to ensure High Availability, but’s its alright to start off with one as long as you get same-day turnaround on parts and labor.
If you want to start a little smaller and aren’t concerned about replacing hardware, at HauteLook we started with a load balancer from Coyote Point. With entry level products under $2,000 and high end products in the $8,000 range, it might be the right fit for you. Don’t be afraid to ask for a demo or evaluation unit from any company you are thinking of buying hardware from. It’s a great way to try before you buy.
Software Application Delivery Controllers
With virtualization causing the change in name of these devices to truly handle distributed applications, it also gave rise to a new type of load balancing, Virtual Application Delivery Controller. The nice thing about this solution is the ease to bring up multiple instances, both within your infrastructure and within the cloud. Citrix is currently the leader in this space with their NetScaler VPX offering. As this is a newer solution I would be sure to try it in your environment before committing to it.
The open source community is now wondering when I’m going to mention Heartbeat, Pacemaker or other cluster management solutions available for free. I am a huge proponent of open source, and highly suggest looking into what is available, but rarely in this area is there a solution that works extremely well for growing websites without investing more time (and money) in building the solution than it would have been to purchase in the first place. But check out the Linux High Availability Wiki for more information on what is available.