Networks can be configured to be so incredibly redundant now - for reasonable prices - that there is no excuse for a data center not to achieve five nines (99.999%) of availability.
But what about the servers and applications? Why spend so much time up front configuring the network to make sure it doesn't fail, and then deploy an application to a single server?
Sure, there are ways to make sure individual servers have some redundancy to minimize failures -- things like RAID1, RAID5, or RAID10 (redundant array of inexpensive disks) which will protect against a disk drive failure (and I highly recommend this type of configuration for all production servers - and preferably the use of hardware RAID vs. software RAID). But what happens if a file gets corrupt on the RAID array? Or a recent configuration change brings the application down? Or a newly released patch conflicts with other settings and causes problems? Well, in these situations the server will go down and the application(s) hosted on that server will be offline.
A good monitoring and alerting process will allow the system administrator to detect and address these issues quickly, but still there will be some level of downtime associated with the issue. And depending on the type of issue, even the best system administrator might not be able to immediately resolve the issue - it may take time. Time during which your application is unavailable and you may be losing business due to the site interruption.
More...