Recommended Deployment
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.
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.
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.
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. Disclaimer: We do not recommend clustering with OrientDB.
Identity & Access Management
We have successfully deployed Keycloak in many customer projects and recommend using it if your application requires such functionality.
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.