Microsoft released the process to cluster IIS: Why would you do it?

Brad Bird explains why you might want to cluster IIS, also making use of virtual machines, which renders IIS both fault tolerant and highly available.

I was speaking at TechDays 2009 recently, and I informed a colleague that Microsoft has released the process to cluster Internet Information Services (IIS). So, the question is: Why would you want to cluster IIS?

In the past, this was only possible using third-party products. Now, because failover clustering accepts virtual machines as a workload to be clustered, you could install your Web server in a VM and cluster it accordingly. Otherwise, the standard process is as detailed in the Microsoft Support document.

Well, clustering any workload makes it highly available (HA), which means that if a fault were to occur, the workload would still be available. In a sense, a highly available workload is also fault tolerant. However, as I've written previously, a fault tolerant workload is not specifically highly available.

IIS is a front-end workload that is usually configured as fault tolerant using network load balancing (NLB). Now, this is a technology in which a network resource is given a virtual IP address that actually "spoofs" the IP address of the host servers' network cards with a fault tolerant IP address. The fault tolerant "host" is controlled by the network load-balancing service and rotates the transmissions between the "spoofed" IP addresses belonging to the multiple hosts that are usually behind the NLB service.

Typically, a separate host name (DNS A record) is assigned to the fault tolerant IP address for communication.

The data in IIS must be the same on each of the actual host servers, so an exact replica must be maintained or they must be synchronized in some way.

In addition to making IIS fault tolerant, NLB allows better performance because none of the hosts are experiencing the full brunt of the transmissions. Think of this like a highway servicing 50 cars. If the highway had more than one lane, more cars could pass at the same time.

So leaving IIS as only fault tolerant is not a bad thing, but it is not highly available unless it is on a virtual host that is clustered or the process described by Microsoft Support is used.

If IIS were configured with network load balancing and all the IIS hosts were on a cluster, this would be one way that you could get the best of both worlds.

Can you think of any scenarios where hosting IIS as highly available would be advantageous?