title: How to update application server with no downtime
body: <p>Background info: I am a running a Play Framework based application on two nodes, which are behind single nginx based load balancer. Software update is automated on the top of Jenkins. Application is running on the top of Supervisord process manager.</p>
  
  <p>Question: What is the correct way of updating software to nodes so that service is up and running during software update?</p>
  
  <p>Solution 1: disable port 80 from the node, where software will be updated and open it when node is ready to serve. Load balancer should automatically forward request to another node.</p>
  
  <p>Solution 2: disable node from the load balancer during software update. I don't personally like this solution. Doing changes to load balancer configurations sounds too risky. Also you must restart nginx to have changes in use.</p>
  
  <p>Would you propose some other approach?</p>