I'm having a small amount of trouble pinning down exactly how I want to architect my Docker Swarm cluster. Currently it consists of:
1 MariaDB which will need to have persistent storage suitable for a database.
2 x MediaWiki servers which will need to have persistent storage suitable for storing images, videos and other media files.
Some kind of ingress that will map a domain name to each of the MediaWiki servers based on domain name.
I could do with some feedback on possible ways of architecting this. Ideally I'd like all three servers to contain instances of the MediaWiki application or perhaps 2 servers and 1 dedicated host server for the database. One MediaWiki application receives around 20x the traffic of the other so would benefit running over multiple machines.
The trouble I'm having is trying to persist data between deployments. I'm currently considering something like CephFS with block storage mounted into one master host and two slave instances replicating from that.
I also have not explored the ingress component yet but I'm assuming I can configure some kind of Nginx server, ideally with Lets Encrypt enabled, that will proxy traffic to either of the MediaWiki hostnames depending on the incoming domain name, however this may be a naive assumption.