Deployment Is Fun by Michael Giuliana on 06/16/14
So, deployment. How does one do this? What is the right way? Well like a lot of other aspects of development, there may not be a right way. Just... ways. There are always stories floating around about how Facebook or Github handles scaling and a bunch of servers, but I'm not Facebook. I need something flexible enough to support variety across many different types of projects, but also has enough bootstrap to let me drive without thinking too much.
Shell scripting on it's own is a really useful tool, and setting up some kind of CI git post-recieve hook would be baller, but in a work environment I'm uninterested in writing out basic functionality, I only really do that at home at night. Other options? Jenkins is beastly. Mina is limited. Chef and it's knife were kind of working, but so verbose! Capistrano is getting warmer. Fabric... now that's what the duck I'm talking about.
I went back and forth for a looong time, and even wrote a bunch of partial apps in an attempt to find the right way to do this deployment thing, hoping I'd stumble across some hidden article on the web that spells it out for me. Nope. Just kind of had to (and very much still have to) poke around and break stuff until I found something that I really enjoy. Spending so long trying to find a solution brings about a strange mixture of reluctance and desperation - I need an answer. But so many answers were wrong... but. But, I need one. Now. I'm impatient. Some tangential insight: I like what Amazon does, and ecommerce is so convenient, but it still lacks the satisfaction of walking out with something in-hand. When Amazon figures out the drone thing though, look out.
Yes, I'm still very new to Fabric, about three days in, but already I've found myself more productive, and more importantly, repeatedly so.