title: pull vs push deployment
body: <p>Apparently there are two strategies used for deployment of web application. Please correct me if I am wrong.</p>
  
  <h2>Pull Deployment</h2>
  
  <p>I have my own build, deploy scripts. I use git as vcs. Deploy script will pull the code from git repository and build script will configure the app.</p>
  
  <p><strong>Pros</strong>   </p>
  
  <ul>
  <li>Easy installation.</li>
  <li>Better scalability (as my ssh key resides in server, it can contact our vcs server). So even our application server grows we don't have to bother.</li>
  </ul>
  
  <h2>cons</h2>
  
  <ul>
  <li>Security issue as ssh key in every application server.</li>
  </ul>
  
  <h2>Push Deployment</h2>
  
  <p>I had used this method with my old project, where I used rsync to push the code. I push a copy from the local machine, but still we had used vcs.</p>
  
  <p><strong>Pros</strong></p>
  
  <ul>
  <li>Full control, flexibility as I don't have to push the code to vcs.</li>
  </ul>
  
  <p><strong>cons</strong></p>
  
  <ul>
  <li>Not better scalability.</li>
  </ul>
  
  <p>I have checked some tools, which offering both strategies. (<a href="http://capifony.org/" rel="nofollow">http://capifony.org/</a>)</p>
  
  <h2>Questions</h2>
  
  <ul>
  <li>How do you guys handle this for a large scale project? (built with php). </li>
  <li>Is there any better strategy? </li>
  <li>Which is better in between these two?</li>
  <li>What if there are many application servers under load balancer? will push make sense here?</li>
  </ul>
  
  <p>Thanks in advance.</p>