I am looking for options and solution for my company project where we can host our websites on multiple servers and we can use load balancing. The major issue is that when I update websites, I need to restart server. Our web projects are written in Djanog/Python and it requires uWSGI restart everytime I push updates. Currently we are running our websites on single servers and it is hard to update/restart while clients are using the application. I have been looking for solution on the internet and I found a good article on DigitalOcean's website. You can read more about it here.
We are also looking to separate our database from running on same application server and use on specific machine and also master-slave setup for replication. So my question is that for instance, our site example.com is running on web servers/ip 101 and 102. These both sites are connected to database ip 201. So now, when I push update on server 101 and restart the application, I want 102 to handle all the requests without throwing any error or anything. After 101 is updated, I want it to kick back in and handle all requests while I update server 102. I will also have same setup for database so 201 and 202 as masters and one is updating, the other one kicks in.
Our current servers are running Ubuntu and Nginx with MySQL serving Django application. I may not be familiar with industrial terms so I am explaining the question/problem. I am not talking about companies like Google, Microsoft or Facebook as I know they have their custom solutions for this kinda problem but can anyone guide me to look for what by terms or any explanation, article, post or tutorial that I can read to handle this solution?
Thanks