Researching broadly how we can efficiently move alot of our software to scaleable systems.
Mautic being on the top of the list now
We are running Kubeapps and looking at effectively rebuilding how we manage our mautic stack
Historically its running a single server for mautic functions (PHP) and a scalegrid database instance
What are the actual components of mautic that we can scale?
Keen to understand if anyone has moved the needle in these projects privately
GitHub - FacetInteractive/mautic-k8s: High Availability, scalable configuration of Mautic K8s with Helm Charts (V2 Feb 21)
GitHub - skippednote/ha-mautic-k8s (V4 Dec 22)
Unsure if this one is configured correctly, I see a scaler but unsure what it is scaling and the redis created but I dont see any config against mautic.
Keen to understand the following
- if mautic has a worker for horizontal scaling (or what could be scaled ignoring DB)
- how to config redis on install (yet to find proper documentation on this)
- rabbitmq and queuing on install (again really poor documentation)
Saw a slack channel in mautic but nothing recent and mautic V2 centric, a little but redundant as we move forward with v5
Seen these but the biggest advantage is a different db setup -
MariaDB Galera Cluster
It has been some time since you posted this article.
I myself have tried to find different ways to best scale Mautic. I have gone ahead and setup NFS server with multiple Mautic workers behind a load balancer with trying to keep one instance outside the load balancer for taking care of cronjob, all traffic coming in goes through the load balancer and this helped with large websites we were tracking.
I however never got Redis working or rabbitmq. Was wondering if since this last post of yours you might have some insights to share.
Got it working
Rabbitmq was way too heavy on resources, gone beanstalkd instead - would have cost a bomb
Mysql isnt scaleable as yet but is currently sitting on a 8gb shared scalegrid instance - thats the next project
Get a MariaDB Galera operational or play with Planetscale
working through how to best install plugins on install which isnt fun as marketplace is a half cooked mess in my eyes and everything has been forced to be installed with composer which is a server side install.
Current stack is a click install helm with kubeapps on DigitalOcean k8
- mautic worker
- mautic-redis (Optional local otherwise config elsewhere)
- mautic-mariadb (Optional local otherwise config elsewhere)
- mautic-filebrowser (encrypted ftp web browser)
14 Cronjob services covering all the majors
Still on the todo list:
- S3 media and assets that isnt AWS (ie DigitalOcean S3 Spaces)
- Easy install plugins (Need to understand marketplace more)
- Improved options for database
Should note - we invested a fair bit of $ into this project so it’s a bit commercial what I can share
Security was a concern
Setup a centralised droplet with a dedicated IP address
So all outbound traffic goes through a dedicated 1GB ram droplet relay so we can make sure anything we send comes from a sticky IP address so we can play nice with email delivery whitelisting systems/firewalls in sendgrid and the like.
Was a headache as we had auto scalers changing our IP address on the regular (originally setup for our N8N autoscale instance too)
Also have keycloak setup (not fully integrated as yet but that will harden login further with centralised SSO)
Also have everything on subdomains with a dedicated cloudflare proxy subscription to filter any attacks and bots.
Security I am keen to learn if you have anything to share - Feel we really should be sharing best of practice on security as much as possible so we don’t scare self hosted systems and well protect our cyber security insurance.
A quick question - what is a Mautic worker?