Deploy challenges in real life – Plone deployment

Deploy challenges in real life

Deploy challenges in real life#

This is a small chapter to give a bit more background on the 'why show the end result' in this training with 2 repos and deviate from the deployment training at https://2025.training.plone.org. It should also help the reader to maybe go to that training instead.

The 2025 training is still better suited to show a clean 'lab setup' for your first deployment to a containerised hosting setup. We could update the training to offer a separate 'get your own VM' instead of using a trainer provided tangrama.com.br setup. One of the realities of mid 2026 is that a VM with 8 GB RAM costs more than 40 euro/month, compared to 7 euro/month in 2025.

A first source of extra challenges comes from going to a multi-node swarm cluster, where the backend/frontend runs on separate worker nodes, and we should place the postgresql container on a fixed 'storage' node. These are essential multi-node containerisation skills to teach.

A second source of complexity comes from deploying more than one project to a cluster. The dynamic Traefik configuration using labels that get picked up when a service deploys, provides endless sources of collision fun, when you forget to point your frontend's RAZZLE_INTERNAL_API_PATH at stackname_backend instead of backend. This is also valid for the Traefik label namespaces where all routes, middlewares and services need to be unique in the cluster. We accomplish this through a STACK_PREFIX in a fully parameterised Docker Swarm stack template.

Then GitLab has its own deviations from easier or more common GitHub configurations. This version of the training has been tested a few times now. Letting students stumble over these challenges during the training, rather than later when they try to extend the setup, is very valuable.