Web server clustering for Windows-centric sites
"Web Review"High availability and scalability are desirable for any Web site. Unfortunately, far too often high prices for software and hardware, in conjunction with complex implementations, have kept the solution to these problems -- through the load balancing of relatively low-cost servers -- out of reach for many Web professionals.
Microsoft Application Center 2000 promises to bring software-based scalability of Web sites down to the realm of the mere mortal IT professional. Unfortunately, Microsoft hasn't met this promise with the product's recent release.
Application Center 2000 packs an impressive list of capabilities. The core function of the product is to provide improved reliability and scalability of a site through software-based clustering and load balancing. The company claims the product makes it relatively easy to manage a set of servers as if they were a single server, which is true. The product makes it relatively painless to initially stage, deploy and continually synchronize diverse sets of components (such as HTML, image and Active Server Pages files, as well as site and server settings) among all the servers in the cluster.
This is one of the strongest features of this product. Once it's running, the clustered Web site benefits greatly from improved reliability and scalability, as demonstrated during our simulated load tests. However, getting to that point isn't easy or without inherent limitations.
Installation of the product was not smooth. Even with application of the required Service Pack, various Post-Service Pack fixes and carefully following the instructions detailed in Microsoft's documentation, it took numerous tries to install the software. With factory-fresh systems, it's unlikely that the typical "try a clean install" advice would make much of a difference. However, after repeated efforts, we got a stable three-system cluster up and running.
Basic management of the cluster is relatively smooth. Application Center 2000 uses the familiar Microsoft Management Console (MMC) snap-in. Management can be performed from another system using a client installation of the software. A Web-based interface gives administrators real remote access, and a command line interface was available for those looking for raw access for scripting. Interestingly, some important commands appear to be only available via the command line, such as the "clean" command that we issued numerous times after systems became corrupted when removed from the cluster. However, assuming correct operation, the basic tasks -- such as creating a cluster and then adding, deleting and managing the availability and health of servers in the cluster -- are easy to perform from the MMC snap-in.
We used a New Cluster Wizard to create a general Web cluster, a COM+ application cluster and COM+ routing cluster. We focused primarily on the Web cluster for our tests. After choosing and naming the cluster type, you can specify the form of load balancing. The product primarily relies on Network Load Balancing using two network interface cards in each server in the cluster. However, it lets you use a third-party hardware load balancer. Of course, if you had such a product, the value of Application Center 2000 diminishes, but some feeatures (particularly content replication and server health monitoring) might be useful. We focused solely on the standard Network Load Balancing without such outside assistance.
Application Center 2000 uses a basic round-robin style of load balancing. To adjust this, you can modify a slider indicating the amount of traffic a server should handle. However, adjustments beyond this gross distribution -- such as URL-based, content-based or any form of global load balancing strategies -- are not directly supported. Clever administrators could figure out how a couple of clusters could be built (via redirection rules for Internet Information Server [IIS]) and implement a URL-based form of load balancing, but in short the product only provides the most basic form of load balancing.
We liked one feature of Application Center 2000 that puts it ahead of overly simplistic schemes such as DNS round-robin. The feature applies to state management issues using an idea called request forwarding. Basically, if a state has to be preserved, the initial server visited becomes the "sticky" server and subsequent requests are forwarded to the server holding the user's state information by any other server in the cluster that receives another request from the end user. Of course, if the sticky server crashes, problems will ensue. In contrast, centralized state management -- either via hardware or software -- would alleviate this problem, but at the expense of providing a single point of failure for the whole cluster.
Despite the relatively simplistic load-balancing features, Application Center 2000 has numerous positive features. Content synchronization is particularly strong and should be transparent to the typical Web developer who only has to make a change to content on the cluster controller. The abilities to gracefully bring a server offline by draining connections and deploy an application through a rolling upgrade are particularly welcome. Lastly, a powerful and positive feature of Application Center 2000 is the multitude of monitoring facilities. It was easy to monitor the health and performance of all the servers in the cluster. As we ran tests to ensure the cluster could handle bursting loads and survive servers being added and removed from the cluster, we could easily monitor the utilization of the various servers. Server health data were stored in Microsoft SQL Server, and a variety of reporting and analysis options are possible.
The estimated price of Application Center 2000 ($2,999 per CPU) is troubling if you consider other Web scalability solutions. Even some hardware-based solutions aren't much more than this when you start adding servers.
Application Center 2000 is Microsoft-oriented -- it runs only on Windows 2000 servers with IIS and favors Microsoft's Web technologies such as Active Server Pages. This may be considered a strength of the product, but sites with more heterogeneous hardware and software setups should not bother looking at Application Center 2000, and instead should concentrate on a hardware-based product.
While the administration, monitoring and content deployment features of Microsoft Application Center 2000 are admirable and show its true potential, its simplistic load-balancing options and rough edges make it difficult to recommend, particularly to those new to building Web clusters. If these issues can be smoothed out, Application Center 2000 no doubt will become a good solution for Windows Web site administrators facing increasing reliability and traffic demands.