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

What's hot (20)

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

Viewers also liked (19)

PPS
Best Union - Cap solutions
WMC
 
PPTX
Ultrasonido hepático
Evangelista Isabel Quiroz
 
PPT
alquran sebagai filter
Yens Craft
 
DOCX
Projects completed in 2014 to May 2015
Martin Marjuszycz
 
PDF
A Peek into Doner's Social Practice
Marcus Collins
 
PDF
Etika dan akhidah beragama dengan kesehatan
pjj_kemenkes
 
PPT
Hashim Beqiraj Anatomia Funksionale e Njeriut
Handball 2011
 
PPT
Bab 2
sblm1053uum
 
PPTX
Agama dan masyarakat
naufalando
 
PDF
KB 3 Peran Umat Beragama dalam Mewujudkan Masyarakat Beradab dan Sejahtera
pjj_kemenkes
 
PPTX
IPA Kelas VII "Pemuaian"
Putri Alfisyahrini
 
PDF
DISASTER RISK REDUCTION IN EDUCATION (PHILIPPINES)
Leslie Valena
 
PPTX
shock
Tahiri Martinez
 
PPTX
Persatuan dan kerukunan
NurfaisyalAnas
 
PPTX
Adab Berhias
Sandra Virgie
 
DOCX
Bahasa
SMAN 54 Jakarta
 
PPTX
Saling menasehati
SMAN 54 Jakarta
 
PPTX
Design pp 1
Daniel Katz
 
PPTX
CornellBESTslideshare2016
Susi (Sturzenegger) Varvayanis
 
Best Union - Cap solutions
WMC
 
Ultrasonido hepático
Evangelista Isabel Quiroz
 
alquran sebagai filter
Yens Craft
 
Projects completed in 2014 to May 2015
Martin Marjuszycz
 
A Peek into Doner's Social Practice
Marcus Collins
 
Etika dan akhidah beragama dengan kesehatan
pjj_kemenkes
 
Hashim Beqiraj Anatomia Funksionale e Njeriut
Handball 2011
 
Agama dan masyarakat
naufalando
 
KB 3 Peran Umat Beragama dalam Mewujudkan Masyarakat Beradab dan Sejahtera
pjj_kemenkes
 
IPA Kelas VII "Pemuaian"
Putri Alfisyahrini
 
DISASTER RISK REDUCTION IN EDUCATION (PHILIPPINES)
Leslie Valena
 
Persatuan dan kerukunan
NurfaisyalAnas
 
Adab Berhias
Sandra Virgie
 
Saling menasehati
SMAN 54 Jakarta
 
Design pp 1
Daniel Katz
 
CornellBESTslideshare2016
Susi (Sturzenegger) Varvayanis
 
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...
Jonathann Zenou
 
PDF
Building an Enterprise Continuous Delivery machine around Jenkins
XebiaLabs
 
PPTX
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
PPTX
Configuration As Code: The Job DSL Plugin
Daniel Spilker
 
PDF
Juc boston2014.pptx
Brandon Mueller
 
PDF
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
PPTX
Test parallelization using Jenkins
Rogue Wave Software
 
PDF
Taming iOS Testing at Square -- JUC West 2015
Michael Tauraso
 
PDF
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
CloudBees
 
PPTX
Grooving with Jenkins
Anton Weiss
 
PPTX
The Key Components of Adopting CI The OpenStack Way
iWeb (group INAP)
 
PPTX
How to keep Jenkins logs forever without performance issues
Luca Milanesio
 
PDF
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Alvin Huang
 
KEY
Continuous Delivery Using Jenkins
Cliffano Subagio
 
PDF
The Job DSL Plugin: Introduction & What’s New
Daniel Spilker
 
PPTX
Continuous Integration as a Way of Life
Melissa Benua
 
PDF
Continuous Integration
Udaypal Aarkoti
 
PPSX
Enabling Continuous Delivery For Major Retailer using open source Jenkins
Masood Jan
 
PPTX
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
PPTX
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 
Optimizing Your CI: Lessons Learned from a Successful Jenkins Rebuild - JUC U...
Jonathann Zenou
 
Building an Enterprise Continuous Delivery machine around Jenkins
XebiaLabs
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
Configuration As Code: The Job DSL Plugin
Daniel Spilker
 
Juc boston2014.pptx
Brandon Mueller
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
Test parallelization using Jenkins
Rogue Wave Software
 
Taming iOS Testing at Square -- JUC West 2015
Michael Tauraso
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
CloudBees
 
Grooving with Jenkins
Anton Weiss
 
The Key Components of Adopting CI The OpenStack Way
iWeb (group INAP)
 
How to keep Jenkins logs forever without performance issues
Luca Milanesio
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Alvin Huang
 
Continuous Delivery Using Jenkins
Cliffano Subagio
 
The Job DSL Plugin: Introduction & What’s New
Daniel Spilker
 
Continuous Integration as a Way of Life
Melissa Benua
 
Continuous Integration
Udaypal Aarkoti
 
Enabling Continuous Delivery For Major Retailer using open source Jenkins
Masood Jan
 
Symfony2 for legacy app rejuvenation: the eZ Publish case study
Gaetano Giunta
 
The challenges and pitfalls of database deployment automation
DBmaestro - Database DevOps
 

More from CloudBees (14)

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

Recently uploaded (20)

PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Doc9.....................................
SofiaCollazos
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 

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