Cluster and Application Deployments

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

Historically, we have described clusters and applications as being active/active or active/passive, which is a natural result of the fact that the earliest products supported only 2-node clusters. In some cases, however, this has led to confusion because the terms can be interpreted in different ways depending on whether the context is 1) how a given application instance is running, 2) how different instances of an application are running or 3) whether the nodes in the cluster are performing useful work. To fully understand the specific application and cluster deployments, we need to understand the following:

  • How many instances of the application are actually up and running?

  • How many instances of the same data are in the cluster?

  • Do instances of the data move around?

  • Do different instances of the same application run on different cluster nodes?

  • Can different applications run on different cluster nodes?

  • What kind of load does the application put on a server, and how will this load be re-distributed after a failover?

Before describing how an application is deployed, we must first define what an application is. An application, for the purposes of this document, is defined as the running code and data required to provide a single service to an end-user or client. Consider a couple of different examples to illustrate the point: A single instance of Microsoft Word running on a workstation is a single application instance. If there are multiple instances of Word running, each instance is considered a different application instance. There are, however, more complex applications. For example, with Microsoft SQL Server, a single database is considered to be a single application instance. Independent databases are considered to be different application instances. A single database, however, can be partitioned into multiple SQL Server instances and tied-together using the SQL Server query engine. In this case, the set of SQL Server instances that are tied together to provide a single database image is considered a single application instance.

Fundamentally, there are five different attributes that together provide a complete view of the deployment and can be used to reason about or characterize the deployment:

  • Server load How much of a servers resources are consumed by the applications it supports, and how will this resource utilization be affected by failover?

  • Application style Is the application a single monolithic application that runs on a single node or is the complete application split into smaller pieces that can be deployed around the cluster?

  • Application deployment How are the pieces of the application spread around the cluster in a given deployment?

  • Failover policies How is the application configured to behave after a failover?

  • Application implementation How is the application itself implemented?