High Availability involves doing everything possible to keep a server self-maintained, self-healing, and with the highest amount of uptime possible with the lowest amount of administrator interaction. The goal is to keep a server online.
First, consider the reasons that a server or service could become unavailable. Some examples would be hardware failure, out of memory, incorrect permissions, high CPU usage, failed services, improper configurations.
Causes for service unavailability can be hedged by software solutions that do two jobs: monitor and repair any damage possible, and alert the administrators of possible issues that require personal attention.
The best way to prevent outages is to gauge the expected server load, and configure the services to operate within parameters that will not exceed the available resources.
Granting access to a system is the most critical part of availability because without it, there is no chance to do administration and correction.