Skip to content

Commit

Permalink
Added v2 reference architecture details (#7397)
Browse files Browse the repository at this point in the history
* Added v2 ref arch data

* Rolled back changes to v1 guidance; added CPU/MEM for all

* Update source/scale/scaling-for-enterprise.rst

Co-authored-by: Alejandro García Montoro <[email protected]>

* Incorporated feedback, removed v1 refs & added page redirects

* Corrected v1 page redirects

---------

Co-authored-by: Alejandro García Montoro <[email protected]>
  • Loading branch information
cwarnermm and agarciamontoro authored Oct 8, 2024
1 parent d3c1270 commit ac65f35
Show file tree
Hide file tree
Showing 17 changed files with 387 additions and 333 deletions.
12 changes: 12 additions & 0 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -3347,6 +3347,18 @@ def setup(_: Sphinx):
"https://docs.mattermost.com/scale/performance-monitoring-metrics.html#why-are-chart-labels-difficult-to-distinguish",
"scale/high-availability-cluster.html":
"https://docs.mattermost.com/scale/high-availability-cluster-based-deployment.html",
"scale/scale-to-100-users.html":
"https://docs.mattermost.com/scale/scale-to-200-users.html",
"scale/scale-to-1000-users.html":
"https://docs.mattermost.com/scale/scale-to-2000-users.html",
"scale/scale-to-25000-users.html":
"https://docs.mattermost.com/scale/scale-to-30000-users.html",
"scale/scale-to-70000-users.html":
"https://docs.mattermost.com/scale/scale-to-80000-users.html",
"scale/scale-to-79000-users.html":
"https://docs.mattermost.com/scale/scale-to-80000-users.html",
"scale/scale-to-88000-users.html":
"https://docs.mattermost.com/scale/scale-to-90000-users.html",

# Upgrade redirects
"upgrade/upgrading-mattermost-server.html#prepare-to-upgrade-to-the-latest-version":
Expand Down
2 changes: 1 addition & 1 deletion source/deploy/postgres-migration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Troubleshooting
---------------

Unsupported authentication for MySQL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If you are facing an error due to authentication with MySQL v8, it may be related to a `known issue <https://github.com/dimitri/pgloader/issues/782>`_ with pgloader. The fix is to set the default authentication method to ``mysql_native_password`` in your MySQL configuration. To do so, add the ``default-authentication-plugin=mysql_native_password`` value to your ``mysql.cnf`` file. Also, do not forget to update your user to use this authentication method.

Expand Down
24 changes: 12 additions & 12 deletions source/guides/scale-mattermost.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ Scale Mattermost
:titlesonly:

Scale for Enterprise </scale/scaling-for-enterprise>
Scale up to 100 users </scale/scale-to-100-users>
Scale up to 1000 users </scale/scale-to-1000-users>
Scale up to 200 users </scale/scale-to-200-users>
Scale up to 2000 users </scale/scale-to-2000-users>
Scale up to 15000 users </scale/scale-to-15000-users>
Scale up to 25000 users </scale/scale-to-25000-users>
Scale up to 30000 users </scale/scale-to-30000-users>
Scale up to 50000 users </scale/scale-to-50000-users>
Scale up to 70000 users </scale/scale-to-70000-users>
Scale up to 79000 users </scale/scale-to-79000-users>
Scale up to 88000 users </scale/scale-to-88000-users>
Scale up to 80000 users </scale/scale-to-80000-users>
Scale up to 90000 users </scale/scale-to-90000-users>
Scale up to 100000 users </scale/scale-to-100000-users>
High availability cluster-based deployment </scale/high-availability-cluster-based-deployment>
Elasticsearch </scale/elasticsearch>
Collect performance metrics </scale/collect-performance-metrics>
Expand All @@ -27,14 +27,14 @@ Scale and monitor your Mattermost deployment.

* :doc:`Scale for Enterprise </scale/scaling-for-enterprise>` - See the recommended reference architectures for your self-hosted Mattermost deployment.

* :doc:`Scale up to 100 users </scale/scale-to-100-users>` - Learn how to scale Mattermost to up to 100 users.
* :doc:`Scale up to 1000 users </scale/scale-to-1000-users>` - Learn how to scale Mattermost to up to 1000 users.
* :doc:`Scale up to 200 users </scale/scale-to-200-users>` - Learn how to scale Mattermost to up to 200 users.
* :doc:`Scale up to 2000 users </scale/scale-to-2000-users>` - Learn how to scale Mattermost to up to 2000 users.
* :doc:`Scale up to 15000 users </scale/scale-to-15000-users>` - Learn how to scale Mattermost to up to 15000 users.
* :doc:`Scale up to 25000 users </scale/scale-to-25000-users>` - Learn how to scale Mattermost to up to 25000 users.
* :doc:`Scale up to 30000 users </scale/scale-to-30000-users>` - Learn how to scale Mattermost to up to 30000 users.
* :doc:`Scale up to 50000 users </scale/scale-to-50000-users>` - Learn how to scale Mattermost to up to 50000 users.
* :doc:`Scale up to 70000 users </scale/scale-to-70000-users>` - Learn how to scale Mattermost to up to 70000 users.
* :doc:`Scale up to 79000 users </scale/scale-to-79000-users>` - Learn how to scale Mattermost to up to 79000 users.
* :doc:`Scale up to 88000 users </scale/scale-to-88000-users>` - Learn how to scale Mattermost to up to 88000 users.
* :doc:`Scale up to 80000 users </scale/scale-to-80000-users>` - Learn how to scale Mattermost to up to 80000 users.
* :doc:`Scale up to 90000 users </scale/scale-to-90000-users>` - Learn how to scale Mattermost to up to 90000 users.
* :doc:`Scale up to 100000 users </scale/scale-to-100000-users>` - Learn how to scale Mattermost to up to 100000 users.

* :doc:`High availability cluster-based deployment </scale/high-availability-cluster-based-deployment>` - Learn how to run Mattermost at scale with all the config tweaks needed.
* :doc:`Elasticsearch </scale/elasticsearch>` - Enhance search performance with Elasticsearch.
Expand Down
55 changes: 0 additions & 55 deletions source/scale/scale-to-1000-users.rst

This file was deleted.

60 changes: 60 additions & 0 deletions source/scale/scale-to-100000-users.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
Scale Mattermost up to 100000 users
====================================

.. include:: ../_static/badges/ent-selfhosted.rst
:start-after: :nosearch:

This page describes the Mattermost reference architecture designed for the load of up to 100000 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details.

- **High Availability**: Required
- **Database Configuration**: writer, multiple readers

.. note::
Usage of CPU, RAM, and storage space can vary significantly based on user behavior. These hardware recommendations are based on traditional deployments and may grow or shrink depending on how active your users are.

Requirements
------------

+------------------------+-----------+----------------+-------------------+
| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** |
| | | Memory (GiB)** | |
+========================+===========+================+===================+
| Mattermost Application | 6 | 16/32 | c7i.4xlarge |
+------------------------+-----------+----------------+-------------------+
| RDS Writer | 1 | 16/128 | db.r7g.4xlarge |
+------------------------+-----------+----------------+-------------------+
| RDS Reader | 5 | 16/128 | db.r7g.4xlarge |
+------------------------+-----------+----------------+-------------------+
| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search |
+------------------------+-----------+----------------+-------------------+
| Proxy | 1 | 16/64 | m7i.4xlarge |
+------------------------+-----------+----------------+-------------------+

Lifetime storage
----------------

.. include:: ../scale/lifetime-storage.rst
:start-after: :nosearch:

Estimated storage per user, per month
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: ../scale/estimated-storage-per-user-per-month.rst
:start-after: :nosearch:

Example
~~~~~~~

A 100000-person team with medium usage (with a safety factor of 2x) would require between 10.56TB :sup:`1` and 52.8TB :sup:`2` of free space per annum.

:sup:`1` 100000 users * 5 MB * 12 months * 2x safety factor

:sup:`2` 100000 users * 25 MB * 12 months * 2x safety factor

We strongly recommend that you review storage utilization at least quarterly to ensure adequate free space is available.

Additional considerations
-------------------------

.. include:: ../scale/additional-ha-considerations.rst
:start-after: :nosearch:
27 changes: 16 additions & 11 deletions source/scale/scale-to-15000-users.rst
Original file line number Diff line number Diff line change
@@ -1,29 +1,34 @@
Scale Mattermost up to 15000 users
==================================

.. include:: ../_static/badges/ent-only.rst
.. include:: ../_static/badges/ent-selfhosted.rst
:start-after: :nosearch:

This page describes the Mattermost reference architecture designed for the load of up to 15000 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details.

- **High Availability**: Required
- **Database Configuration**: writer, multiple readers
- **Database Configuration**: writer, reader

.. note::
Usage of CPU, RAM, and storage space can vary significantly based on user behavior. These hardware recommendations are based on traditional deployments and may grow or shrink depending on how active your users are.

Requirements
------------

+------------------------+----------+------------------+----------------+------------------+
| **Resource Type** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** |
+========================+==========+==================+================+==================+
| Mattermost Application | 4 | 8 | 2 | c6i.xlarge |
+------------------------+----------+------------------+----------------+------------------+
| RDS Writer | 4 | 32 | 1 | db.r6g.xlarge |
+------------------------+----------+------------------+----------------+------------------+
| RDS Reader | 4 | 32 | 1 | db.r6g.xlarge |
+------------------------+----------+------------------+----------------+------------------+
+------------------------+-----------+----------------+-------------------+
| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** |
| | | Memory (GiB)** | |
+========================+===========+================+===================+
| Mattermost Application | 2 | 4/8 | c7i.xlarge |
+------------------------+-----------+----------------+-------------------+
| RDS Writer | 1 | 4/32 | db.r7g.xlarge |
+------------------------+-----------+----------------+-------------------+
| RDS Reader | 1 | 4/32 | db.r7g.xlarge |
+------------------------+-----------+----------------+-------------------+
| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search |
+------------------------+-----------+----------------+-------------------+
| Proxy | 1 | 16/64 | m7i.4xlarge |
+------------------------+-----------+----------------+-------------------+

Lifetime storage
----------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Scale Mattermost up to 100 users
Scale Mattermost up to 200 users
================================

This page describes the Mattermost reference architecture designed for the load of up to 100 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details.
This page describes the Mattermost reference architecture designed for the load of up to 200 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details.

- **High Availability**: Not required
- **Database Configuration**: Single
Expand All @@ -12,13 +12,20 @@ This page describes the Mattermost reference architecture designed for the load
Requirements
------------

+------------------------+----------+------------------+----------------+------------------+
| **Resource Type** | **vCPU** | **Memory (GiB)** | **# of Nodes** | **AWS Instance** |
+========================+==========+==================+================+==================+
| Mattermost Application | 2 | 4 | 1 | c6i.large |
+------------------------+----------+------------------+----------------+------------------+
| RDS Writer | 2 | 16 | 1 | db.r6g.large |
+------------------------+----------+------------------+----------------+------------------+
+------------------------+-----------+----------------+-------------------+
| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** |
| | | Memory (GiB)** | |
+========================+===========+================+===================+
| Mattermost Application | 1 | 2/4 | c7i.large |
+------------------------+-----------+----------------+-------------------+
| RDS Writer | 1 | 2/16 | db.r7g.large |
+------------------------+-----------+----------------+-------------------+
| RDS Reader | 0 | 2/16 | db.r7g.large |
+------------------------+-----------+----------------+-------------------+
| Elasticsearch Node | 0 | 4/32 | r6g.xlarge.search |
+------------------------+-----------+----------------+-------------------+
| Proxy | 1 | 16/64 | m7i.4xlarge |
+------------------------+-----------+----------------+-------------------+

Lifetime storage
----------------
Expand All @@ -35,11 +42,11 @@ Estimated storage per user, per month
Example
~~~~~~~

A 100-person team with medium usage (with a safety factor of 2x) would require between 12GB :sup:`1` and 60GB :sup:`2` of free space per annum.
A 200-person team with medium usage (with a safety factor of 2x) would require between 12GB :sup:`1` and 60GB :sup:`2` of free space per annum.

:sup:`1` 100 users * 5 MB * 12 months * 2x safety factor
:sup:`1` 200 users * 5 MB * 12 months * 2x safety factor

:sup:`2` 100 users * 25 MB * 12 months * 2x safety factor
:sup:`2` 200 users * 25 MB * 12 months * 2x safety factor

We strongly recommend that you review storage utilization at least quarterly to ensure adequate free space is available.

Expand Down
60 changes: 60 additions & 0 deletions source/scale/scale-to-2000-users.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
Scale Mattermost up to 2000 users
=================================

.. include:: ../_static/badges/ent-selfhosted.rst
:start-after: :nosearch:

This page describes the Mattermost reference architecture designed for a minimum load of 100 concurrent users and up to 2000 concurrent users. Unsure which reference architecture to use? See the :doc:`scaling for enterprise </scale/scaling-for-enterprise>` documentation for details.

- **High Availability**: Required
- **Database Configuration**: writer, reader

.. note::
Usage of CPU, RAM, and storage space can vary significantly based on user behavior. These hardware recommendations are based on traditional deployments and may grow or shrink depending on how active your users are.

Requirements
------------

+------------------------+-----------+----------------+-------------------+
| **Resource Type** | **Nodes** | **vCPU/ | **AWS Instance** |
| | | Memory (GiB)** | |
+========================+===========+================+===================+
| Mattermost Application | 2 | 2/4 | c7i.large |
+------------------------+-----------+----------------+-------------------+
| RDS Writer | 1 | 2/16 | db.r7g.large |
+------------------------+-----------+----------------+-------------------+
| RDS Reader | 1 | 2/16 | db.r7g.large |
+------------------------+-----------+----------------+-------------------+
| Elasticsearch Node | 2 | 4/32 | r6g.xlarge.search |
+------------------------+-----------+----------------+-------------------+
| Proxy | 1 | 16/64 | m7i.4xlarge |
+------------------------+-----------+----------------+-------------------+

Lifetime storage
----------------

.. include:: ../scale/lifetime-storage.rst
:start-after: :nosearch:

Estimated storage per user, per month
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. include:: ../scale/estimated-storage-per-user-per-month.rst
:start-after: :nosearch:

Example
~~~~~~~

A 2000-person team with medium usage (with a safety factor of 2x) would require between 120GB :sup:`1` and 600GB :sup:`2` of free space per annum.

:sup:`1` 2000 users * 5 MB * 12 months * 2x safety factor

:sup:`2` 2000 users * 25 MB * 12 months * 2x safety factor

We strongly recommend that you review storage utilization at least quarterly to ensure adequate free space is available.

Additional considerations
-------------------------

.. include:: ../scale/additional-ha-considerations.rst
:start-after: :nosearch:
Loading

0 comments on commit ac65f35

Please sign in to comment.