High availability refers to your Web application's capability to respond 99.99 percent of the time. You'll achieve this figure, which works out to about one hour of down time per year, by designing network architectures and Web applications that eliminate all single points of failure or that have a high degree of fault tolerance (redundancy at every level within the hosting provider, network, server, and Web-application architecture). Here's an example: You have a basic Web site that contains a single Web server and a single database server. One day a power surge causes a power supply failure in the Web server, and the site goes down. If that server's running an e-commerce site, you might lose business irreparably. However, if you've built the site on a cluster of two or more Web servers, the end user can navigate the site normally and may never know that any component failure occurred. Ideally, all your servers would remain healthy all the time; however, that uptime percentage I mentioned earlier does not mean each server will maintain individual uptimes of 99.99 percent. Rather, this percentage refers to the Web application's total uptime as seen by the end user. See Table 1.1, which describes uptime percentage and downtime per year for an application running continuously 24 hours a day, 7 days a week, and 365 days a year.
In the rest of this chapter, I'll give you a conceptual idea of how to consider high availability when you are planning an application. NOTE Chapter 2, "Trouble Shooting and Monitoring System Performance," Chapter 3, "Scaling with ColdFusion," Chapter 4, "Scaling with J2EE," and Chapter 5, "Managing Session State in Clusters," will show you how to apply high availability concepts while performance-tuning and scaling your application. The largest problem many Web developers and network engineers face is knowing precisely when a problem exists. To improve your Web site's uptime and stability, first you must think about how to determine the site's actual availability from a performance perspective. Most sites crash because of too great a load on the server, and improper performance tuning. |