Read an Excerpt
Chapter 1: Introduction to Designing Highly Available Web Solutions
Lesson 1: Introduction to Highly Available Web Solutions
Lesson 2: Determining System Availability
Lesson 3: Ensuring System Availability
About This ChapterProtecting business uptime is an important challenge to many businesses. In some cases businesses try to have a Web site available 24 hours a day, 7 days a week. If they can't deliver a Web site that's highly responsive and always available, customers will find companies that can. Keeping a system up at all times is a high priority, especially in cases involving high financial stakes. To provide an infrastructure that meets these requirements, the system architect must design a platform that's available, reliable, and scalable. The platform should also provide ease of implementation, interoperability, and a short turnaround time to market. The front-end systems, back-end systems, and the networking infrastructure should work in conjunction with one another to provide high-performing, reliable, and scalable Web sites to online customers. This chapter introduces many of the concepts essential to the design of highly available Web sites. Additionally, this chapter provides information about designing these sites and determining an appropriate method of ensuring high availability. Many of the concepts introduced here are discussed in more detail in subsequent chapters. The information is presented here in order to provide a cohesive introduction to designing highly available Web solutions.
Before You BeginTo complete the lessons in this chapter, you must have
- An understanding of basic design and administration concepts in Microsoft Windows 2000
- An understanding of basic design and administration concepts of network infrastructures
- A basic understanding of the concepts of high availability, fault tolerance, cluster technologies, redundant array of independent disks (RAID) implementations, load balancing, and storage area networks (SANs)
Lesson 1: Introduction to Highly Available Web SolutionsBecause World Wide Web technologies are rapidly becoming the platform of choice for supporting enterprise-wide applications, the infrastructure required to develop and host applications has grown in scale and complexity. Server technology is particularly hard-pressed to keep up with the daily client demands for Web pages. One of the greatest concerns of vendors today is to make their products and services available 24 hours a day, 7 days a week. Providing this kind of service isn't only a business consideration, but also a matter of brand reputation. Businesses have spent millions of dollars to achieve the ideal of very high uptime. Even a small amount of downtime can cost a business a significant amount of revenue and damage its reputation. An outage can be caused by a variety of factors. The hardware, operating system, data storage, network, and management applications are some of the vulnerable areas that can lead to downtime. The system might not be resilient against disasters and faults in the system. To meet the demands of highly available Web sites, Microsoft Windows 2000 Advanced Server has been designed to address mission-critical needs. This lesson introduces you to Windows 2000 Advanced Server and provides an overview of some of the key terminology used in designing highly available Web solutions. In addition, this lesson provides an overview of the architectural changes that have occurred as networks have moved toward a Web computing model for business.
After this lesson, you will be able to
- Describe which features in Windows 2000 Advanced Server support high availability and scalability
- Define the key terminology used in designing highly available Web solutions
- Describe the Web computing model for business
Windows 2000 Advanced ServerThe Microsoft Windows 2000 Server family currently includes Windows 2000 Server, Windows 2000 Advanced Server, and Windows 2000 Datacenter Server. Windows 2000 Server offers core functionality appropriate to small and mediumsized organizations that have numerous workgroups and branch offices and that need essential services, including file, print, communications, infrastructure, and Web. Windows 2000 Advanced Server is designed to meet mission-critical needssuch as large data warehouses, online transaction processing (OLTP), messaging, e-commerce, and Web hosting services-for medium-sized and large organizations and for Internet service providers (ISPs). Datacenter Server includes all the functionality of Advanced Server, but provides greater reliability and availability. Datacenter Server is the best platform for large-scale line-of-business and enterprise.com back-end usage.
Windows 2000 Advanced Server evolved from Microsoft Windows NT Server 4, Enterprise Edition. It provides an integrated and comprehensive clustering infrastructure for high availability and scalability of applications and services, including main memory support up to 8 gigabytes (GB) on Intel Page Address Extension (PAE) systems. Designed for demanding enterprise applications, Advanced Server supports new systems with up to eight-way symmetric multiprocessing (SMP). SMP enables any one of the multiple processors in a computer to run any operating system or application threads simultaneously with the other processors in the system. Windows Advanced Server is well suited to database-intensive work and provides high availability server services and load balancing for excellent system and application availability.
Windows 2000 Advanced Server includes the full feature set of Windows 2000 Server and adds the high availability and scalability required for enterprise and larger departmental solutions. Windows 2000 Advanced Server includes the following functionality to support high availability:
- Network Load Balancing (NLB)
- The Cluster service, based on the Microsoft Cluster Server service in Windows NT Server 4, Enterprise Edition
- Up to 8 GB main memory on Intel PAE systems
- Up to eight-way SNIP
Note If you're uncertain about whether you have an Intel PAE computer system, contact your hardware vendor.
Key TerminologyIn various types of documentation, the terminology used to describe specific characteristics of networks and Web sites often differs from one source to the next. In this section several key terms are defined to help you understand how specific terminology is used within this book.
AvailabilityAvailability is a measure (from 0 to 100 percent) of the fault tolerance of a computer and its programs. The goal of a highly available computer is to run 24 hours a day, 7 days a week (100 percent availability), which means that applications and services are operational and usable by clients most of the time. Availability measures whether a particular service is functioning properly. For example, a service with an availability of 99.999 percent is available (functioning properly) for all but 5.3 minutes of unplanned downtime a year.
You can use many different methods to increase the availability of your Web site. They range from using servers with fault-tolerant components (such as hot swappable drives, RAID controllers, redundant network interfaces, and hot swappable system boards) to load-balanced clustered solutions (such as Cisco Local Directors or Microsoft Application Center Server 2000) to failover clustered solutions (such as the Cluster service or Veritas Cluster Server). In the case of a completely redundant computer system, the software model for using the hardware is one in which the primary computer runs the application while the other computer idles, acting as a standby in case the primary system fails. The main drawbacks to redundant systems are increased hardware costs with no improvement in system throughput, and, in some cases, no protection from application failure.
You can make front-end systems at the Web tier highly available through the use of clustered servers that provide a single virtual Internet Protocol (IP) address to their clients. You can use load balancing to distribute the load across the clones. Building a failuredetection process into the load-balancing system increases the service's availability. A clone that's no longer offering a service can be automatically removed from the load-balanced set while the remaining clones continue to offer the service.
You can make back-end systems highly available through the use of failover clustering. In failover clustering, if one node fails, the other node takes ownership of its resources. Failover clustering assumes that an application can resume on another computer that's been given access to the failed system disk subsystem. The primary node will automatically failover to the secondary node when a clustered application, the operating system, or a hardware component of the primary node fails. The secondary node, which should be a replica of the primary node, must have access to the same data storage....