Cloud

Poll: How are your Web apps deployed?

Do you deploy your Web apps by hand or via automated tools or hand-built scripts/tools? Or, does an app server handle the deployment? Let us know by taking this poll.

Web apps are nice for users since they don't have to deal with deployment pains, but the developers still have to worry about it. Most developers I know are still manually deploying apps to servers by hand. Others are using the built-in deployment tools in Visual Studio 2010 or third-party deployment tools. Some folks write their own deployment systems. And other developers have application servers with built-in deployment capabilities.

J.Ja

About

Justin James is the Lead Architect for Conigent.

9 comments
josegm29
josegm29

It seems to me that using svn or git to update code (or revert back if necessary) would be a very good solution for deployment. Other than having to install svn/git on the production box why don't we see this more often? If you don't want code from the production server being committed to the repo, can you use an account that restricts commits to the shared repo?

Spitfire_Sysop
Spitfire_Sysop

I have an idea for your OSS solution: Make an add-on for FileZilla! It's a great, free, cross-platform FTP client. All you really need for deployment. The only thing it is missing is some awareness of contents. Change management. It needs a log with date/time transactions so you can see when you last published what. It also needs some way of comparing the contents of two sets of data and giving you a synopsis of differences. Like "These 4 files have changed more recently than the published version, this file is missing, etc..." Seems like a simple solution to me. http://filezilla-project.org/

mattohare
mattohare

I'm happy to plug in something already written, when I can. The problem comes when it takes more effort to install all the support application required to use these ready-made solutions. My guess is that I'll end up with a hybrid, or I'll be at the head of a new open-source deployment solution.

Justin James
Justin James

* When your data is in an SCM controlled repository, it tends to be read only until it gets checked out, which could interfere with many apps. * SCM's tend to litter the file system with special files. * You may not want to sync everything (like a web.config file) which *would* be in a repository for dev, but replacing it on Live would be a problem, and trying to manually remember that each deployment is a headache. * There may be post-deployment tasks that you need to do. None of these are insurmountable issues. I know that some people *do* use SCM for deployments, but it does not seem to be a widespread thing, at least not in the circles that I run in. J.Ja

mattohare
mattohare

That was a problem I had with FZ and Subversion. It was trying to push over all the .svn stuff. Bugged the heck out of me. (I was more bothered by Subversion for using that way of doing things.)

Alpha_Dog
Alpha_Dog

In most cases, That's pretty much what we do, though we will sometimes use a hand built script or update app. Filezilla is the most elegant and trouble free solution we have found with the exception of one which is integrated with a CVS and SCM such as Redmine or Trac.

mattohare
mattohare

I'd not be surprised to see these version control platforms add a web app rollout mechanism. They need only add a few things for developers to highlight some minor changes.

mikerosile
mikerosile

My last two jobs, and current job included, I've used SCM tools for deployment. My last two jobs we used Subversion, which has an "export" option that eliminates the concerns of files required to be checked out and littering the file system as .svn folders are not exported. From the SVN manual, "svn export -- Export a clean directory tree" In my current job, I do a lot of web development and use git for my SCM. Git only uses one .git folder at the root directory of a project. Git also has an export option and an ignore option so you're not exporting unnecessary files such as "web.config". AS for post-deployment tasks, I tend to write scripts (batch, powershell, python, etc.) to facilitate the deployment (exporting from SCM) and run any post-deployment tasks. I think using SCM for deployments makes a lot of sense, and honestly I'm surprised more people don't take advantage of it.