Four Kitchens
Insights

Simple DevOps using Jenkins – presentation at DrupalCamp Asheville

4 Min. ReadEvents

I had a really great time attending Drupal Camp Asheville and giving presentations there, a my “Debugging Techniques for Drupal and LAMP” (I have presented versions of that before, most recently at DrupalCamp Colorado) and a new presentation, “Simple DevOps Using Jenkins.”

“Simple DevOps” is oriented towards smaller teams and independent freelancers; the goal is to demonstrate that the benefits of continuous integration and other automation need not be limited to larger teams that can afford more overhead. Freelancers and small operations may be cautious about the “DevOps” and “continuous integration” buzzwords because they perceive them as bureaucracy that interferes with writing code fast and making websites quickly. I would like to convince people that a minimal setup does not interfere with their workflow, but instead makes it faster and more efficient, and professionalizes your service at the same time.

I cover the basic goals in a few slides, and then I installed Jenkins and walked through setting it up live, on my laptop. We then walked through various Jenkins jobs used internally at Four Kitchens to run Drupal cron, do backups, and promote code to staging and production servers. There was great audience participation, with good questions and several people volunteering there own experiences with Jenkins. Here is a zip file of those jobs – it is has the config.xml’s of the jobs in it, and I’ve scrubbed all passwords and other information out of it, and it also has a few text files of notes. It may be useful to someone setting up their own simple Jenkins. The main take-away from looking at those jobs should be that they are simple, 2 to 4 lines of shell commands is at the heart of each one.

The Asheville Drupal Camp was very impressive – it was smaller than some camps, with only about 80 attendees, but the quality of the presentations, Q & A sessions, and hallway conversations was great. For a smaller community, Asheville has a lot of high-quality Drupal expertise. Examples of great presentations by Asheville people include Zach Seifts’ talk on using Aegir to manage lots of sites for Appalachian State University, and Matt Davis‘s talk on migrating large sets of data with batch processing. Matt’s talk was essentially a code review, he put up custom migration code he had written, and walked the audience through it – well done and pretty technical, and a lot of good input from the audience. It can be intimidating to just throw your code open to the review of an audience like that, but I think Drupal Camps would benefit from more code oriented presentations.

The keynote by Addison Berry was great, as her talks always are, and there was awesome talk by James Sansbury (you know them as q0rban and add1sun on IRC – both are Lullabots from out of town) on the Drupal 7 Database API. The final panel session on Drupal 7 was also awesome, with a lot of discussion on migration problems, what problems might still best be solved by D6, and other issues.

There was great post-camp conversation and awesome beer afterwards at The Wedge brewery. Asheville seems to be a pretty good town for beer connoisseurs, and the brews at Wedge were awesome. I returned there after hiking the next day to try to sample all of them.

The next two days I drove on the Blue Ridge Parkway and hiked in Pisgah forest. I saw the waterfalls at Graveyard Fields:

I picked a spot on the Parkway and walked off onto an old logging road, not too crowded – I saw a person every 20 minutes or so. There was what must have been cabin of people kicked out when they made the National Forest, or an old logger’s bunker, with a pipe cemented into a spring leading water into a now-broken cistern, old stairs and bits of iron laying about:

I cut off the traveled trail up an even older logging trail cut into the mountain, basically a flatter place with smaller trees in it. I walked up in silence and seeing no one for a couple of miles, until I got to bigger tree trunks that must have been an older growth forest. The road eventually ended in a mound of dirt, with a few ancient steel pop-top beer cans on the top, perhaps the bulldozer operator’s celebration. I walked a bit further and saw old stumps 5 or 6 feet in diameter. In the undergrowth I saw a suspicious large mass, and took a picture:

and the internet confirmed it.

It was a great experience, and I will definitely be back at Asheville Drupal Camp next year.