Clustering the World Wide Web Service on Windows 2000
There are not many companies these days that are not running some type of website. Although not every company hosts their own website, they are all concerned about the websites' uptime and reliability. Guaranteeing uptime of web servers has always been a problem for Web Hosting Providers (WHP), for fault tolerance is hard to achieve when hosting a $20 per month website certainly a cost prohibitive endeavor. Many WHPs will tout statistics such as 99.999% uptime, but in reality this is just marketing in many cases. This type of fault tolerance requires not only fault tolerant equipment within each server, but additional servers that can be used to replace a defunct server at any time.
This may be changing because the advent of services like Network Load Balancing and Clustering are becoming more and more cost effective. Systems that used to cost several hundred thousands of dollars to implement can now be brought online for only a fraction of the cost. High availability is now offered to anyone who chooses to put up a server. These tools provide low cost alternatives to hardware based clustering and load balancing solutions. Web Hosting Providers may choose not to use them, but it is not because they lack the power or flexibility of their hardware based cousins.
In this article we will take a look at the World Wide Web Server provided within the Internet Information Server, a package of Internet based services that is included with all Windows 2000 operating systems. Using the Microsoft Clustering Service, you can provide a highly available WWW service that rivals the reliability of any product offering currently on the market.
Internet Information Services Overview
Internet Information Services (IIS) was originally released by Microsoft as an add-on product for the Windows NT Server operating system. It included several services that were used to provide Internet-based services such as Web Services and FTP Services. IIS has grown quite a bit since its original implementation, and has shown itself as a worthy opponent within the web server market share battle. To date, IIS's market share is still growing daily, oftentimes replacing many UNIX-based alternatives.
As a clustered application (or set of applications) IIS excels, allowing administrators to add a significant amount of fault tolerance to their implementations. Much like other clustered applications, IIS follows the binary-local/data-shared model, keeping local copies of the binaries that run the application and storing the data itself on the shared disk. Through the IIS Resources created through the Cluster Administrator, service of a particular website can fail from one server to another.
Many people choose to load balance applications like IIS due to the traffic they receive on their website. And that is a viable solution, but clustering is also a good option. The choice of load balancing or clustering depends upon the circumstances. If you run a large website, and you need to maintain millions of hits per day on a website that is mostly static (or static on the front end), then load balancing is a good choice for you. However, if your website does not have that volume of traffic and you wish to ensure that is never goes down, clustering is a good choice for you. Both solutions provide fault tolerance, but they are managed differently. Clusters share disk space with other nodes in the cluster, and therefore negate the need for synchronization between servers for web content. If you have a site that is constantly being updated by programmers, then clustering may be the best choice. Otherwise you have to figure out how to synchronize changes made on one server to all other servers in the load-balanced cluster.