High-availability Cluster - Application Design Requirements

Application Design Requirements

Not every application can run in a high-availability cluster environment, and the necessary design decisions need to be made early in the software design phase. In order to run in a high-availability cluster environment, an application must satisfy at least the following technical requirements, the last two of which are critical to its reliable function in a cluster, and are the most difficult to satisfy fully:

  • There must be a relatively easy way to start, stop, force-stop, and check the status of the application. In practical terms, this means the application must have a command line interface or scripts to control the application, including support for multiple instances of the application.
  • The application must be able to use shared storage (NAS/SAN).
  • Most importantly, the application must store as much of its state on non-volatile shared storage as possible. Equally important is the ability to restart on another node at the last state before failure using the saved state from the shared storage.
  • The application must not corrupt data if it crashes, or restarts from the saved state.

Read more about this topic:  High-availability Cluster

Famous quotes containing the words application and/or design:

    “The main object of a revolution is the liberation of man ... not the interpretation and application of some transcendental ideology.”
    —Jean Genet (1910–1986)

    “Joe ... you remember I said you wouldn’t be cheated?... Nobody is really. Eventually all things work out. There’s a design in everything.”
    —Sidney Buchman (1902–1975)