Application Center 2000 maintains a high level of availability by allowing Web site administrators to group Windows 2000 Server computers into clusters and manage Web site content and applications easily. Administrators can manage content and configuration settings on a single server, reducing the time required to update a Web site. Application Center 2000 divides Web site content and code into applications that can be updated independently. These applications can consist of any combination of Hypertext Markup Language (HTML) and Active Server Pages (ASP) files, COM+ components, Windows registry settings, and Internet Information Services (IIS) settings. Each server in the cluster hosts a copy of the application, which Application Center keeps synchronized. Application Center NLB and CLB technologies support clusters made of Windows 2000 Server computers. Web browsers, such as Microsoft Internet Explorer, see each cluster as a very large and very reliable Web server. This lesson gives you an overview of Application Center and the features that allow you to create NLB and CLB clusters.
The key tenet of distributed Web-based applications is the logical partitioning of an application into three tiers:
By using component-based programming techniques to partition applications along these lines and by using the services provided by the Windows operating system, developers can build highly scalable and flexible applications.
A simple application model consists of a client that communicates with the middle tier, which itself consists of the application server and an application containing the business logic. The application, in turn, communicates with a back-end database that’s used to supply and store data.
The Presentation layer consists of either a rich or thin client interface to an application. The rich client, which uses the Microsoft Win32 application programming interface (API), provides a full programming interface to the operating system’s capabilities and uses components extensively. Arguably not as robust or as capable of offering the performance levels of a rich client, the thin client (Web browser) is rapidly becoming the interface of choice for many developers. A developer is able to take advantage of several simple-yet-robust scripting languages to build business logic that can be executed on any of the three application tiers. With full support for HTML, dynamic HTML (DHTML), and Extensible Markup Language (XML) object models, the thin client is able to provide a visually rich, flexible, and interactive user interface to applications. Thin clients have the added advantage of providing a greater degree of portability across platforms.
This layer is divided into application servers (IIS, Site Server, Commerce Server 2000, and Systems Network Architecture [SNA] Server) and services, which are available to support clients. Web application logic, typically consisting of ASP written in Virtual Basic Scripting Edition (VBScript), is processed in the IIS server space. You can write ASP-based or Component Object Model (COM)–based applications to take advantage of Microsoft Transaction Server (MTS), Microsoft Message Queue Server (MSMQ), directory services, and security services. Application services, in turn, can interact with several data services on the back end.
The following data services support data access and storage:
XML is a recent standard put forward by the Internet community. Whereas HTML focuses on how information is rendered by the browser and displayed on the screen, XML’s goal is to handle a data structure and its representation.
Application Center is a tool for creating, deploying, and managing Web- and component-based applications, which are typically line-of-business applications that require a high level of availability and need to provide acceptable response time. The servers hosting these applications are expected to handle traffic that’s characterized by high volumes, exponential growth curves, and load fluctuations.
Application Center is designed to provide the capital cost advantages of the scale-out model, while at the same time reducing operations costs—one of the main advantages espoused by proponents of the scale-up model. In addition to these cost advantages, Application Center provides the following benefits:
Good performance, of course, is desirable in any product. In addition to offering optimal load balancing algorithms for different types of applications, Application Center provides tools for monitoring system performance and allows the system administrator to adjust load on a server-by-server basis. This approach recognizes the realities of heterogeneous server farms and provides far greater flexibility than the one-size-fits-all approach.
The features summarized in Table 6.1 provide the essential tools needed to allow you to create and manage load-balanced clusters. Different elements of the product feature set are accessible through its Microsoft Management Console (MMC) snap-in or through the Web browser.
Table 6.1 Application Center Features
Common tasks for administering the cluster configuration (for example, creating a cluster or adding a member) are easy to execute by using wizards or the graphical user interface.
Application Center supports integrated NLB and CLB.
Synchronization and deployment
System settings, content, and applications are replicated across the cluster, either automatically or on demand. Content can be deployed within a cluster or to another cluster.
Real-time event, performance, and health monitoring are supported, and historical data is accessible.
Scripting support is available for performing common Application Center management tasks and accessing the event and monitoring data. You can complete selected administrative tasks with a set of command-line tools.
Local and remote administration
You can administer a cluster locally or through a secure remote connection.
Requests and transactions are automatically rerouted to another member if a server failure occurs.
Application Center provides several options for implementing load balancing on a cluster, including integrated NLB, CLB, or no load balancing.
With this option, load balancing is actually carried out by the NLB that’s part of Windows 2000 Advanced Server or Datacenter Server. Application Center provides an interface that’s integrated with NLB.
Although it isn’t included with Windows 2000 Server, NLB is automatically installed on a system running Windows 2000 Server when Application Center is installed on that system.
The Application Center user interface makes configuring an NLB cluster easier by removing much of the configuration detail and, through the use of a wizard, by reducing the number of decisions that a user must make. The wizard also conducts hardware and software diagnostics to ensure that a minimal workable platform is available to support load balancing. For example, it checks for the correct number of network adapters and Internet Protocol (IP) addresses.
When configuring NLB for your cluster, you must select an appropriate load- balancing algorithm for the cluster. This algorithm, or affinity, is based on the source of the bulk of the incoming client requests. Integrated NLB uses three types of affinity settings, as described in Table 6.2, to identify the algorithm that’s used.
After you’ve created a cluster, you can use the MMC console to change the affinity setting for a cluster that’s using integrated NLB.
Table 6.2 NLB affinity settings
Multiple requests from the same client can access any cluster member. The IP address and port number identify the client.
Multiple requests from the same client must access the same cluster member. This is the default setting for intranet clients. The IP address identifies the client.
Multiple requests from the same Transmission Control Protocol/Internet Protocol (TCP/IP) Class C address range must access the same cluster member. This is the default setting for Internet clients because it provides optimum support for sticky sessions, in which a client request establishes a server-side state that’s used in subsequent requests during the same session.
Another load balancing configuration option that Application Center provides is the ability to adjust individual server weights in response to performance data or to accommodate different classes of members.
CLB is an Application Center service. The decision to use CLB should be based on a thorough analysis of your application requirements before hosting components on back-end servers. An inherent system overhead is associated with client requests that traverse the network and with selecting a server to satisfy the client request. You should consider CLB in these situations:
For applications that are relatively small or that use a limited number of components, instantiating COM objects locally on a front-end Web server may provide the best performance.
There may be situations in which you don’t need or want to have load balancing enabled; for example, it’s not necessary for application testing and staging or for controller redundancy. You might want to use the no load balancing option in the following situations:
Every aspect of a cluster’s composition and configuration needs to be synchronized to the cluster controller. Application Center deals with both aspects of the synchronization issue by replicating both controller settings and application settings. You achieve partial or full synchronization of a cluster by replicating configuration and application settings. A replication engine that uses custom drivers makes the links to the various configuration stores and copies their settings to the target servers.
This holistic approach has an added benefit: in the event of a controller failure, you can make any member the new cluster controller. You can do this on demand with minor configuration changes to the member.
You can replicate a single application to cluster members or replicate all the applications that are currently hosted on the controller. Site information contained in the AllSites category, or in custom definitions, may include any of the following information, which is replicated when you synchronize a cluster:
By default, the cluster is synchronized whenever new content is added (only the new content is replicated) or fully synchronized every 60 minutes. You can disable this feature completely or change the time frequency for the synchronization schedule.
You can exclude specific members from being part of cluster synchronization.
As with application deployment, you can explicitly replicate a single application or all of the applications on the controller. This gives you flexibility in staging and deploying new applications, which you may want to test on part of a cluster before deploying the application to all of the members.
In Application Center, an application is defined as a collection of all the required software resources for a Web site or COM+ application. For example, an application can consist of Web site content, COM+ applications, certificates, and registry keys. This approach allows the administrator to think of sites as logical groupings. An application may contain more than one Web site, or no Web sites at all, and still be replicated across a cluster.
In order to maintain a production environment successfully, you must be able to monitor the behavior and performance of its key components: the network servers, and applications. A robust monitoring environment—one that provides real time and historical data—enables you to keep an eye on the overall health and performance of any given system. (Historical performance data is particularly useful when it comes to capacity planning.)
Application Center provides a central viewing point for obtaining this kind of information, which is encapsulated by the monitoring and logging of event, performance, and health data, as described in Table 6.3.
Table 6.3 Monitoring and Logging Data
Numerous objects and applications running on a server or cluster generate events (actions that take place on your server or cluster). All Windows 2000 events and some Application Center events are logged in the Windows event log.
Performance is indicated by a collection of performance counters that indicate the amount of resource consumption. The counters may indicate, for example, that 70 percent of the total hard disk space is in use or that there have been 1,897 requests per second for the Web service. Application Center uses a set of default counters to give you an overview of both server and cluster performance. These counters cover a broad range of system-related information, from the amount of available memory to the number of ASP page requests serviced per second.
Application Center creates several default data collectors—with predefined thresholds—for use in monitoring server and cluster health. Some of the default collectors are toggled as active, while others are inactive and can be activated at any time. Note that data collectors are used to collect, receive, and retain specific WMI data.
Through its implementation of the shared nothing model, Application Center provides a high level of availability for all cluster members, including the controller. Every member is, in essence, a mirror image of the cluster controller.
With integrated NLB installed, each member "hears" incoming client requests, so if one member fails, the other members can continue servicing these requests. Because a failed member is taken offline in the background and load balancing is automatically reconfigured to distribute client requests, Application Center provides an effective environment for providing computing availability. In addition, its transparent isolation mechanism shields users from the effects of server failure.
If a controller fails, cluster administrative activities such as synchronization can’t take place until a new controller is designated; however, load-balanced request handling continues to function.
When coupled with its automated e-mail notification and flexible administration features, the shared nothing implementation provided by Application Center ensures a highly available environment for clusters.
Although Application Center clusters provide high levels of server availability, fault tolerance (as it’s defined) and the fault-tolerant state aren’t supported. If a member crashes or is intentionally taken out of the cluster, all clients that rely on the state stored on that particular member will lose their state.
The architecture for Application Center, illustrated in Figure 6.1, consists of three major layers:
Figure 6.1 - The Application Center architecture
The Application Center user interface provides access to the product feature set through an MMC snap-in, the Web browser, and the Microsoft Windows command prompt. The MMC provides full access to the product feature set, but access to cluster administration and monitoring tasks is also possible—although to a lesser extent—by using Internet Explorer or the Application Center command-line tool at the Windows command prompt.
This layer is divided into the following broad categories:
The main elements of the operating system that the user interface and feature set layers interact with are the MMC (IIS version 5.0), the metabase, COM+, NLB, and WMI. The Microsoft SQL Server engine is outside this layer, but it’s integrated with the operating system and used solely for handling cluster-related data storage and retrieval.
Application Center 2000 supports three primary clustering scenarios:
It can be useful to operate Application Center on a single server without the context of a multimember cluster. Application Center treats a single-node cluster, or stand-alone server, as a cluster of one member. Typically, the most common single-node cluster is a stager. A stager is a server on which content is placed prior to being placed on a production server. On this stager, you can experiment with and fully test the quality and functionality of content from development and test environments before deploying the content to production environments.
In addition to stagers, other single-node clusters can benefit from Application Center without operating in a clustered environment. These servers can use Application Center for the following tasks:
The most typical Application Center clustering scenario is a Web cluster serving Web sites and local COM+ components. You can distinguish such clusters by their load balancing implementation, whether they use NLB or other load-balancing devices. Clustering multiple servers together has the following advantages:
With NLB, Application Center provides seamless integration so that NLB cluster creation and member addition is simplified and you can handle common administrative tasks, such as setting members online and offline, through the Application Center user interface. NLB dynamically distributes client workload as members are set online and offline. Figure 6.2 shows a typical one-tier Web cluster that’s running NLB.
Figure 6.2 - NLB Web cluster
For typical non-NLB clusters, an external load-balancing device is used to distribute incoming client requests. Figure 6.3 shows a typical one-tier, non-NLB Web cluster.
Figure 6.3 - Non-NLB Web cluster
A COM+ application cluster processes COM+ application requests for clients. These clients can include Windows-based clients and Web clusters. A COM+ application cluster relieves Web clusters and Windows-based clients from processing COM+ components. To support Windows-based clients, the cluster can use NLB or other load balancers to distribute incoming client requests. Figure 6.4 shows a COM+ application cluster that’s running NLB.
Figure 6.4 - COM+ application cluster that uses NLB
You can create Web clusters that use CLB to load balance the activation requests for COM+ components and forward these requests from the Web cluster to the COM+ application cluster for processing. In a two-tier Application Center clustering environment, one tier handles requests for Web sites and the second tier handles requests for COM+ components. The performance in this environment might not match the performance of a single Web cluster because data must be transmitted between the Web cluster and the COM+ application cluster.
Although you get the best performance by activating COM+ applications locally, creating a separate cluster to process COM+ components has the following advantages:
COM+ applications clusters are discussed in more detail in Lesson 3, "Designing CLB Clusters."
Application Center is a tool for creating, deploying, and managing Web- and component-based applications. Application Center allows administrators to group Windows 2000 Server computers into clusters and easily manage Web site content and applications. The key tenet of distributed Web-based applications is the logical partitioning of an application into three tiers: presentation, business logic, and data access and storage. Application Center includes the following features: cluster services, load balancing, synchronization and deployment, monitoring, programmatic support, local and remote administration, and high availability. Application Center provides several alternatives for implementing load balancing on a cluster. Application Center supports three load balancing options: Integrated NLB, CLB, or no load balancing. Application Center synchronizes every aspect of a cluster’s composition and configuration and provides a central viewing point for obtaining monitoring-related information. The architecture for Application Center consists of three major layers: User Interface, Feature Set, and Operating System. Application Center 2000 supports three primary clustering scenarios: single-node clusters, standard Web clusters, and COM+ application clusters.