Server requirements - kwantu/platformconfiguration GitHub Wiki
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