Growing your web server farm to cope with fluctuating demand
Peaks and Troughs
Datacentre Thanks to support for multi-core processors and terabytes of memory, servers have never been more scaleable. When it comes to hosting web sites and applications, however, server farms based on relatively modest hardware still dominate because they make dealing with fluctuations in demand easier.
Host a web site on a single server and you will need to power it down to do things like add processors or RAM when demand rises. Spread it across several servers and all you have to do is plug in extra servers. In the era of the virtual server it makes even more sense. Virtualisation makes it possible to dynamically re-allocate server resources, or even provision whole new servers to match web server capacity to client needs.
Unlike with server clustering, which is mainly used to provide automatic failover in the event of a problem, there is no need for any extras on the servers in a web farm. But you still get built-in redundancy to protect against system failures, or cover for maintenance, which would be very expensive to build into individual server platforms.
Web servers lend themselves particularly well to being located in a farm because there’s no need for a persistent connection between the server and its clients. Much of the content is static. Click around a web site and it really doesn’t matter whether you connect to the same server or to a different one every time, just as long as each displays the same content.
So far so good, but a bunch of servers can’t just start handling the same web site without a little bit of extra technological wizardry. This takes the form of a front-end load balancer to intelligently and automatically spread client requests across the servers.
Load balancers can come as either software or hardware, one approach being a DNS server to resolve web site URLs to different server addresses on a round-robin basis. Nowadays, however, there are more sophisticated load-balancers, capable of inspecting traffic and routing requests. A number of vendors have products in this space, including Barracuda Networks, Cisco, F5 Networks and Zeus Technology, to name just four.
Implementations and feature sets vary, but most products can intercept and inspect packets at layer 4-7 in the network stack, enabling them to balance loads based on traffic type, application and other characteristics. They can also be used to support session persistence, or “stickiness”, when clients need to be directed to the same server every time to complete a specific transaction.
Also referred to as web, application or content switches, these sophisticated load balancing products can be built into network switches. Cisco, for example, sells a Content Switching Module to add layer 4-7 content switching to its Catalyst switches and routers. Others use dedicated appliances, such as the Barracuda Load Balancer and the F5 Big-IP family of products, or software, like the Zeus Load balancer.
Additional traffic-shaping and security functionality may also be built in, further enhancing the advantages of the web server farm approach. ®