SlideShare a Scribd company logo
Optimizing Your CI: Lessons Learned from a Successful
Jenkins Rebuild
Europe, June 2015
Jonathann Zenou @zenoujohn
Footer
#jenkinsconf
Greetings fellow humans
•  Hi, my name is Jonathann
•  Living in Tel Aviv, Israel
•  Originally from Marseille, France
•  Leading the DevOps effort at Ravello Systems
•  jonathann.zenou@ravellosystems.com
2
#jenkinsconf
Footer
What is Ravello Systems ?
#jenkinsconf
Footer
Ravello Systems
•  30 developers
•  4 teams
•  7 major projects
•  Kanban like
4
#jenkinsconf
Footer
A part of our stack
5
#jenkinsconf
Footer
What are we going to talk about ?
6
#jenkinsconf
Footer
Old problems
7
#jenkinsconf
Footer
Jobs Leftovers
•  Causes full disk
•  Workspace Cleanup Plugin
•  Can pollute your maven repo or npm cache
•  Solution needed : a new clean environment for every job
8
Footer
#jenkinsconf
Better resource distribution
9
Backend Team Frontend Team
Footer
#jenkinsconf
Better resource distribution
10
Backend Team Frontend Team
Footer
#jenkinsconf
Better resource distribution
11
Backend Team Frontend Team
Footer
#jenkinsconf
Better resource distribution
12
Backend Team Frontend Team
Footer
#jenkinsconf
Better resource distribution
13
Backend Team Frontend Team
“waiting for next available
executor …”
Footer
#jenkinsconf
Better resource distribution
14
Backend Team/Frontend Team
Footer
#jenkinsconf
Better resource distribution
15
Backend Team/Frontend Team
Footer
#jenkinsconf
Better resource distribution
16
Backend Team/Frontend Team
Footer
#jenkinsconf
Frontend Team leader’s reaction
17
#jenkinsconf
Footer
Better resource distribution
•  Solution needed : a rapid and scalable way to spawn
dynamic environments
18
#jenkinsconf
Footer
Better resource distribution
19
#jenkinsconf
Footer
Using Docker in Jenkins
•  Using Jenkins Docker plugin
•  Dedicated Docker host for each team
•  Hosts machine capabilities are a function of team size and
requirements
•  All images on all hosts
•  Problems solved : jobs leftovers and resource distribution
20
#jenkinsconf
Footer
Security
•  No active directory or LDAP
•  Jim uses Dave’s account
•  Employee leaves the company
21
#jenkinsconf
Footer
Security
22
#jenkinsconf
Footer
Security
23
#jenkinsconf
Footer
Security
•  Solution needed: third party dynamic authentication
mechanism
24
#jenkinsconf
Footer
Security
•  Using Jenkins Google Login plugin
•  Coupled with Matrix Authorization Strategy plugin
•  2-Factor authentication
•  Open our Jenkins to the world
25
#jenkinsconf
Footer
Too much code in jobs
26
#jenkinsconf
Footer
Too much code in jobs
•  Hard to maintain
•  Can be easily broken
•  “Who touched this ??”
27
#jenkinsconf
Footer
Too much code in jobs
•  Solution:
•  Put your scripts in revision control (Github)
•  Using Jenkins Multiple SCM plugin
28
#jenkinsconf
Footer
Jobs Versioning
29
#jenkinsconf
Footer
Jobs Versioning
•  Solution:
•  Using Jenkins JobConfigHistory plugin
•  Saves old configurations
•  Diff between job configurations
•  Revert job configuration
•  Coupled with Jenkins SCM sync configuration plugin
•  Saves you whole Jenkins configuration in revision
control (Github)
30
#jenkinsconf
Footer
Jobs data sharing
31
Backend Job Frontend Job
Parameters:
-  Backend version: 1.1
-  Frontend version: stable
Parameters:
-  Frontend version: 1.1
-  Backend version: stable
#jenkinsconf
Footer
Jobs data sharing
•  Solution needed: an interface/service that will store data
that will be accessible from all the jobs
•  Using Jenkins Global Variable String Parameter Plugin
•  Cannot alter them from a job
•  But you can using Groovy …
32
#jenkinsconf
Footer
Jobs data sharing
33
#jenkinsconf
Footer
Jobs data sharing
•  Keep a global parameter for each of product stable version
•  Let all the other jobs use these values
•  Change the global parameter value of a product stable
version automatically when this product passes a green CI
•  Gist link: https://gist.github.com/johnyzed/2af71090419af2b20c5a
34
#jenkinsconf
Footer
CI at Ravello Systems
35
build
+
unit
tests
environment
creation
code
deployment
test suites
stop
environments
Artifactory
log collection
#jenkinsconf
Footer
CI at Ravello Systems
36
environment
creation
#jenkinsconf
Footer
Before digging further
37
#jenkinsconf
Footer
The pieces are ready
•  What Do Developers Want ?
•  Blackbox
•  No duplication
•  C.D.R.S
•  Single form, with a lot of triggers
•  Using Multijob Plugin
38
#jenkinsconf
Footer
Jobs sandbox
•  Improving a job without:
•  Breaking it
•  Stopping other people using it
•  Solution needed: a parallel Jenkins environment almost
identical to our production Jenkins environment to test the
new changes on
39
#jenkinsconf
Footer
Jobs sandbox
•  Jenkins environment blueprint on Ravello Systems
•  Using Ansible:
•  git clone
•  minor changes
•  Running regular jobs
•  All that orchestrated from a Jenkins job
40
#jenkinsconf
Footer
Jenkins sandbox flow
41
changes on
Jenkins script
branch
create dynamic
Jenkins
environment
run jobs
stop dynamic
environment
#jenkinsconf
Footer
Jobs sandbox
42
#jenkinsconf
Footer
Comparing Jenkins environment
43
Old Jenkins
 New Jenkins
