Scaling-out is a strategy for increasing capacity that involves distributing the load over multiple machines and making multiple servers perform the work of one logical server. A Web Farm, which generally involves using multiple machines and distributing the load across them, is an excellent example of scaling-out where each server in the farm is completely independent and hosts an identical copy of the entire website. In such a system, users are load balanced across the servers, and they rarely realize that there is more than one server behind the scenes.
Scaling-out is necessary because individual servers can handle only a finite number of connections. Once a server is processing thousands of requests, adding more RAM, network adapters, or processors may not increase the server's capacity enough to meet the demand, and there is always a performance bottleneck. Do not confuse scale-out with scale-up. Scale-up typically refers to architectures that use a single fixed...