Upload
others
View
22
Download
0
Embed Size (px)
Citation preview
Jenkins @ ScaleEclipseCon France 2017
Michaël Pailloncy - Baptiste Mathus
● Software Developer & Automation addict● DevOps Automation/Tools Engineer ● OSS contributor
https://jenkins.io
Michaël Pailloncy
● Passionate about Agile, Devops & Continuous Delivery, and all things Automation
● Jenkins & MojoHaus Committer● Lengthy-reply generator
● Software Developer @
Baptiste Mathus
Jenkins History In Short
● 2005 : Kohsuke Kawaguchi creates Hudson
● 2011 : Oracle forks the project,
the community renames to Jenkins.
● 2016 : Jenkins 2
Typical Jenkins Setup
DEMO
0 executor on Master
For SECURITY
and
STABILITY
Source: https://blog.newrelic.com/2016/02/04/data-culture-survey-results-faster-deployment/
53%
81%
Continuous Integrationhas become standard,
Continuous Deliveryis where differentiation now lies
How can we scale cleanly and securely?
REPRODUCIBILITY >>> SPEED
Dynamic agent provisioning
One shot agents
BABY STEPS
I want to map my actual process to code!
OK, so what if?
I want
Parallel builds, for realFail fast
Human inputs
Good usability and visualization
Robustness
“Simple things should be simpleComplex things should be possible
“– Alan Kay
Jenkins Pipeline & Blue Oceanhttps://www.flickr.com/photos/compacflt/9510971787/
Some statistics...
Number of Jenkins pipelines
Blue Ocean plugin installations count
Jenkins Pipeline
Suite of plugins which supports implementing and integrating continuous delivery pipelines into Jenkins
● Scripted Pipeline: The OriginalⓇ
○ More programmatic○ Mature○ but more complex
● Declarative Pipeline○ Opinionated○ Younger, 1.0 is 6 months old
Jenkins Pipeline
Configuration As Code
Jenkinsfile lets you version your Pipeline with the code
Blue Ocean
Rethinks the User Experience of Jenkins
Makes visualization a breath
Especially integrated with Pipeline
DEMO
About Pipeline robustness
Orchestration engine runs on the Master !
Uses Continuation Passing Style
Enable sandbox
For SECURITY
and
STABILITY(yes, again)
Wrapping up
● You need to go faster!
● Agents are transient : throw them away
● Use labels, never ever node names in jobs
● Use Jenkins less, keep things simple
● Start simple, remember John Gall :-)
?