12
votes

Similar to building software, tools should be used to deploy production server updates (whether DB, website, router configurations, etc). The use of tools reduces certain types of human error (missed steps for example).

  • What tools are available for software/configuration/etc deployment (whether free or commercial)?

Please

  • List a single tool per post
  • What part of the deployment process it performs
  • Particular advantages or disadvantages to using this tool (ie, .NET only, supports all LAMP/WAMP platforms, etc)

Don't add a tool that already exists - add comments if you have something particular to say about a given answer.

-Adam

1
  • This question has been closed as it is technically a "Shopping question", however much of the information it provides is still valid, and it is an excellent starting point for researching deployment and configuration management tools.
    – voretaq7
    Aug 14, 2012 at 1:11

11 Answers 11

10
votes

Puppet is a more recently-written tool, written in Ruby, that is gaining ground against cfengine.

2
  • 1
    This 'answer' doesn't answer the question as the questioner requested.
    – jtimberman
    Jun 4, 2009 at 6:56
  • We're quite happy with our use of Puppet - it has allowed us to perform the entire image-to-running system process that most require from automation/deployment tools, including migrating our previously manual and custom deployment methods. Cannot recommend it enough. Downside is that is does not (yet) handle windows boxes, but all *nix variants are covered well. Jul 3, 2009 at 16:10
4
votes

cfengine is the canonical example in the unix world.

1
  • 2
    It is also part of HP's Distributed Systems Administration Utilities (DSAU) and comes preconfigured for basic HP-UX use.
    – Mei
    Jul 8, 2009 at 21:48
4
votes

I really like cfengine 3

It can basically take care of every part of the deployment process, given the right configuration: copy files from a location, automatically use packaging system (like apt, yum) to install/update package, start/stop services, check for files/pages content.

I use it to install (or check existence of) packages, and since I'm more a Java guy, when In eed to deploy something, I download the archive from a central point, stop the Tomcat service, copy the archive in the Tomcat directory, start the service, and check that the right value can be found on a specific served page. Yes, cfengine does it all nearly by itself.

Advantages :

  • It works (that's an important feature).
  • Exists on both Linux/Unix and Windows (native)
  • Small resources usage

Disadvantages :

  • A bit difficult to use at first, the examples are a bit too complete, but tutorials are popping up all around
3
votes

Even though it's a developer's tool mainly, Capistrano is a good choice too.

I'm not sure how well it's supported for Windows platforms other than it appears to work. Linux/OSX are fully supported.

You can use it to perform pretty much any operation on your deployment servers, from file updates to database backups, and user management.

Paired with a git repository, you get change management and quick and easy deployments.

2
votes

Tool: Chef is a new-ish tool released in January by Opscode. It is written in Ruby and its configuration language is a pure Ruby DSL. It's a young tool under active development, but it's getting used in production by several companies.

Chef can manage your entire infrastructure, from setting up PXE boot and kickstart services, to deploying applications and managing users. It is very flexible, extensible and powerful.

Specific advantages are the pure Ruby DSL, a RESTful API, searchable node data, and a wealth of cookbooks ready to use. Because of the Ruby DSL, complex data structures and logic can be used within recipes, and along with the RESTful API, make Chef a powerful tool to program an infrastructure.

2
votes

Were playing around with Fabric at the moment, it's pretty bare but along the lines of Capistrano using python.

1
vote

We use Setup Factory

1
vote

For MS SQL Server migrations, sp_help_revlogin is invaluable for migrating users in order to carry users / SIDs / pwds over to the new box.

1
vote

For windows: SCCM

1
vote

We use the Shavlik suite of tools to handle patches, configuration, and auditing.

I can't think of any particular pros or cons - it works fairly well and we haven't had any real issues with it that I can recall. (That's about the best thing I can say about it - it works well enough that I don't have to think about it :)

1
vote

I would like to give a big +1 to both Capistrano and Chef. Both are very good at writing specific deployment and management tasks over ssh. Puppet is interesting also, but the old adage usually holds true "Jack of all trades, master of none". Your best bet would be to find the most minimal tool for the jobs you wish to accomplish and run with it.

Not the answer you're looking for? Browse other questions tagged .