Scale out Frappe/ERPNext

I have successfully deployed a copy of Frappe/ERPNext over a week now. It is working great, and I would like to add a 2nd machine as a scale out, or in case the 1st machine fails.

My DB is already in a different server, and files are saved in S3. I test copied the frappe files to new machine, after installing all dependencies except running ‘bench new-site xxxx’, as this will create another database.

The full file copy, as expected, did not work. Guess it is because of Python virtual machine dependency, or anything else.

I try to avoid installing by Docker, because I constantly need to customize at file level.

Is there any guide for my case? I thought it is almost the same as migrating Frappe installation from one server to another. Once done, I will have my proxy server to load balance between two servers.

Hi @keihkhl:

Explore database replication … it will solve many things related to data integrity. Here, you’ll find amazing stuff.

Anyway, Frappe and ERPNext depends on other pieces like webserver, redis, etc … so docker, kubernetes, etc … will be needed to medium-big infraestructure.

Hope this helps.

Thx for the info.
In fact, I made it working. After the initial set up, copied entire folder, and ran bench rebuild together with supvervisorctl and bench production. Guess I have to do like this everytime I add new apps, but that’s the same for Docker as well.

Build the image once, deploy it over multiple nodes.
It’s not same.

I’ve used this helm/erpnext/README.md at main · frappe/helm · GitHub for enterprise which does ~200 builds/releases a day throughout environments, sites and apps. The setup also auto scales as per API or worker usage.

1 Like

I agree. I was just thinking about two server case. With more than 2 servers, no doubt that I will also rely on docker.