Hacker News new | ask | show | jobs
by tvon 6189 days ago
If you're distributing software to end users a packaging system is probably the way to go, but if you're looking to deploy code from development environments to staging and production servers then something like Fabric or Capistrano is the way to go.
1 comments

Why? With the host packaging system I get versioned packages, through host management tools I can control which packages my production, staging, and development hosts should have, and I can describe my dependencies on host libraries and software through the host system's own tools.

Together with distribution systems like apt I can also significantly ease deployment.

I can see that executing some commands over a set of hosts at the same time could be useful, but doesn't sound like a killer feature for me.

As for deploying from staging to production servers, it sounds more tidy to build proper packages to deploy in staging and test before deploying the same packages to production.

I can see that executing some commands over a set of hosts at the same time could be useful

for h in $hosts; do ssh $h "my command"; done

As for deploying from staging to production servers, it sounds more tidy to build proper packages to deploy in staging and test before deploying the same packages to production.

Amen.

dsh is worth looking at. It's essentially a for loop that runs ssh, but it can also get named groups of machines from config files, run them in parallel, and prefix output lines with the machine they came from.