Slide 1

Slide 1 text

Continuous Integration / Deployment with Jenkins Managing Developer workflows with Jenkins So Cal Camp 2014 Ashok Modi

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Continuous Integration / Deployment with Jenkins Continuous Integration

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Continuous Integration / Deployment with Jenkins Continuous Delivery

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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)

Slide 9

Slide 9 text

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)

Slide 10

Slide 10 text

Continuous Integration / Deployment with Jenkins Why Jenkins? • Create test builds • Run tests Easily • Script the production build process • Easy deploy • Automated • “Push the button!”

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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)

Slide 13

Slide 13 text

Continuous Integration / Deployment with Jenkins Why Jenkins?

Slide 14

Slide 14 text

Continuous Integration / Deployment with Jenkins Demo • Librarysite • Capistrano • Deployment manager • Rollbacks • Upgrades • Multiple servers • Saucelabs • Jenkins Pipeline

Slide 15

Slide 15 text

Continuous Integration / Deployment with Jenkins Questions? • Become a build master • Thank you :)