Pedro Assunção

Fabric for remote deployment

I recently came across a piece of software called “Fabric”. It has been made in python and its purpose is to help simplifying the process of deploying software to remote machines.

The really cool thing I like about it is that it’s much faster than, say, an ant script because it actually reuses the SSH connections it opens. This means that, if you copy a file to a remote host (using the ‘put’ operation), do some local copying, and after that perform a remote command (like starting a server, for instance), this latter operation will not need to open another SSH connection to run the command.

I managed to cut by a factor of 5 the deployment speed of some java services running on jboss just by replacing ant’s sshexec by fabric’s ‘put’ method and its siblings :)

But there’s a lot more to it: It allows you to configure multiple target environments and hosts (think about deployment to multiple nodes of equal functionality), perform remote commands with ‘sudo’ and, since the configuration file is basically a python script, you can use all the pythonic sugar of your liking :D

More information about Fabric can be found here. You can get the latest (stable) version in their github page, and here is a reference of the available operations.

UPDATE: I didn’t notice, but someone posted an article on YCombinator news about exactly the same subject before I did. I really should read the list before posting :)

Related:

  1. Java Web Start (jnlp) simple example One of my current projects requires me to deliver a...
  2. JIRA issues reporting with Python I recently took interest in knowing how one of the...


Categorised as: computers, software development, tips


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>