System Architecture and Requirements / System Requirements for ELMA365 Enterprise edition

System Requirements for ELMA365 Enterprise edition

This article summarizes the minimum requirements for the correct operation of ELMA365 Enterprise On-Premises. The following information does not provide instructions for configuring your company’s server but helps you estimate compatibility with ELMA365. Actual requirements depend on real-life use of the system and vary significantly across different companies.

 

ELMA365 Server

 

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

 

Operating System

Ubuntu Server 20.04 LTS

Components of Operating System

Snapd (included in OS distribution)

Additional Software

Microk8s v 1.20 and above, High Availability support is required

Minimum hardware requirements (for 500 users)*

ELMA365 server

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive:

100 GB (application + OS, RAID 5)

RAM: 16 GB

Internet connection: LAN 1 Gbit/sec or above.

 

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

  • Increase the number of processor cores
  • Increase the amount of RAM
  • Add more servers to the system.

 

One physical server can support up to 10000 users (if the number of CPU cores and the amount of RAM are proportionally increased).

 

However, system operation under such load is not recommended.

 

The information is provided only to help you estimate a workload limit when designing a local IT infrastructure.

 

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

 

RAM: add 8 GB for each additional 500 users

CPU: add 4 cores for each additional 500 users.

 

The number of users is calculated by the client or determined by company operations analysis.

 

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

 

Data Storage server

 

The table below lists software and hardware requirements for the correct ELMA365 data operation.

 

PostgreSQL

 

Minimum hardware requirements (for 500 users)*

PostgreSQL Database Server

The server stores and manages system data: users, app items, workspaces and apps configuration, processes, pages, widgets, tasks, events, and other settings.

 

DBMS: PostgreSQL v.10.14

Operating System: Ubuntu Server 20.04 LTS

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive:

  • 40 GB (OS + PostgreSQL data server, RAID, SSD)
  • 200 GB (for data, RAID 5, SSD)

 

RAM: 8 GB

Internet connection: LAN 1 Gbit/sec or above.

 

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

  • Increase the number of processor cores
  • Increase the amount of RAM
  • Increase the data storage capacity.

 

When planning the server upgrade under moderate workload, the following approach to

hardware sizing is optimal:

 

RAM: add 4 GB for each additional 500 users

CPU: add 2 cores for each additional 500 users

 

A required increase in disk storage is estimated by the client or determined by the company’s operations analysis.

 

MongoDB

 

Minimum hardware requirements (for 500 users)*

MongoDB Database Server

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

 

DBMS:  MongoDB v3.6

Operating System: Ubuntu Server 20.04 LTS

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive:

  • 40 GB (OS + MongoDB data server, RAID, SSD)
  • 200 GB (for data, RAID 5, SSD)

 

RAM: 8 GB

Internet connection: LAN 1 Gbit/sec or above.

 

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

  • Increase the number of processor cores
  • Increase the amount of RAM
  • Increase the data storage capacity.

 

When planning the server upgrade under moderate workload, the following approach to

hardware sizing is optimal:

 

RAM: add 4 GB for each additional 500 users

CPU: add 2 cores for each additional 500 users

 

A required increase in disk storage is estimated by the client or determined by the company’s operations analysis.

 

RabbitMQ

Minimum hardware requirements (for 500 users)*

RabbitMQ server

The server provides task queues between services and doesn’t store data permanently.

 

MQ: RabbitMQ v3.8

Operating System: Ubuntu Server 20.04 LTS

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive:

  • 40 GB (OS + MongoDB data server, RAID, SSD)
  • 200 GB (for data, RAID 5, SSD)

 

RAM: 8 GB

Internet connection: LAN 1 Gbit/sec or above.

 

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

  • Increase the number of processor cores
  • Increase the amount of RAM
  • Increase the data storage capacity.

 

When planning the server upgrade under moderate workload, the following approach to

hardware sizing is optimal:

 

RAM: add 4 GB for each additional 500 users

CPU: add 2 cores for each additional 500 users

 

A required increase in disk storage is estimated by the client or determined by the company’s operations analysis.

 

Redis

 

Minimum hardware requirements (for 500 users)*

Redis cache server

The server provides an in-memory data store, used as a database, cache, and message broker. It doesn’t store data permanently.

 

Cache: Redis v6.0 and above

Operating System: Ubuntu Server 20.04 LTS

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive:

  • 40 GB (OS + Redis cache server, RAID, SSD)
  • RAM: 4 GB
  • Internet connection: LAN 1 Gbit/sec or above.

 

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

  • Increase the number of processor cores
  • Increase the amount of RAM

 

When planning the server upgrade under moderate workload, the following approach to

hardware sizing is optimal:

 

RAM: add 4 GB for each additional 500 users

CPU: add 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 can easily be installed and supported.

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

 

S3: Minio S3 v2019.09.05

Operating System: Ubuntu Server 20.04 LTS

CPU: 2.2 GHz and above, 8 core (Intel Xeon recommended)

Hard drive: 40 GB (OS + Minio object storage server, RAID, SSD)

 

For proper Minio S3 server operation, set up several servers into the cluster or install several hard drives into the server. You can read more in the official documentation: https://docs.min.io/docs/minio-server-limits-per-tenant.html

 

  • RAM: 2 GB
  • Internet connection: LAN 1 Gbit/sec or above.

 

If the demand for file download and generation  increases:

  • Increase the number of processor cores
  • Increase the amount of RAM

 

When the amount of file download and generation operations increases on the server, the following approach to

hardware sizing is optimal:

 

RAM: add 2 GB for each additional 1000 users

CPU: add 1 core for each additional 1000 users

 

A required increase in disk storage is estimated by the client or determined by the company’s operations analysis.

 

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

 

Fault-tolerant server architecture

 

To built a fault-tolerant architecture and optimize 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 evaluate the demand for cluster deployment and to configure the fault-tolerant cluster because available options and configurations may vary.

 

ELMA365 Cluster

 

The cluster provides load balancing for applications, replication, and scaling for internal services. This way, a fault-tolerant solution is achieved 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 several servers combined into a master-replica. One server becomes the master 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

 

A MongoDB cluster is formed by several servers 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

 

A RabbitMQ cluster is formed by several servers joined into a cluster providing the balancing of 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

 

A Redis cluster is formed by several servers joined into a cluster master-replica. One server becomes the master 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

 

A Minio S3 Cluster formed by several servers 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.