What is the best way to release your web application?
I’ve run into this issue time and time again.
I have a completed Web Application and It’s time to release it.
The first method I’ve used is just straight using FTP.
The problem I run into with this, is sometimes I’ll end up working on the live server and then moving the files back and forth, and the same I’ll work on the local copy etc.
The second method I’ve used and currently use is SVN.
I make a SVN repo and check the source out in 2 main places.
1. My development machine (where I’ll be developing and making changes etc)
2. My live server, what people actually see.’
The good thing about this is that when I want to release a new version of my site all I have to do is type, ‘svn up’ on my live server and it’s updated and with blazing speed.
But is this the best way of releasing web applications?
I’ve googled around but no one ever really talks about releasing your apps, only developing them.
Observing members:
0
Composing members:
0
2 Answers
If you’re using Subversion’s update command, then .svn meta folders are available on your live site unless you’re using a mod_rewrite rule or something of the like to block access to them. If not, there’s nothing particularly wrong with your approach, but there are ways to create automated rollbacks and deployment. Capistrano is written in Ruby with Rails apps in mind, but you can deploy any kind of web app with it. Where I work I custom wrote a Ruby script to checkout the latest development version from the repository, put it in a timestamp’d directory, and then symlink it to “current” on the web the staging environment, etc.
There are a number of deployment systems. In the Rails world there is Capistrano for automation and Passenger/mod_rails for packaging. Many projects use Ant for building and deploying the project. There are numerous tools you can find on the web for deploying your web apps.
I mostly run an application locally to test it. It happens far less often that a big feature is ‘done’, so I can afford to use FTP to upload it in those case.
Actually, I use phing to generate a build for me. This automatically sets up config files so no traces of my local development are left in there, which I can then upload. I’m not sure, but I would expect Phing to also be able to run an FTP command to upload the stuff to your website. That way, all you need to do is run a prepared command after you finished the changes you wanted to make.
Answer this question
This question is in the General Section. Responses must be helpful and on-topic.