Number of jobs 
137
 56
Number of slaves 
10
 0-50
Build and test
duration
70
 43
#jenkinsconf
Footer
Comparing Jenkins environment
44
#jenkinsconf
Footer
Take-aways
•  Ask your developers how to make their life easier
•  Don’t be afraid to break things
•  Culture
•  Follow @jenkins_release
•  Follow @devopsreactions
45
#jenkinsconf
Footer
Project Handover
46
#jenkinsconf
Footer
One last thing
•  Ravello Repo
•  http://www.ravellosystems.com/repo/
•  http://www.ravellosystems.com/repo/blueprints/60391436
47
#jenkinsconf
Footer
48
Questions ?
#jenkinsconf
Footer
Please Share Your Feedback
•  Did you find this session valuable?
•  Please share your thoughts in the
Jenkins User Conference Mobile App.
•  Find the session in the app and click
on the feedback area.
49
#jenkinsconf
Thank you
50

More Related Content

PDF
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
PDF
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
PDF
JUC Europe 2015: Enabling Continuous Delivery for Major Retailers
PDF
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
PDF
From Virtual Machines to Containers
PDF
JUC Europe 2015: Jenkins Made Easy
PDF
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
PDF
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
JUC Europe 2015: Enabling Continuous Delivery for Major Retailers
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
From Virtual Machines to Containers
JUC Europe 2015: Jenkins Made Easy
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"

What's hot (20)

PDF
JUC Europe 2015: Plugin Development with Gradle and Groovy
PDF
JUC Europe 2015: Hey! What Did We Just Release?
PDF
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
PDF
JUC Europe 2015: Scaling Your Jenkins Master with Docker
PDF
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
PDF
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
PDF
Let’s start Continuous Integration with jenkins
PPTX
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
PDF
At Your Service: Using Jenkins in Operations
PDF
Brujug Jenkins pipeline scalability
PPTX
CLUG 2014-10 - Cookbook CI with Jenkins
PDF
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
PPTX
Testing for infra code using test-kitchen,docker,chef
PPTX
Jenkins CI presentation
PDF
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
ODP
7 Habits of Highly Effective Jenkins Users
PPTX
Drupal Continuous Integration with Jenkins - The Basics
PPTX
Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild - JUC U...
PPT
Jenkins Scriptler in 90mins
PPTX
Jenkins tutorial
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Hey! What Did We Just Release?
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
Let’s start Continuous Integration with jenkins
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
At Your Service: Using Jenkins in Operations
Brujug Jenkins pipeline scalability
CLUG 2014-10 - Cookbook CI with Jenkins
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Testing for infra code using test-kitchen,docker,chef
Jenkins CI presentation
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
7 Habits of Highly Effective Jenkins Users
Drupal Continuous Integration with Jenkins - The Basics
Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild - JUC U...
Jenkins Scriptler in 90mins
Jenkins tutorial
Ad

Viewers also liked (19)

PPS
Best Union - Cap solutions
 
