Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Managing Developer workflows with Jenkins

btmash
November 16, 2014

Managing Developer workflows with Jenkins

The slides are about Jenkins, a continuous integration tool that is very useful for testing your software and also for deploying it / managing it. I'll talk about using Jenkins with Capistrano where we use pre-existing deployment management software to tie Jenkins and our application together. I want to emphasize that since Jenkins is very much a frontend, the Capistrano portion of it can really be replaced with anything else you want (Chef, Puppet, Scripts, etc).

btmash

November 16, 2014
Tweet

More Decks by btmash

Other Decks in Technology

Transcript

  1. Continuous Integration / Deployment with Jenkins Agenda • About us

    • What is: • Continuous Integration? • Continuous Delivery/Deployment? • About Jenkins • Why Jenkins? • Demo
  2. Continuous Integration / Deployment with Jenkins About us • Cherry

    Hill • Drupal since 2005 • http://chillco.com • https://twitter.com/thecherryhillco
  3. Continuous Integration / Deployment with Jenkins • Practice of merging

    all developer working copies with a shared mainline several times a day • Prevent feature integration/fix problems • Automated testing
  4. Continuous Integration / Deployment with Jenkins • Everything involved in

    Continuous Integration • Make sure the software checked in on the mainline is always in a state that can be deployed to users • Makes the actual deployment process rapid
  5. Continuous Integration / Deployment with Jenkins Jenkins • Continuous Integration

    software • Test code / functionality changes to software • Gradually evolved to also managed deployments 
 (Continuous Delivery / Deployment) • Front-end to manage your software delivery workflow • Many plugins (VCS, Testing, Notifications, Views)
  6. Continuous Integration / Deployment with Jenkins Why not Jenkins •

    Already using a 3rd party solution • Platform.sh, Heroku, Google App Engine, etc • Already using Chef / Puppet for deployment • Does not involve “just” Jenkins • Capistrano (Ruby), Fabric (Python), etc • “Heavy” (Java)
  7. Continuous Integration / Deployment with Jenkins Why Jenkins? • Create

    test builds • Run tests Easily • Script the production build process • Easy deploy • Automated • “Push the button!”
  8. Continuous Integration / Deployment with Jenkins Who is Jenkins for?

    • Systems Admin • Host on your own infrastructure • Possibly dealing with various kinds of projects (Drupal, Wordpress, Rails, etc) • Tired of emails/chat asking to update the dev / production sites
  9. Continuous Integration / Deployment with Jenkins Who is Jenkins for?

    • Everyone else • PM (approve test site and build) • Non sys-admins (automatically view dev site with latest code) • Imagine automatically starting the build task to provision a dev environment for every branch. • Manual testers (integrate with ticketing systems to approve/reject production build)
  10. Continuous Integration / Deployment with Jenkins Demo • Librarysite •

    Capistrano • Deployment manager • Rollbacks • Upgrades • Multiple servers • Saucelabs • Jenkins Pipeline