All applications are available at least some of the time, but Web-based applications and mission-critical enterprise applications must typically provide round-the-clock services. If your enterprise application needs to work 24 hours a day, 7 days a week, you probably need to design for high availability. Advances in hardware and software have dramatically increased the quality of high-availability applications. However, availability is not easy to implement and requires a considerably more complex architectural infrastructure than the previous generation of client/server applications.