Skip to content

Commit

Permalink
[skip ci] Cluster management considerations (#897)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nyco authored and michalwski committed Aug 30, 2016
1 parent 200adca commit 99874a7
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
33 changes: 33 additions & 0 deletions doc/operation-and-maintenance/Cluster-management-considerations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
This applies whatever the technology: bare metal, virtualisation, hypervisor, containers, etc.

## Single-node MongooseIM

With single-node MongooseIM, one can setup a vertically scalable system, that is function of the server resources. MongooseIM could scale from hundreds to tens of thousands of concurrent users.

In single-node MongooseIM, there is no load distribution, and no fallback or failover in case of failure.

This applies low-scale deployments, such as testing and development environments, whether it is on embedded devices, personal computers, or servers.

## Dual-node MongooseIM

With dual-node MongooseIM, one can setup a vertically scalable system, that is function of the servers resources. We recommend that servers with the same power are used. One node could handle a different set of services, given these non-MongooseIM services consumes roughly the same resources on both servers. In this setup, MongooseIM could scale up to hundred of thousands of concurrent users.

In dual-node MongooseIM, there is 50-50 load distribution. There is a possible fallback or failover in case of a node failure, but then the remaining node should be able to handle the full load in order to avoid degrading the service.

This applies from low to mid-scale deployments, such as functional and load testing, and initial production environments. We recommend real dedicated servers, although MongooseIM coul run in cluster mode with low-power machines, such as embedded devices.

## Multi-node MongooseIM

With multi-node MongooseIM, one can setup a vertically and horizontally scalable system, that is still function of the servers resources. We highly recommend that servers with the same available power are used. We also recommend that no node handles a different set of services, because a risk of unbalance can appear. In this setup, MongooseIM could scale up to tens of millions of concurrent users.

In multi-node MongooseIM, with `n` nodes, there is `1/n` load distribution. There is a possible fallback or failover in case of a node failure, but then the remaining nodes should be able to handle the `1/n` load in order to avoid degrading the service.

This applies from mid to large-scale deployments, such as production environments. We recommend real dedicated, powerful servers.

## Multi-datacenter MongooseIM

With multi-datacenter MongooseIM, one can setup a vertically and horizontally highly scalable system. The MongooseIM clusters are simply distributed across continents for local, low-lag client connections, and the clusters are interconnected via high-speed links. In this setup, MongooseIM could scale up to hundreds of millions of concurrent users.

This applies from large to very large-scale deployments.

Contact us.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ pages:
- 'mod_version': 'modules/mod_version.md'
- 'mod_websockets': 'modules/mod_websockets.md'
- 'Operation and maintenance':
- 'Cluster management considerations': 'operation-and-maintenance/Cluster-management-considerations.md'
- 'Cluster configuration and node management': 'operation-and-maintenance/Cluster-configuration-and-node-management.md'
- 'Logging & monitoring': 'operation-and-maintenance/Logging-&-monitoring.md'
- 'Reloading configuration on a running system': 'operation-and-maintenance/Reloading-configuration-on-a-running-system.md'
Expand Down

0 comments on commit 99874a7

Please sign in to comment.