This is Part 4 of our Holiday Scaling Series. Click here to view Part 1: To Scale Horizontally or Vertically and click here to view Part 2: Take Advantage of Caching and click here to view Part 3: Web Server Tuning.
In Part 1 of our Scaling for the Holidays series, we touched on load balancing as a way to scale horizontally. Now, as promised, we delve deeper into load balancing. A Cloud Load Balancer is a virtual networking device specialized to distribute traffic for maximum site availability. When using a Cloud Load Balancer with a public-facing IP address, this address essentially becomes the IP address of your website. As traffic is received, it’s routed to your web servers using the pre-defined, load-balancing algorithm that you configure. The Cloud Load Balancer then acts as a crossing guard for web traffic, directing traffic to the path of least congestion so that your site is available whether you have two hundred or two hundred thousand concurrent visitors. Rackspace offers load-balancing solutions that can be implemented as a dedicated, or as a cloud-based service launched on-demand.
You’ll know it’s time to implement or re-assess your load balancing solution when you’re reviewing site traffic reports and seeing an increase in the number of connections refused during peak traffic times. That’s the first sign that your serving capacity is too small for the amount of traffic that your site is receiving. The next sign will probably be visitors calling or emailing to complain that they can’t access or transact on your site.
The number of load balancers you deploy is determined by your traffic and performance goals, there is no magic formula. It’s important that you take the time to evaluate and stress test your system to ensure the load balancers work properly before traffic begins to spikes. In the middle of a spike, it may be too late to mitigate the impact of increased traffic by adding a load balancer, and you’ll be forced to tap more expensive solutions, such as dynamically resizing your server, or risk site outages and a diminished customer experience.
Some other things to keep in mind about load balancers:
• There is a feature that can be configured on the Cloud Load Balancer to allow for session persistence. This will direct incoming traffic from a given address to the same webserver node behind the Cloud Load Balancer. This prevents the customer from having to re-authenticate on your site if their traffic would have been sent to a different webserver in the pool. For SSL encrypted websites employing a Cloud Load Balancer, the Session Persistence feature will not work. In this instance, it would be advisable to use a database to store your session information.
• Balancing multiple SSL sites behind a single load balancer is not recommended. There are ways around it using Server Name Identification (SNI) or creating separate pools with load balancers for each site. Please consult with one of our Cloud Support specialists for more details on this particular solution.
• For optimal performance, it’s not recommended to exceed more than 24 nodes behind a single Cloud Load Balancer.