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

Managing Developer workflows with Jenkins

Fd1ddc8e53e730804f2814248f69a565?s=47 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).

Fd1ddc8e53e730804f2814248f69a565?s=128

btmash

November 16, 2014
Tweet

Transcript

  1. Continuous Integration / Deployment with Jenkins Managing Developer workflows with

    Jenkins So Cal Camp 2014 Ashok Modi
  2. Continuous Integration / Deployment with Jenkins Agenda • About us

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

    Hill • Drupal since 2005 • http://chillco.com • https://twitter.com/thecherryhillco
  4. Continuous Integration / Deployment with Jenkins Continuous Integration

  5. 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
  6. Continuous Integration / Deployment with Jenkins Continuous Delivery

  7. 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
  8. 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)
  9. 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)
  10. Continuous Integration / Deployment with Jenkins Why Jenkins? • Create

    test builds • Run tests Easily • Script the production build process • Easy deploy • Automated • “Push the button!”
  11. 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
  12. 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)
  13. Continuous Integration / Deployment with Jenkins Why Jenkins?

  14. Continuous Integration / Deployment with Jenkins Demo • Librarysite •

    Capistrano • Deployment manager • Rollbacks • Upgrades • Multiple servers • Saucelabs • Jenkins Pipeline
  15. Continuous Integration / Deployment with Jenkins Questions? • Become a

    build master • Thank you :)