A well-known technique developed to improve server reliability and availability called mirroring can also work well to improve overall user-handling capacity and performance when the servers being mirrored happen to be Web servers. Mirroring a server basically requires creating one or more identical copies of a master server, where all of the files, services, configuration data, and so forth from the master image are faithfully replicated on all of the mirrored copies. Some kind of connection to keep the mirror synchronized and communicating is also vital to this kind of server configuration (normally, this uses a side-band link--a special, private-network connection).
Typically, mirroring is used on servers where availability and reliability are absolutely essential. Two good examples of such systems come readily to mind: (1) the server used to schedule and track operating room assignments and activities in a busy hospital, 911 response center, and so forth; or (2) the server used to monitor and manage critical or dangerous devices or services like nuclear power plants, weapons systems, hydroelectric dams, and so forth. In both kinds of environments, server failure cannot be tolerated, so the job of the mirror in these situations is to sit around and monitor the primary server, ready to jump in and take over should that primary machine fail. On the other hand, if a secondary server fails, the primary machine should be able to keep on doing its job. But failure or problems
You may be tempted to ask: "Where does the Web fit into this equation?" By using other devices for load balancing and distribution in front of a set of mirrored Web servers, it becomes much easier for high-volume sites to scale almost arbitrarily (creating mirrors consisting of many more than 2 servers). Sometimes, it's even possible to achieve geographical proximity advantages for user service (when it's possible for a front end to recognize that a particular server farm is close to some user, from a network distance perspective). Of course, the front ends that make using such mirrors possible must also track user state for each ongoing session.
Likewise the front end must also make sure that current user-state information is available to whichever server processes incoming or ongoing service requests, transactions, queries, and so on, and manage handoffs between servers as necessary. There is some considerable technical complexity (and expense) involved in implementing such capabilities, as you might expect from such sophisticated and complex technology.
Nevertheless, effective use of mirroring (and another technique for aggregating server capabilities called clustering) offers a very reliable way to increase Web server capacity almost at will. Better yet, these techniques make it possible to create and synchronize remote mirrors (where mirrored servers, clusters, or server farms reside at geographically distinct locations). Such separation increases the reliability and availability component since it's unlikely that a disaster at a data center in Topeka will also take out a data center in Tacoma. In addition, when it's possible to analyze incoming service request response times, smart front ends can distribute service requests to mirrored locations that are closer to requesters in networking terms, thereby optimizing transit times.
If you find yourself in a situation where you must serve a large, geographically dispersed audience, and you want to enable more or less arbitrary growth and scalability, think about server mirroring (and remote server mirroring) as a potential capacity booster. Although this approach is expensive, it will be worth it for those organizations that strive to serve large national or global audiences and customer bases.
For more information on server mirroring and remote server mirroring products, check out these guides from Networkbuyersguide.com online:
Hopefully, you'll find this technology offers ways to add capacity to your Web sites, while offering high performance and reliability as a welcome side effect.
Ed Tittel presides over LANWrights, Inc., a company that specializes in Web markup languages and tools, with a decidedly Microsoft flavor. He is also a co-author of more than 100 books on a variety of topics, and a regular contributor to numerous TechTarget web sites. Contact Ed via e-mail at firstname.lastname@example.org.
This was first published in March 2002