views:

77

answers:

7

What do you use to automatically deploy applications for various kinds of server applications (web, socket, daemon) that uses various technologies (different DBs, languages, etc)?

Here we use Python, Java and Ruby, and may use other languages as well in the future.

A: 

You could use Ant, Makefile, or a batch script. Or a combination of them.

klausbyskov
A: 

We use Maven and pull out to the ant-plugin when required. In turn the ant-plugin very occasionally calls out to some native scripting language/application/packager/whatever but we're finding that over time we can generally find a Maven or ANT plugin/task to do the trick.

You might want to look up Continuous Deployment, it's a pretty hot topic in the build and CI space right now.

karianna
+1  A: 

I use Puppet for some of the deployements / initial configuration of server. Maven and Ant for Java based projects.

Guillaume
A: 

For Python you could use Fabric or Paver For Ruby, there's capistrano and 'vlad the deployer' For Java, it's the Ant.

For PHP/Python projects I also use Peritor Webistrano, a neat frontend for capistrano. It involves changing a few of the default recipes to remove the rails-specific stuff, but it's worth it once you get it setup correctly.

Marlin Forbes
A: 

I think the best choice you could do is using maven. Even if maven is mostly used for Java projects, you can with the right plugins (or the one you write) deploy anything anywhere.

Colin Hebert
A: 

you can use maven, ant, ivy along with hudson for java projects.

virgium03
A: 

We use Ant or Maven for different projects we have in house (depending on the need and how old the project is too...). We tend to use Hudson as our build and deployment tool.

And then we encourage developers to write code that does not hard code to DB's, URL's, etc. We try to abstract via the container (ie, Data Sources, pure JMS API's, etc) when running within an app server. And we tend to abstract environment specifics via properties files that we look up at runtime. The path to the properties file is to be defined as a variable on the server. This way we can be flexible enough to build code once and move it through to all our environments.

Chris Aldrich