Server requirements - kwantu/platformconfiguration GitHub Wiki

back to main

This article discusses the server requirements for hosting the Kwantu platform. The platform is split into an application server and one or more database servers.

Application server

The application server manages the the application the transaction management. It accesses the data capture servers as required. We recommend Linux 24GB, 8 cores (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
Redis database server for the transaction manager This is a critical performance tool. If there are load issue, we may need to segment it into a number of severs.
Exist-db 3.0 This will run some basic server based operations
Node.js To run the application
Nginx Reverse proxy server
HaProxy Load balancer
Strapi CMS manager for the portal

Database server (s)

The database servers holds a database per community. This means that we can easily separate different communities onto different servers, or we can cluster the servers and add a load-balancer in front. The optimal scenario will depend on your context. We recommend three servers running in a cluster with Linux 24GB, 8 cores (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
CouchDB server version 3.3.1 This is a critical performance tool. If there are load issue, we may need to segment it into a number of severs.
Java For use by the Lucene indexer
Clouseau indexer

Reports server (s)

The report servers holds an elasticsearch database for fast search and dashboards. And an exist-db instance, with a linked in jasperReports engine to perform etl and report generation. (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
ElasticSearch version 7x If the reporting load is too big, this could be clustered
Java For use by the etl and reporting engines
Kibana version 7.x user interface to the elasticsearch engine

Minimum requirements

The minimum recommended requirements are:

CPU - 3.2GHz Quad-Core Xeon RAM - 24 GB DDR3 1333MHz Hard Drives - 2x 1 TB Enterprise RAID Level - RAID 1 Linux Centos

Example specifications

Incorporate use case config examples as per https://confluence.atlassian.com/doc/server-hardware-requirements-guide-30736403.html

Software stack

The Kwantu platform is based on the following stack.

Product type Product Version License
Web server nginx 1.10.2 2-clause BSD
Database Couch DB 2.3.0 Apache License 2.0
Database Exist-db 2.2 GNU LGPL v2.1
JavaScript Node.js 9.4.0 MIT license
Jasper reports Ireport 6.3.0 GPLv3
Redis 3.2.12 Three clause BSD license
MySQL Community Edition 6.3.0 [GPL License]
Oracle Java OpenJDK 1.8.0_181-b13 GPLv2
Apache Lucene 7.6.0 Apache License 2.0
Git 1.7.1

Notes

Reference https://hackernoon.com/running-a-couchdb-2-0-cluster-in-production-on-aws-with-docker-50f745d4bdbc