To release my centralized webapp, I COULD have a vhost pointed to some directory and then just do a ‘git pull’ when I want to release, updating the files. But Rails has a different deployment mechanism: it copies files to a subdirectory and then points a symlink (‘current’) to that new subdirectory.
I understand that it probably more acceptable to do a Rails-like deployment because the release is built in some directory, and then the symlink is pointed to that directory, so this is much faster, and it’s less likely that users would experience weird issues while a release is happening.
Are there any other advantages to the Rails approach? Or, is a ‘git pull’ approach actually more widely accepted?
I’ll replace “the Rails approach” in your question with “the Capistrano approach.” There are a ton of advantages to using Capistrano. You can deploy from any machine over SSH. You can
cap:rollbackto instantly undo a deploy should you find a mistake. You can run pending migrations on the production database before the deploy happens. You can instantly deploy to several machines if you have different machines in different roles. Once you have it installed, docap -Tto see all of your options.