Scaling for Enterprise

plans-img Available on all plans

deployment-img self-hosted deployments

Mattermost is designed to scale from small teams hosted on a single server to large enterprises running in cluster-based, highly available deployment configurations.

Server requirements vary based on usage and it is highly recommended that pilots are run before enterprise-wide deployments in order to estimate full scale usage based on your specific organizational needs.

Single machine deployment

Organizations can typically run Mattermost on a single server with up to 2,000 users, though more users have been observed based on different usage and server configurations.

Multi machine deployment

Deployments between 2,000 and 10,000 registered users with moderate usage can run on a standard three-machine Mattermost deployment with a proxy, an application server and a database server. At this scale, demands of larger organizations can typically be met by using powerful hardware in a standard configuration.

Cluster-based deployment

Note

plans-img-yellow Available only on Enterprise plans

Available in legacy Mattermost Enterprise Edition E20

Deployments over 10,000 registered users with moderate usage can be supported by adding additional servers in cluster-based, High Availability configuration. To date, the largest simulation included 70,000 concurrent users on a single Mattermost instance.

This configuration uses a load balancer to distribute requests from users across multiple Mattermost application servers, allowing the system to scale beyond the limits of any single server.

For more information, see High Availability deployment guide for horizontal scaling setup.

Sample scaling guide

This guide demonstrates how to budget for, and build, large-scale Mattermost deployments.

Mattermost can be deployed on-premises or on the cloud platform of your choice, including AWS, Google Cloud, Microsoft Azure, and Oracle Cloud. This guide uses AWS as an example.

Based on the hardware requirements, here’s what Mattermost’s server architecture looks like for a 10,000-user deployment:

Mattermost server architecture for a 10,000 user deployment

Sizing guide using AWS

On AWS, we recommend using the following EC2 server types as a baseline:

  • App servers: m5.xlarge

  • Database servers: r4.xlarge

For the purposes of this guide, we’ll assume medium usage (10 MB/user/month with a 2x safety factor) for storage estimates and 200 MB/user/month for data transfer estimates. We will also assume on-demand pricing with no upfront payments, though more savings (typically 40% or more) can be achieved with reserved servers on 1–3 year commitments and upfront payments.

As deployments scale above 5,000 users, additional servers are added for performance load-balancing and for providing additional redundancy (see our High Availability Cluster guide).

This spreadsheet shows how much hardware you’ll need for different-sized Mattermost deployments and provides an estimate of how much each will cost. It includes links to AWS’s cost calculator for various deployment sizes. The smaller deployment examples (i.e., 1,000 users and 5,000 users) are on the conservative side, with separate servers per function that can easily be scaled out as Mattermost is rolled out.

Here’s an example of the hardware you’ll need for a 10,000-user deployment:

Hardware needed for a 10,000 user deployment

For more information, check out our Administrator Onboarding Tasks documentation.

Hosting recommendation for 100,000+ users

The following matrix presents key features for a successful multi-region Mattermost implementation that scales to 100,000 users with support for high availability and geographically based traffic routing in on premises, AWS, and Azure deployments.

To scale to 100,000 users and above, we recommended using the Mattermost open source load testing framework to simulate usage of your system at full scale.

Feature

Self-Hosted

Amazon AWS

Azure

Multi-region/data center support

Yes

Regions: 16

Regions: 54

Auto scaling for Mattermost nodes

Yes - using a solution like Kubernetes

AWS Auto Scaling

Azure Autoscale

Geographic based traffic routing

Yes

Route 53

Azure DNS

Load balancing

Yes

Elastic Load Balancer

Azure Load Balancer

Multi-region, HA storage

Yes

S3

?

Multi-region, HA MySQL

Yes - using a solution like Galera

Aurora / RDS for MySQL

Azure MySQL

Multi-region, HA PostgreSQL

Yes

Aurora / RDS for PostgreSQL

Azure PostgreSQL

Multi-region, HA elasticsearch

Yes

Amazon Elasticsearch Service

No