At the moment production has all 4 components (web, indexing, database and search) on the same server instance. As it grows it is going to need to scale these out. First would be to have multiple indexing servers and web servers. I've tested running multiple indexing server running concurrently and it is fine, and I've put a reverse proxy in to do the SSL termination so that should make it easier to add multiple web/app servers.
However, at the moment, all the servers are started via a docker-compose file, which is the same as dev except that it copies in the web and indexer code. If splitting over multiple servers, probably going to need some container orchestration, like Docker Swarm or Kubernetes. It would be nice to try and keep the dev setup as close to prod as possible though, ideally without making dev setup prohibitively complicated.
At the moment production has all 4 components (web, indexing, database and search) on the same server instance. As it grows it is going to need to scale these out. First would be to have multiple indexing servers and web servers. I've tested running multiple indexing server running concurrently and it is fine, and I've put a reverse proxy in to do the SSL termination so that should make it easier to add multiple web/app servers.
However, at the moment, all the servers are started via a docker-compose file, which is the same as dev except that it copies in the web and indexer code. If splitting over multiple servers, probably going to need some container orchestration, like Docker Swarm or Kubernetes. It would be nice to try and keep the dev setup as close to prod as possible though, ideally without making dev setup prohibitively complicated.