Continuously Integrating the Camel

By Hugh Esco from Atlanta.pm
Date: Monday, 3 June 2013 11:45
Duration: 20 minutes
Target audience: Intermediate
Language: English
Tags: build ci continuous coverage deploy integration jenkins pipeline testing

You can find more information on the speaker's site:


A video of this presentation is accessible here:
http://campaignfoundations.com/blog/hesco/Continuously_Integrating_the_Camel_YAPC_NA_2013

Shortly after returning to work from the Austin event, the revised slide deck updated for this presentation was lost when my home was burglarized and my ancient laptop was stolen off my desk before I had uploaded those slides for public consumption. But an earlier version of the slide deck used when I had an hour to give this presentation at the Perl::Oasis::2013 conference in Orlando Florida was previously published and is linked below.

Original Abstract --

Calling devops a movement in the wake of Occupy Wall Street and Tahir Square probably counts as hyperbole. Still the idea of building closer collaboration between development and operations teams nonetheless holds great promise for accelerating delivery and time to market for innovations in application development, while encouraging those practices which contribute to code stability and minimizing the sleep deprivation and anxiety associated with deployments.

This twenty minute presentation will provide a conceptual overview of Continuous Integration, drawing on my experience integrating with my workflow the use of automated testing (BDD, TDD), git, pinto, puppet and a Jenkins CI server. I use these tools to support a build pipeline which manages the testing and deployment of the perl code base I develop for my business.

A CI build pipeline permits builds to be initiated manually or triggered by committing code to your repository. And if configured and integrated right, we can get reports from our automated test suite, on the test suite's coverage of our code base, while building a database of those results over time, and a repository of tested, deployable artifacts from our passing tests. Jenkins can then be used to choose among those tested options and push them to QA, UAT and production environments.

The experience shared in this talk are derived from work I have done as a part of my after-hours consultantcy. Although by day I work in a shop which since I first started this project is also beginning to move in the direction of doing Continuous Integration if not yet Deployments, (albeit not on the projects I've been assigned to yet). SA after much debate finally agreed to implement puppet rather than chef. One of our latest projects has begun using bamboo. And I heard that there is a Jenkins server used by another of our projects.

Scheduling will only permit a twenty minute overview of the Continuous Integration process at the YAPC::NA conference in Austin Texas. Still, for those wishing to further explore how these important new tools can contribute to their own work-flows and the quality of the code they produce, I will also provide a bibliography of books, links, applications and perl modules to support further research in this area; as well as a slide deck expanded from the one developed for my January 2013 Perl::Oasis presentation on this subject.

Resources:
https://wiki.jenkins-ci.org/display/JENKINS/Perl_Projects

Presentation slides are published here:
http://campaignfoundations.com/blog/hesco/Continuously_Integrating_the_Camel
http://campaignfoundations.com/system/files/Continuously_Integrating_the_Camel.pdf

Attended by: