High availability is a principle of software or an application maintaining functionality or “staying up” despite interruptions. Commonly abbreviated as "HA", HA systems must be carefully designed and thoroughly tested so that in the event of failure, users of the HA system do not notice that anything is wrong.
In order to achieve an acceptable level of high availability, a system must have redundant information systems to provide back up information, must not have a single point of failure (see resiliency), and the ability to detect failure when it does occur.
Unscheduled downtime of a high availability system is measured in “9s.” For example, if a system is down “two 9s” out of the entire year, that is 99% uptime with 1% downtime. However, 1% of downtime is approximately three days of downtime per year.
Cloud applications are expected to be highly available. However, as an application grows in complexity, availability becomes a greater challenge. For example, an application that consists of a single service that is available 99.99% of the time has 52 minutes of downtime a year. That application, when broken into ten interdependent microservices, could have an availability of 99.99% ^ 10, or 99.90%, which translates into nearly nine hours of downtime a year. Architecting applications to avoid interdependencies to ensure availability is a key consideration of cloud applications.