I have been using Django for quite sometime now. Deploying the application on a production server is a lot of effort, right from installing all the required packages, configuring mysql, apache, syncing the application from the repository etc. Doing this the first time may not be irritating but subsequent installations are very frustrating.
Writing a shell script is something many would think of, but that is old! Fabric lets us write a lot of code in python for automating the boring tasks. I got started with it, as and when I installed the packages on my server , I was compiling the script needed for fabric. Once I was done with the setup, even my fabric script was ready! Ran that on a clean machine by changing the ip, worked like a charm. The best part about fabric is you don't have to leave your machine at all, no ssh.. just $fab command from your shell.
I found this awesome video by Jacob Kaplan Moss. He starts off with deploying on a single instance, then using a separate instance for database and finally adds a fail over application server. Its pretty long ( 3 hours ) but contains a lot of useful information. Do watch it.
If you use it once, I am pretty sure. you will never look back 😊