Recommended Deployment

Table of Contents

Gentics Content Management Platform consists of several components that each have several deployment options. This section gives an overview of typical setups as a starting point for your deployment. You will also find recommendations by our team.

Typical deployments

Small deployments

The small deployment consists of a single instance of each of these components: Gentics CMS, Gentics Mesh, Gentics Portal, MariaDB, Elasticsearch and Keycloak. This setup offers all the recommended feature set, while not offering high availability.

cmp deployment small

Medium deployments

 

The medium deployment improves on the small deployment by adding a master-slave setup for MariaDB, running Gentics Mesh as a 3-node cluster plus one node for non-disruptive backup, and two instances of Gentics Portal. Furthermore, Elasticsearch and Keycloak are recommended to be run in clustered mode.

cmp deployment medium
 

Large deployments

For large deployments, where downtimes are to be avoided at all cost, we recommend to also run Gentics CMS in clustered mode, and add additional nodes to Gentics Portal, MariaDB, Elasticsearch and Keycloak. 

cmp deployment large


Choosing the right deployment

If you need high availability in the backend, choose “large”.

If you need high availability in the frontend, choose “medium”.

Only choose “small” when website downtimes in certain deployment or upgrade scenarios are acceptable.

Sizing your deployment

The following table contains the recommended number of CPU cores and memory you should plan for each deployment. The values are required per instance — so don’t forget to multiply with the number of instances you plan to run concurrently.


Small Medium Large
Component CPU RAM CPU RAM CPU RAM
Search 1 core 1024 MB 1 core 1536 MB 2 cores 2048 MB
CMS Database 1 core 512 MB 2 cores 1024 MB 1 core 1024 MB
Gentics CMS 2 cores 4096 MB 4 cores 8192 MB 4 cores 8192 MB
Gentics Mesh 1 core 512 MB 1 core 768 MB 2 cores 1536 MB
IAM 0.5 cores 512 MB 0.5 cores 512 MB 0.5 cores 512 MB
Gentics Portal | java 0.5 cores 256 MB 1 core 384 MB 1.5 cores 512 MB
Gentics Portal | php 1 core 512 MB 1 core 1024 MB 1.5 cores 1536 MB
Load balancer  —   —  0.5 cores 128 MB 0.5 cores 128 MB

Our Recommendations

Gentics Content Management Platform is a versatile software suite with many features and many deployment options — but not all deployments are created equally. While some are blessed to enjoy a happy live, others are condemned to lead a miserable existence. This section will help you make the best decisions, based on the experience of over one thousand projects accompanied by Gentics over the course of 20 years. It is opinionated and may hurt your feelings.

Production Servers

We recommend using Kubernetes to manage all your applications, keep them in a healthy state, and allow for rolling updates and maximum availability.

If the complexity brought in by Kubernetes exceeds your acceptable level of infrastructure fanciness, the second best choice is to spawn the docker containers manually in virtual machines, and take care of error recovery, logging, load balancing, etc. manually. In such a setup, it is usually a good idea to give your Elasticsearch instances separate virtual machines, as Elasticsearch is not a good neighbor.

Storage

For maximum stability and performance, databases require a storage backend that supports direct I/O and reliable locking. Therefore, make sure that the database files of Gentics Mesh, MariaDB and Elasticsearch can access their storage via SCSI, iSCSI, Fibre Channel, FCoE, or equivalent. Local disks are fine as well, if that’s an option. Don’t use a remote or clustered file system, like NFS or GlusterFS. Don’t use a fancy file system like ZFS, unless you know what you are doing.

However, shared filesystems like NFS are fine for using as a shared storage for binary uploads, logs, backups, etc.

Clustering

While most components support clustering, this always comes with an additional, sometimes hidden cost of added complexity. Make sure you have assessed your availability requirements and downtime costs before deciding which components to cluster.

Identity & Access Management

We have successfully deployed Keycloak in many customer projects and recommend using it if your application requires such functionality.

Workflows

Gentics CMS supports Activiti for complex workflow modelling and execution. Please only add Activiti to your setup if your workflow requirements justify adding the complex software.

Add-ons

Gentics Content Management Platform comes with many optional components, like plugins, language tools, file-upload manipulators, etc. These add-ons are not covered in this recommendations.

Network layout

Place the backend components (Gentics CMS with its database(s)) and the frontend components (Gentics Mesh, Gentics Portal, Elasticsearch) in separate network segments, separated by a firewall.

Windows

Don’t use Windows servers in production for Gentics Content Management Platform.

Development Environment

For development, use a docker-compose stack. This stack can be used on either Linux, MacOS or Windows. Please make sure that the machine is equipped with sufficient memory — especially on the latter platforms.

Further Reading