Continuous availability

Continuous availability is an approach to computer system and application design that protects users against downtime, whatever the cause and ensures that users remain connected to their documents, data files and business applications. Continuous availability describes the information technology methods to ensure business continuity.

In early days of computing, availability was not considered business critical. With the increasing use of mobile computing, global access to online business transactions and business-to-business communication, continuous availability is increasingly important based on the need to support customer access to information systems.

Solutions to continuous availability exists in different forms and implementations depending on the software and hardware manufacturer. The goal of the discipline is to reduce the user or business application downtime, which can have a severe impact on business operations. Inevitably, such downtime can lead to loss of productivity, loss of revenue, customer dissatisfaction and ultimately can damage a company's reputation.

Degrees of availability
The terms high availability, continuous operation, and continuous availability are generally used to express how available a system is. The following is a definition of each of these terms.

High availability refers to the ability to avoid unplanned outages by eliminating single points of failure. This is a measure of the reliability of the hardware, operating system, middleware, and database manager software. Another measure of high availability is the ability to minimize the effect of an unplanned outage by masking the outage from the end users. This can be accomplished by providing redundancy or quickly restarting failed components.

Availability is usually expressed as a percentage of uptime in a given year: When defining such a percentage it needs to be specified if it applies to the hardware, the IT infrastructure or the business application on top.

Continuous operation refers to the ability to avoid planned outages. For continuous operation there must be ways to perform necessary administrative work, like hardware and software maintenance, upgrades, and platform refreshes while the business application remains available to the end users. This is accomplished by providing multiple servers and switching end users to an available server at times when one server is made unavailable. Note that a system running in continuous operation is not necessarily operating with high availability because an excessive number of unplanned outages could compromise this.

Continuous availability combines the characteristics of high availability and continuous operation to provide the ability to keep the business application running without any noticeable downtime.

Types of outages
Planned outages are deliberate and are scheduled at a convenient time. These involve such activities as: - Hardware installation or maintenance - Software maintenance or upgrades of the operating system, the middleware, the database server or the business application - Database administration such as offline backup, or offline reorganization

Unplanned outages are unexpected outages that are caused by the failure of any system component. They include hardware failures, software issues, or people and process issues.

History
Various commercially viable examples exist for hardware/software implementations. These include:
 * BIND
 * BitTorrent
 * Ceph
 * CockroachDB
 * Dovecot
 * IBM Parallel Sysplex
 * MariaDB Xpand
 * Stratus
 * Tandem NonStop Computers
 * YugabyteDB