PPTX
Ultrasonido hepático
PPT
alquran sebagai filter
DOCX
Projects completed in 2014 to May 2015
PDF
A Peek into Doner's Social Practice
PDF
Etika dan akhidah beragama dengan kesehatan
PPT
Hashim Beqiraj Anatomia Funksionale e Njeriut
PPT
PPTX
Agama dan masyarakat
PDF
KB 3 Peran Umat Beragama dalam Mewujudkan Masyarakat Beradab dan Sejahtera
PPTX
IPA Kelas VII "Pemuaian"
PDF
DISASTER RISK REDUCTION IN EDUCATION (PHILIPPINES)
PPTX
PPTX
Persatuan dan kerukunan
PPTX
Adab Berhias
DOCX
PPTX
Saling menasehati
PPTX
Design pp 1
PPTX
CornellBESTslideshare2016
Best Union - Cap solutions
 
Ultrasonido hepático
alquran sebagai filter
Projects completed in 2014 to May 2015
A Peek into Doner's Social Practice
Etika dan akhidah beragama dengan kesehatan
Hashim Beqiraj Anatomia Funksionale e Njeriut
Agama dan masyarakat
KB 3 Peran Umat Beragama dalam Mewujudkan Masyarakat Beradab dan Sejahtera
IPA Kelas VII "Pemuaian"
DISASTER RISK REDUCTION IN EDUCATION (PHILIPPINES)
Persatuan dan kerukunan
Adab Berhias
Saling menasehati
Design pp 1
CornellBESTslideshare2016
Ad

Similar to JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild (20)

PPTX
Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild - JUC U...
PDF
Building an Enterprise Continuous Delivery machine around Jenkins
PPTX
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
PPTX
Configuration As Code: The Job DSL Plugin
PDF
Juc boston2014.pptx
PDF
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
PPTX
Test parallelization using Jenkins
PDF
Taming iOS Testing at Square -- JUC West 2015
PDF
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
PPTX
Grooving with Jenkins
PPTX
The Key Components of Adopting CI The OpenStack Way
PPTX
How to keep Jenkins logs forever without performance issues
PDF
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
KEY
Continuous Delivery Using Jenkins
PDF
The Job DSL Plugin: Introduction & What’s New
PPTX
Continuous Integration as a Way of Life
PDF
Continuous Integration
PPSX
Enabling Continuous Delivery For Major Retailer using open source Jenkins
PPTX
Symfony2 for legacy app rejuvenation: the eZ Publish case study
PPTX
The challenges and pitfalls of database deployment automation
Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild - JUC U...
Building an Enterprise Continuous Delivery machine around Jenkins
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Configuration As Code: The Job DSL Plugin
Juc boston2014.pptx
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
Test parallelization using Jenkins
Taming iOS Testing at Square -- JUC West 2015
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
Grooving with Jenkins
The Key Components of Adopting CI The OpenStack Way
How to keep Jenkins logs forever without performance issues
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Continuous Delivery Using Jenkins
The Job DSL Plugin: Introduction & What’s New
Continuous Integration as a Way of Life
Continuous Integration
Enabling Continuous Delivery For Major Retailer using open source Jenkins
Symfony2 for legacy app rejuvenation: the eZ Publish case study
The challenges and pitfalls of database deployment automation

More from CloudBees (14)

PDF
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
PDF
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
PDF
JUC Europe 2015: Evolving the Jenkins UI
PDF
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
PDF
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
PDF
JUC Europe 2015: A Reproducible Build Environment with Jenkins
PDF
Pimp your jenkins platform with docker - Devops.com 2015/11
PDF
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
PDF
Jenkins Workflow Webinar - Dec 10, 2014
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
PDF
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
PDF
Rethinking Application Design for the Cloud
PPTX
The Fall of Giants
PPTX
Getting Started with Platform-as-a-Service
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
JUC Europe 2015: Evolving the Jenkins UI
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: A Reproducible Build Environment with Jenkins
Pimp your jenkins platform with docker - Devops.com 2015/11
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
Jenkins Workflow Webinar - Dec 10, 2014
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
Rethinking Application Design for the Cloud
The Fall of Giants
Getting Started with Platform-as-a-Service

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
KodekX | Application Modernization Development
PDF
Approach and Philosophy of On baking technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
A Presentation on Artificial Intelligence
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Network Security Unit 5.pdf for BCA BBA.
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
NewMind AI Monthly Chronicles - July 2025
KodekX | Application Modernization Development
Approach and Philosophy of On baking technology
The AUB Centre for AI in Media Proposal.docx
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf

JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild