System architecture and requirements / System requirements for ELMA365 On-Premises Enterprise 

System requirements for ELMA365 On-Premises Enterprise

The article shows the minimum system requirements for installing and running ELMA365 On-Premises Enterprise. The information provided below is not a guide for server configuration. Use it only to estimate the compatibility of your company’s equipment with the ELMA365 software. The actual parameters may vary greatly depending on the workload profile and are selected according to customer requirements.

начало внимание

In this article, the term User is used for an ELMA365 account. In licensing terms, it can be a named or a floating license or an integration with an external system.

конец внимание

 

ELMA365 server

 

The table below lists software and hardware requirements for the installation of the ELMA365 server.

 

Operating System

Linux

Minimum hardware requirements* (for 500 users)

Application server

CPU: x86-x64, 8 or more vCPUs.

Hard drive**: 100 GB, write IOPS 2000 or more.

RAM: 16 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for server resources and the number of simultaneously connected users increases:

  • The number of processor cores has to be increased.
  • The amount of RAM has to be increased.
  • The system needs to be scaled by adding more servers.

One physical server can support up to 10,000 users (if the number of CPU cores and the amount of RAM are proportionally increased). However, system operation under such load is not recommended. This information is provided only to help you estimate a workload limit when designing your local IT infrastructure.

When planning the server upgrade under moderate workload, the following approach to hardware sizing is optimal:

RAM: +8 GB for each additional 500 users.

CPU: +4 cores for each additional 500 users.

The number of floating license users is estimated by the client or determined by analyzing the company’s operations.

 

*A backup system must be located on a separate server; RAM capacity must match the backup frequency.

** When installed to a cluster, the application’s performance and stability largely depend on the hard drive’s speed. A slow hard drive increases the request latency in the cluster and can cause it to become unstable. Read more about checking a hard drive’s performance in Test the hard drive’s performance article.

Data storage server

The table below lists software and hardware requirements for installing data storing and processing servers of the ELMA365 system.

PostgreSQL

 

Minimum hardware requirements* (for 500 users)

PostgreSQL database server

The server stores main system data: users, app items, settings of workspaces and apps, business processes, pages, widgets, tasks, events, and other configurations.

DBMS: PostgreSQL v10–13.

CPU: x86-x64, 4 or more vCPUs.

Hard drive: 200 GB, write IOPS 2000 or more.

RAM: 8 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for server resources and the number of simultaneously connected users increases:

  • The number of processor cores has to be increased.
  • The amount of RAM has to be increased.
  • The data storage capacity has to be increased.

When planning the server upgrade under moderate workload, the following approach to hardware sizing is optimal:

RAM: +4 GB for each additional 500 users.

CPU: +2 cores for each additional 500 users.

The required increase in disk storage capacity is estimated by the client or determined by analyzing the company’s operations.

 

MongoDB

 

Minimum hardware requirements* (for 500 users)

MongoDB database server

The server stores unstructured system settings and data from live chats and activity streams.

DBMS:  MongoDB v3.6–5.0.

CPU: x86-x64, 4 or more vCPUs; MongoDB 5.0 requires using the AVX instruction set.

Hard drive: 200 GB, write IOPS 2000 or more.

RAM: 8 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for server resources and the number of simultaneously connected users increases:

  • The number of processor cores has to be increased.
  • The amount of RAM has to be increased.
  • The data storage capacity has to be increased.

When planning the server upgrade under moderate workload, the following approach to hardware sizing is optimal:

RAM: +4 GB for each additional 500 users.

CPU: +2 cores for each additional 500 users.

The required increase in disk storage capacity is estimated by the client or determined by analyzing the company’s operations.

 

RabbitMQ

Minimum hardware requirements* (for 500 users)

RabbitMQ event bus server

The server provides task queues among services. It doesn’t store data permanently.

MQ: RabbitMQ v3.9.15 or above.

CPU: x86-x64, 4 or more vCPUs.

Hard drive: 40 GB, write IOPS 2000 or more.

RAM: 8 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for server resources and the number of simultaneously connected users increases:

  • The number of processor cores has to be increased.
  • The amount of RAM has to be increased.

When planning the server upgrade under moderate workload, the following approach to hardware sizing is optimal:

RAM: +4 GB for each additional 500 users.

CPU: +2 cores for each additional 500 users.

The required increase in disk storage capacity is estimated by the client or determined by analyzing the company’s operations.

 

Redis

 

Minimum hardware requirements* (for 500 users)

Redis cache server

The server is used for caching processed information. It doesn’t store data permanently.

Cache: Redis v5.0 or above.

CPU: x86-x64, 2 or more vCPUs.

Hard drive: 40 GB, write IOPS 2000 or more.

RAM: 4 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for server resources and the number of simultaneously connected users increases:

  • The number of processor cores has to be increased.
  • The amount of RAM has to be increased.

When planning the server upgrade under moderate workload, the following approach to hardware sizing is optimal:

RAM: +4 GB for each additional 500 users.

CPU: +2 cores for each additional 500 users.

 

Minio S3

 

Minimum hardware requirements* (for 500 users)

MinIO S3 object storage server

You can use any S3-compatible object storage software. We recommend MinIO S3 as it is easy to install and support.

https://docs.min.io/docs/minio-quickstart-guide.html

S3: Minio S3 v2022.8.8.

CPU: x86-x64, 2 or more vCPUs.

Hard drive: 40 GB, write IOPS 2000 or more.

For proper Minio S3 server operation, you need to set up several servers in the cluster or add several hard drives to the server. You can read more in the official documentation.

RAM: 2 GB or more.

Internet connection: LAN 1 Gbit/sec or faster.

If the demand for file download and file generation  increases:

  • Disk storage space needs to be increased.
  • The system needs to be scaled by adding more servers.

When the number of file download and file generation operations increases on the server, the following approach to hardware sizing is optimal:

RAM: +2 GB for each additional 1,000 users.

CPU: +1 core for each additional 1,000 users.

The required increase in disk storage capacity is estimated by the client or determined by analyzing the company’s operations.

 

*A backup system must be located on a separate server; RAM capacity must match the backup frequency.

Minimum hardware requirements for different number of users

The tables below show ELMA365 On-Premises Enterprise hardware requirements for 500, 1,000, 2,000, 5,000, and 10,000 users. The term User here is used to reference a person or an external automated system that has an account and a permission to work with ELMA365.

The actual parameters may vary depending on the real use scenarios and the application of the system in your company.

500 users

500 users

Service

vCPUs*

RAM, GB

SSD, GB**

ELMA365 server

8

16

100

PostgreSQL server

4

8

100

MongoDB server

4

8

50

RabbitMQ server

4

8

40

Redis server

2

4

50

MinIO S3 server

2

2

100

HAProxy server

2

2

30

Total

26

48

470

1,000 users

1,000 users

Service

vCPUs*

RAM, GB

SSD, GB**

ELMA365 server

12

16

100

PostgreSQL server

6

12

100

MongoDB server

4

8

50

RabbitMQ server

4

8

40

Redis server

2

4

50

MinIO S3 server

2

2

100

HAProxy server

2

2

30

Total

32

52

470

2,000 users

2,000 users

Service

vCPUs*

RAM, GB

SSD, GB**

ELMA365 server

16

24

100

PostgreSQL server

8

16

100

MongoDB server

6

8

50

RabbitMQ server

4

8

40

Redis server

2

8

50

MinIO S3 server

2

4

100

HAProxy server

2

2

30

Total

40

70

470

5,000 users

5,000 users

Service

vCPUs*

RAM, GB

SSD, GB**

ELMA365 server

16

32

100

PostgreSQL server (primary)

4

16

200

PostgreSQL server (subordinate)

4

16

200

PostgreSQL server (subordinate)

4

16

200

MongoDB server (primary)

2

8

100

MongoDB server (subordinate)

2

8

100

MongoDB server (subordinate)

2

8

100

RabbitMQ server

4

8

40

Redis server

2

8

50

MinIO S3 server

2

8

200

HAProxy server

2

2

30

Total

44

130

1,320

10,000 users

10,000 users

Service

vCPUs*

RAM, GB

SSD, GB**

ELMA365 server

32

64

100

PostgreSQL server (primary)

8

32

250

PostgreSQL server (subordinate)

8

32

250

PostgreSQL server (subordinate)

8

32

250

MongoDB server (primary)

2

8

200

MongoDB server (subordinate)

2

8

200

MongoDB server (subordinate)

2

8

200

RabbitMQ server

4

8

40

Redis server

2

8

50

MinIO S3 server

2

8

500

HAProxy server

2

2

30

Total

72

210

2,070

*A vCPU is a hyperthreading core of the physical CPU. For cloud providers, it is a vCPU or vCore.

** The SSD space that needs to be provided directly depends on the needs of your company. It is determined individually for each service in the system depending on the amount of data that is supposed to be stored in them.

To determine the exact system requirements for your configuration or receive information on hardware requirements for 10,000+ users, please contact our sales reps at inbox@elma365.com.

Fault-tolerant server architecture

To build a fault-tolerant architecture and optimize server load balancing, it is possible to deploy multiple servers in a cluster. The application server and the data storage and processing servers are scaled independently. We recommend engaging ELMA experts to identify the need for cluster deployment and to configure the fault-tolerant cluster, as options and combinations of settings may vary depending on your business needs.

ELMA365 cluster

The cluster provides load balancing for applications, as well as replication and scaling of internal services. This allows setting up a fault-tolerant solution that can survive the failure of one server. For seamless servers connectivity, the following ready-made solution is used: https://microk8s.io.

You need to have at least 3 servers to set up the cluster.

PostgreSQL cluster

PostgreSQL cluster is formed by a primary server and replica(s). One server becomes the main one and sends its data to the other servers. You can read more about setting up and operating the cluster in the official documentation: https://www.postgresql.org/docs/10/high-availability.html.

You need at least 2 servers to set up the cluster.

 

MongoDB cluster

Several servers are seamlessly combined into a fault-tolerant cluster providing data replication and redistribution. For more details, see the official documentation: https://docs.mongodb.com/v3.6/reference/glossary/#term-high-availability.

You need at least 3 servers to set up the cluster.

 

RabbitMQ cluster

Several servers combined into a cluster balance message processing and delivery. For more details, see the official documentation: https://www.rabbitmq.com/clustering.html.

You need at least 3 servers to set up the cluster.

 

Redis cluster

Several servers are joined into a primary/replica cluster. One server becomes the main one and sends its data to the other servers. For more details, see the official documentation: https://redis.io/topics/sentinel.

You need at least 3 servers to set up the cluster.

 

MinIO S3 cluster

Several servers are joined into a fault-tolerant cluster providing data replication and redistribution. For more details, see the official documentation: https://docs.min.io/docs/distributed-minio-quickstart-guide.html.

You need at least 2 servers to set up a cluster.

 

Found a typo? Highlight the text, press ctrl + enter and notify us