High availability

Overview

The high-availability relies on Docker Swarm which gives the following services :

  • Monitored service

  • Multi-node deployment

  • Keep-alive of the actives nodes

  • Possibility to create replicas of the same services

Warning

Swarm doesn’t provide shared storage. This feature must be provided by the system administrator with an external service.

Note

Some services use persisted states for some values. In this case, the volume holding these information must be shared. This ensures that values are still present when a service move to another node. See the module capabilities for more information.

Placement constraints

Each service can be constrained to run only in some nodes. Constraints can be defined based on the host OS, node roles or node labels.

A typical example is to run services with shared storage in the nodes with shared storage.

deploy:
    placement:
        constraints:
            - "node.labels.osp-node==shared-storage"

Replicas

Load distribution is used when a module has a lot of load which cannot be handled on a single node (can be networking / CPU / memory usage).

For example, a compatible module (See the module capabilities) can be run at the same time on multiple node to share the load.

deploy:
    replicas:
        2