SlideShare a Scribd company logo
1 of 56
Download to read offline
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
PhD, Hardware Engineering
Background: R&D in Hardware & Embedded
• Intel Labs, Sitronics, Synopsys
• Large-scale automation infrastructures
Jenkins Developer, CloudBees
• CloudBees Jenkins Platform
• Customer support and consulting
Core Team Member, Jenkins Project
• Maintainer of plugins
• Meetup organizer, GSoC Org Admin
Contributor, LibreCores
About me
@oleg_nenashev
oleg-nenashev
2
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
The Butler is still young –
applying modern Jenkins
features to the Embedded area
Oleg Nenashev
CloudBees, Inc.
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Do know about Jenkins?
About you
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
1. The most popular CI automation
server in the world
2. It’s a framework
• Swiss Army Knife of Automation
3. It’s open-source
• Can be customized
4. Commercial support is available
Who is Mr. Jenkins?
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 6
Computing
grids
Docs
HW
peripherals
Plugins Configs
Build
agents
Jobs
Jenkins-based
Automation System
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Do you use Jenkins?
About you
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Jenkins is Popular
http://stats.jenkins-ci.org/jenkins-stats/
• Common: ~70% of teams
use Jenkins
• Almost 150k installations
• ~300 active committers
(over last 6 months)
• ~3 new plugins every week
• ~50 plugin releases every
week
Hudson Jenkins
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Many Embedded companies use Jenkins
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
LTS release lines
Backward compatibility
•Jenkins 1.x was compatible for 8+ years
•Jenkins 2.x is almost compatible with
Jenkins 1.x
It’s also conservative about continuous
improvement
10
Jenkins is Conservative
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
NEW WEBSITE
NOW IT’S A CD AUTOMATION SERVER
FOCUS ON USER EXPERIENCE
UI IMPROVEMENTS
SECURITY IS ENABLED BY DEFAULT
PIPELINE AS CODE
11
Jenkins 2
http://bit.ly/jenkins20
Stats:
• Released on April 2016
• LTS line – July 2016
• 50% adoption over six months
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Jenkins 2 is a milestone, work continues
USER EXPERIENCE
•Better stability of installations
•Better UIs (Blue Ocean, etc.)
ARCHITECTURE
•(?) Pluggable storage
•Remoting changes
•Jenkins in the Cloud – ”new” requirements
PROJECT INFRASTRUCTURE
•Contributor experience
•Better quality of plugins & core finally
12
What’s going on in Jenkins?
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
GOALS
• Share info about new Jenkins
features
• Share experience about
Pipeline usage in Embedded
• Give stickers & T-shorts for
good questions ;)
NO-GOALS
• Continuous Integration 101
• Jenkins 101
• “Classic” approaches to
Embedded use-cases
About this talk
JUC2015/London
More info:
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
What is an Embedded Product?
14
`
Hardware
External IPFirmware /
embedded
software
External
software
Development tools
/ EDAs
Demo software Demo hardware
Developer kits
Main Product
Documentation
Integ-
ration
Boom!
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Almost everything needs to be automated
Multiple technologies and tools
Unstable hardware and networks
Legacy stuff is everywhere
Limited resources
Hardware engineers are not software experts
15
Embedded Area. Welcome to Automation Hell!
Technical
Non-technical
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Approach: Use Free-style and Matrix:
https://jenkins.io/solutions/embedded/
Classic Approaches in Jenkins
JUC2015/London
More info:
Keywords:
• Script steps to run the logic
• Custom Tools - manage tools
• Throttle Concurrent Builds and
Lockable Resources - dispatch access
to the shared hardware
• Naginator - restart builds on-demand
• Parameterized Trigger / Copy Artifact -
parallelize tests and to collect results
16
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 17
Spaghetti Automation
• Many job dependencies
• Difficult build flow
tracking
• Complex configurations
• Duplication
• Maintenance is
expensive
Classic Approaches in Jenkins
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
ü Storage together with the project
ü Tracking together with the project
ü Tests together with the project
…. as code?
Configuration…
Documentation…
Pipeline…
Everything…
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Jenkins Pipeline
19
Configuration as Code for Jenkins jobs
Not just a configuration as code
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline is a…
Ø Groovy DSL for automatic flow description *
• Alternatives – Job DSL, Jenkins Job Builder
Ø Job type in Jenkins (Pipeline Job)
• Job definitions can be stored in SCM
• Automatic job creation from repositories and organizations
Ø Ecosystem for automation as code
• ~20 dedicated plugins
• Integration in many other plugins
• Suggested by default in Jenkins 2
// Run on a node having the “my_fpga” label
node("linux && ml509") {
git url:"http://github.com/myorg/myproject.git"
sh "make all"
} http://bit.ly/pipeline-tutorial
20
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Snippet generator
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Stored in SCM
• Jenkinsfile
Jenkins can create projects from SCM
• Multi-branch Pipeline
• Folder with a project
• Jobs for branches and pull requests
Works even on the organization level
• GitHub, BitBucket, etc.
22
Pipeline…. as code
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 23
Multi-Branch Pipeline
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline. Useful Features
Robustness against restarts of Jenkins master
Robustness against network disconnects
• sh() steps are based on the Durable Task plugin
• Jenkins continues execution once the node reconnects
Parallelization across multiple nodes:
• It can be achieved via combination of parallel() and node() steps
• No need to use the trigger/copy chain (but you can do it)
Ability to store the shared logic in standalone Pipeline libraries
Visualization: Pipeline Stage View, Blue Ocean
24
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline. Stage View Plugin
25
New UI: Blue Ocean is coming soon!
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Example 2: Running tests in Parallel
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Embedded Components Testing Approaches
Software Hardware
Simulators
EDA tools
FPGAs
ASIC prototypesHardware
Accelerators, etc.
x
27
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Example. Jenkins Node with an Attached Board
28
VM or
bare-metal
Power
Reset
when it hangs
Deploy bit-files,
Blasting cables
Debugging cables,
firmware upload
We don’t
change them,
huh?
Jenkins node
Drivers
Tools
Peripherals
Attached peripherals
Runtime
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Issue #1. Hardware is Unstable
29
Nodes @ Site A Nodes @ Site CNodes @ Site B
“We borrowed FPGAs
here, somebody takes
them randomly.”
“This stuff has
Windows drivers only.”
“No infra team
members here.”
“We run Jenkins
nodes on developer
laptops.”
Frankenboards
“We built them from
the garbage we had.”
L
L
L
L
L
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Node Failover
Pipeline allows re-running unreliable stages on
other nodes.
System failure
Node #1 Node #2. . .
. . .
for (def board : boards) {
echo "trying board " + board;
try {
node(board) {
checkout scm
sh ‘./bin/run.sh’
// Call passed => DONE
break;
}
} catch (Exception ex) {
if (ex.message.contains
("exit code 255")) {
// Fatal error
fail("Test run failed")
}
}
}
Try all possible boards:
30
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
We want to…
• minimize the amount of hardware we use
• utilize the hardware as much as possible
• share hardware between projects
Nice to have:
• reuse the existing hardware
▸ Developer computers (nightly builds)
▸ Manual QA labs
▸ …
31
Issue #2. Hardware is Expensive!
M – x000$
L –x0000$
M - http://www.xilinx.com/univ/xupv5-lx110t.htm
L - HAPS-64, www.synopsys.com
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Access should be dispatched by Jenkins
Builds utilize the hardware during a single phase only
Scheduled availability of nodes
Teams fight for resources
Clean environment (again)
32
Issue #3. Hardware is Shared
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Resource Management
33
Dispatching parallel access:
• Lockable Resources plugin is
integrated with Pipeline
• Throttle Concurrent Builds
plugin is not integrated,
license limitations may be a
problem
Restricting access:
• Job Restrictions Plugin
• Node access schedule
echo 'Starting'
node('board1') {
stage('Build')
git url: 'http://github.com/myorg/myproject.git'
withEnv(["PATH+GCC=${tool ’gcc4'}/bin"]) {
sh 'make clean build'
}
}
stage(’Run tests')
lock(env.NODE_NAME + "-board1") {
// Run something on the board
// ...
}
}
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Tools…
34
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
1. Local tool installation on a node
2. External Tool Managers (CLI)
3. Jenkins-based solutions
-Via plugins (if available)
-Generic approaches: Custom Tools,
EnvInject, etc.
-Limited availability in Pipeline
4. Virtualization
Tool usage approaches
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Advantages:
•Quick setup if you have ready infrastructure
•Load balancing on physical hardware: vCenter, Docker Swarm
•Works well with configuration as code (e.g. Puppet)
•Clean environment
•Dozens of plugins in Jenkins
Disadvantages:
•Poor scalability when you have many tool combinations
•Complicated for BIG tools (common case for EDAs)
Virtualization for tools
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Docker Plugin
Docker Pipeline Plugin
Docker Custom Build Environment Plugin
…
Yet Another Docker Plugin
Example. Docker plugins
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Example. Docker-based tools and Pipeline
Docker Pipeline Plugin:
• You can share workspaces
• External Workspace Manager
• https://github.com/jenkinsci/external-
workspace-manager-plugin
• You can create build chains
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
You do NOT need to use a single node
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 40
Example
https://github.com/jenkinsci/external-workspace-manager-plugin
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Jenkins Pipelines are Complex
How to reuse them?
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline Shared Libraries
•Libs are located in SCM
•Versioning
•Definition for scopes:
▸Jenkins system-wide
▸Folder
▸Job
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline Library Definition [1/2]
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline Library Definition [2/2]
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Using Pipeline Libraries
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
More examples:
https://github.com/jenkinsci/pipeline-
examples
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline. What’s next?
• Stability / Fault tolerance
• UI/UX, Blue Ocean
• Plugin integrations
• Syntax improvements
• (?) Freestyle => Pipeline Converter
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Blue Ocean
https://jenkins.io/projects/blueocean/
Ø New UI for Jenkins
Ø New UX for common Jenkins users
Ø Deep integration with Pipeline
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Blue Ocean
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Pipeline. Dev tools
Available:
•Minimal IDE: Auto-completion
•Minimal static analysis
•Documentation browser for steps
•Library manager
Missing:
•Debugger
•Real-time code deployment from IDE
•Real-time approval of Script Security
•Freestyle => Pipeline Converter
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 53
Summary. Embedded projects & Pipeline
SO…
• We successfully adopted Jenkins Pipeline in several projects
▸E.g. LibreCores CI (http://librecores.org/)
• We got advantage in user experience: Templates, Blue
Ocean, Pipeline Model Definitions
LESSONS LEARNT
• Pipeline greatly simplifies task parallelization and failover
within a single build
• Pipeline saves much time on automation system maintenance
• Pipeline is a programming languages, high barrier to entry
• Pipeline still lacks Dev Tools and integrations, but it evolves
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
There are many articles about Jenkins in
the Embedded area
•Most of them describe the “classic
approaches” based on
Freestyle jobs
Embedded solutions page:
•https://jenkins.io/solutions/embedded/
Blogposts:
•https://jenkins.io/node/
54
More Info Embedded Solutions Page
…
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
Jenkins project:
• Website: https://jenkins.io
• Embedded Solutions page: https://jenkins.io/solutions/embedded/
Pipeline:
• Tutorial: https://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.md
• Compatibility: https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md
• Examples: https://github.com/jenkinsci/pipeline-examples
CloudBees website:
• Website: https://www.cloudbees.com
• CloudBees Jenkins Platform: https://www.cloudbees.com/products/cloudbees-jenkins-platform
55
Useful Links
© 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 56
Thank You!
Where to find me:
E-mail: onenashev@cloudbees.com
GitHub: oleg-nenashev
Twitter: @oleg_nenashev
Want to get more from Jenkins?
go.cloudbees.com

More Related Content

What's hot

Websockets: Pushing the web forward
Websockets: Pushing the web forwardWebsockets: Pushing the web forward
Websockets: Pushing the web forwardMark Roden
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...Daniel Krook
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Patrick Chanezon
 
Ninja, Choose Your Weapon!
Ninja, Choose Your Weapon!Ninja, Choose Your Weapon!
Ninja, Choose Your Weapon!Anton Weiss
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerBrett Palmer
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Continuous Delivery with Jenkins Workflow
Continuous Delivery with Jenkins WorkflowContinuous Delivery with Jenkins Workflow
Continuous Delivery with Jenkins WorkflowUdaypal Aarkoti
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for TestingCarlos Sanchez
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDocker, Inc.
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpdotCloud
 
On sharing ideas & sharing code
On sharing ideas & sharing codeOn sharing ideas & sharing code
On sharing ideas & sharing codeKohsuke Kawaguchi
 
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...CloudBees
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDocker, Inc.
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Tracy Kennedy
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Longericlongtx
 
2016 Docker Palo Alto - CD with ECS and Jenkins
2016 Docker Palo Alto -  CD with ECS and Jenkins2016 Docker Palo Alto -  CD with ECS and Jenkins
2016 Docker Palo Alto - CD with ECS and JenkinsTracy Kennedy
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Peter Leschev
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentGerald Villorente
 

What's hot (20)

Websockets: Pushing the web forward
Websockets: Pushing the web forwardWebsockets: Pushing the web forward
Websockets: Pushing the web forward
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016
 
Ninja, Choose Your Weapon!
Ninja, Choose Your Weapon!Ninja, Choose Your Weapon!
Ninja, Choose Your Weapon!
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with Docker
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Continuous Delivery with Jenkins Workflow
Continuous Delivery with Jenkins WorkflowContinuous Delivery with Jenkins Workflow
Continuous Delivery with Jenkins Workflow
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from Yelp
 
On sharing ideas & sharing code
On sharing ideas & sharing codeOn sharing ideas & sharing code
On sharing ideas & sharing code
 
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
 
2016 Docker Palo Alto - CD with ECS and Jenkins
2016 Docker Palo Alto -  CD with ECS and Jenkins2016 Docker Palo Alto -  CD with ECS and Jenkins
2016 Docker Palo Alto - CD with ECS and Jenkins
 
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
Puppet Camp Sydney Feb 2014 - A Build Engineering Team’s Journey of Infrastru...
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal Deployment
 

Similar to The Butler is still young – applying modern Jenkins features to the Embedded area

Webinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSWebinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSMesosphere Inc.
 
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016Amazon Web Services
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Chris Ciborowski
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...Animesh Singh
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Development in Dataverse SSHOC project
Development in Dataverse SSHOC projectDevelopment in Dataverse SSHOC project
Development in Dataverse SSHOC projectvty
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOpsCisco DevNet
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Vadym Kazulkin
 
At the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackAt the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackRyan Aydelott
 
Pipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSPipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSJimmy Ray
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Clark Everetts
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8sDevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8sGökhan Şengün
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes vty
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 

Similar to The Butler is still young – applying modern Jenkins features to the Embedded area (20)

Webinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OSWebinar: End-to-End CI/CD with GitLab and DC/OS
Webinar: End-to-End CI/CD with GitLab and DC/OS
 
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
 
Who *is* Jenkins?
Who *is* Jenkins?Who *is* Jenkins?
Who *is* Jenkins?
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Development in Dataverse SSHOC project
Development in Dataverse SSHOC projectDevelopment in Dataverse SSHOC project
Development in Dataverse SSHOC project
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOps
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
 
At the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackAt the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with Openstack
 
Pipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWSPipelining DevOps with Jenkins and AWS
Pipelining DevOps with Jenkins and AWS
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
BRKSDN-2115
BRKSDN-2115 BRKSDN-2115
BRKSDN-2115
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8sDevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 

Recently uploaded

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxPurva Nikam
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 

Recently uploaded (20)

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 

The Butler is still young – applying modern Jenkins features to the Embedded area

  • 1. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
  • 2. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM PhD, Hardware Engineering Background: R&D in Hardware & Embedded • Intel Labs, Sitronics, Synopsys • Large-scale automation infrastructures Jenkins Developer, CloudBees • CloudBees Jenkins Platform • Customer support and consulting Core Team Member, Jenkins Project • Maintainer of plugins • Meetup organizer, GSoC Org Admin Contributor, LibreCores About me @oleg_nenashev oleg-nenashev 2
  • 3. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM The Butler is still young – applying modern Jenkins features to the Embedded area Oleg Nenashev CloudBees, Inc.
  • 4. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Do know about Jenkins? About you
  • 5. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 1. The most popular CI automation server in the world 2. It’s a framework • Swiss Army Knife of Automation 3. It’s open-source • Can be customized 4. Commercial support is available Who is Mr. Jenkins?
  • 6. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 6 Computing grids Docs HW peripherals Plugins Configs Build agents Jobs Jenkins-based Automation System
  • 7. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Do you use Jenkins? About you
  • 8. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Jenkins is Popular http://stats.jenkins-ci.org/jenkins-stats/ • Common: ~70% of teams use Jenkins • Almost 150k installations • ~300 active committers (over last 6 months) • ~3 new plugins every week • ~50 plugin releases every week Hudson Jenkins
  • 9. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Many Embedded companies use Jenkins
  • 10. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM LTS release lines Backward compatibility •Jenkins 1.x was compatible for 8+ years •Jenkins 2.x is almost compatible with Jenkins 1.x It’s also conservative about continuous improvement 10 Jenkins is Conservative
  • 11. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM NEW WEBSITE NOW IT’S A CD AUTOMATION SERVER FOCUS ON USER EXPERIENCE UI IMPROVEMENTS SECURITY IS ENABLED BY DEFAULT PIPELINE AS CODE 11 Jenkins 2 http://bit.ly/jenkins20 Stats: • Released on April 2016 • LTS line – July 2016 • 50% adoption over six months
  • 12. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Jenkins 2 is a milestone, work continues USER EXPERIENCE •Better stability of installations •Better UIs (Blue Ocean, etc.) ARCHITECTURE •(?) Pluggable storage •Remoting changes •Jenkins in the Cloud – ”new” requirements PROJECT INFRASTRUCTURE •Contributor experience •Better quality of plugins & core finally 12 What’s going on in Jenkins?
  • 13. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM GOALS • Share info about new Jenkins features • Share experience about Pipeline usage in Embedded • Give stickers & T-shorts for good questions ;) NO-GOALS • Continuous Integration 101 • Jenkins 101 • “Classic” approaches to Embedded use-cases About this talk JUC2015/London More info:
  • 14. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM What is an Embedded Product? 14 ` Hardware External IPFirmware / embedded software External software Development tools / EDAs Demo software Demo hardware Developer kits Main Product Documentation Integ- ration Boom!
  • 15. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Almost everything needs to be automated Multiple technologies and tools Unstable hardware and networks Legacy stuff is everywhere Limited resources Hardware engineers are not software experts 15 Embedded Area. Welcome to Automation Hell! Technical Non-technical
  • 16. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Approach: Use Free-style and Matrix: https://jenkins.io/solutions/embedded/ Classic Approaches in Jenkins JUC2015/London More info: Keywords: • Script steps to run the logic • Custom Tools - manage tools • Throttle Concurrent Builds and Lockable Resources - dispatch access to the shared hardware • Naginator - restart builds on-demand • Parameterized Trigger / Copy Artifact - parallelize tests and to collect results 16
  • 17. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 17 Spaghetti Automation • Many job dependencies • Difficult build flow tracking • Complex configurations • Duplication • Maintenance is expensive Classic Approaches in Jenkins
  • 18. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM ü Storage together with the project ü Tracking together with the project ü Tests together with the project …. as code? Configuration… Documentation… Pipeline… Everything…
  • 19. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Jenkins Pipeline 19 Configuration as Code for Jenkins jobs Not just a configuration as code
  • 20. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline is a… Ø Groovy DSL for automatic flow description * • Alternatives – Job DSL, Jenkins Job Builder Ø Job type in Jenkins (Pipeline Job) • Job definitions can be stored in SCM • Automatic job creation from repositories and organizations Ø Ecosystem for automation as code • ~20 dedicated plugins • Integration in many other plugins • Suggested by default in Jenkins 2 // Run on a node having the “my_fpga” label node("linux && ml509") { git url:"http://github.com/myorg/myproject.git" sh "make all" } http://bit.ly/pipeline-tutorial 20
  • 21. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Snippet generator
  • 22. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Stored in SCM • Jenkinsfile Jenkins can create projects from SCM • Multi-branch Pipeline • Folder with a project • Jobs for branches and pull requests Works even on the organization level • GitHub, BitBucket, etc. 22 Pipeline…. as code
  • 23. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 23 Multi-Branch Pipeline
  • 24. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline. Useful Features Robustness against restarts of Jenkins master Robustness against network disconnects • sh() steps are based on the Durable Task plugin • Jenkins continues execution once the node reconnects Parallelization across multiple nodes: • It can be achieved via combination of parallel() and node() steps • No need to use the trigger/copy chain (but you can do it) Ability to store the shared logic in standalone Pipeline libraries Visualization: Pipeline Stage View, Blue Ocean 24
  • 25. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline. Stage View Plugin 25 New UI: Blue Ocean is coming soon!
  • 26. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Example 2: Running tests in Parallel
  • 27. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Embedded Components Testing Approaches Software Hardware Simulators EDA tools FPGAs ASIC prototypesHardware Accelerators, etc. x 27
  • 28. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Example. Jenkins Node with an Attached Board 28 VM or bare-metal Power Reset when it hangs Deploy bit-files, Blasting cables Debugging cables, firmware upload We don’t change them, huh? Jenkins node Drivers Tools Peripherals Attached peripherals Runtime
  • 29. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Issue #1. Hardware is Unstable 29 Nodes @ Site A Nodes @ Site CNodes @ Site B “We borrowed FPGAs here, somebody takes them randomly.” “This stuff has Windows drivers only.” “No infra team members here.” “We run Jenkins nodes on developer laptops.” Frankenboards “We built them from the garbage we had.” L L L L L
  • 30. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Node Failover Pipeline allows re-running unreliable stages on other nodes. System failure Node #1 Node #2. . . . . . for (def board : boards) { echo "trying board " + board; try { node(board) { checkout scm sh ‘./bin/run.sh’ // Call passed => DONE break; } } catch (Exception ex) { if (ex.message.contains ("exit code 255")) { // Fatal error fail("Test run failed") } } } Try all possible boards: 30
  • 31. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM We want to… • minimize the amount of hardware we use • utilize the hardware as much as possible • share hardware between projects Nice to have: • reuse the existing hardware ▸ Developer computers (nightly builds) ▸ Manual QA labs ▸ … 31 Issue #2. Hardware is Expensive! M – x000$ L –x0000$ M - http://www.xilinx.com/univ/xupv5-lx110t.htm L - HAPS-64, www.synopsys.com
  • 32. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Access should be dispatched by Jenkins Builds utilize the hardware during a single phase only Scheduled availability of nodes Teams fight for resources Clean environment (again) 32 Issue #3. Hardware is Shared
  • 33. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Resource Management 33 Dispatching parallel access: • Lockable Resources plugin is integrated with Pipeline • Throttle Concurrent Builds plugin is not integrated, license limitations may be a problem Restricting access: • Job Restrictions Plugin • Node access schedule echo 'Starting' node('board1') { stage('Build') git url: 'http://github.com/myorg/myproject.git' withEnv(["PATH+GCC=${tool ’gcc4'}/bin"]) { sh 'make clean build' } } stage(’Run tests') lock(env.NODE_NAME + "-board1") { // Run something on the board // ... } }
  • 34. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Tools… 34
  • 35. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 1. Local tool installation on a node 2. External Tool Managers (CLI) 3. Jenkins-based solutions -Via plugins (if available) -Generic approaches: Custom Tools, EnvInject, etc. -Limited availability in Pipeline 4. Virtualization Tool usage approaches
  • 36. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Advantages: •Quick setup if you have ready infrastructure •Load balancing on physical hardware: vCenter, Docker Swarm •Works well with configuration as code (e.g. Puppet) •Clean environment •Dozens of plugins in Jenkins Disadvantages: •Poor scalability when you have many tool combinations •Complicated for BIG tools (common case for EDAs) Virtualization for tools
  • 37. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Docker Plugin Docker Pipeline Plugin Docker Custom Build Environment Plugin … Yet Another Docker Plugin Example. Docker plugins
  • 38. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Example. Docker-based tools and Pipeline Docker Pipeline Plugin: • You can share workspaces • External Workspace Manager • https://github.com/jenkinsci/external- workspace-manager-plugin • You can create build chains
  • 39. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM You do NOT need to use a single node
  • 40. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 40 Example https://github.com/jenkinsci/external-workspace-manager-plugin
  • 41. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Jenkins Pipelines are Complex How to reuse them?
  • 42. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline Shared Libraries •Libs are located in SCM •Versioning •Definition for scopes: ▸Jenkins system-wide ▸Folder ▸Job
  • 43. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline Library Definition [1/2]
  • 44. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline Library Definition [2/2]
  • 45. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Using Pipeline Libraries
  • 46. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM More examples: https://github.com/jenkinsci/pipeline- examples
  • 47. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline. What’s next? • Stability / Fault tolerance • UI/UX, Blue Ocean • Plugin integrations • Syntax improvements • (?) Freestyle => Pipeline Converter
  • 48. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Blue Ocean https://jenkins.io/projects/blueocean/ Ø New UI for Jenkins Ø New UX for common Jenkins users Ø Deep integration with Pipeline
  • 49. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Blue Ocean
  • 50. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
  • 51. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM
  • 52. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Pipeline. Dev tools Available: •Minimal IDE: Auto-completion •Minimal static analysis •Documentation browser for steps •Library manager Missing: •Debugger •Real-time code deployment from IDE •Real-time approval of Script Security •Freestyle => Pipeline Converter
  • 53. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 53 Summary. Embedded projects & Pipeline SO… • We successfully adopted Jenkins Pipeline in several projects ▸E.g. LibreCores CI (http://librecores.org/) • We got advantage in user experience: Templates, Blue Ocean, Pipeline Model Definitions LESSONS LEARNT • Pipeline greatly simplifies task parallelization and failover within a single build • Pipeline saves much time on automation system maintenance • Pipeline is a programming languages, high barrier to entry • Pipeline still lacks Dev Tools and integrations, but it evolves
  • 54. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM There are many articles about Jenkins in the Embedded area •Most of them describe the “classic approaches” based on Freestyle jobs Embedded solutions page: •https://jenkins.io/solutions/embedded/ Blogposts: •https://jenkins.io/node/ 54 More Info Embedded Solutions Page …
  • 55. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM Jenkins project: • Website: https://jenkins.io • Embedded Solutions page: https://jenkins.io/solutions/embedded/ Pipeline: • Tutorial: https://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.md • Compatibility: https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md • Examples: https://github.com/jenkinsci/pipeline-examples CloudBees website: • Website: https://www.cloudbees.com • CloudBees Jenkins Platform: https://www.cloudbees.com/products/cloudbees-jenkins-platform 55 Useful Links
  • 56. © 2016 CloudBees, Inc. All Rights Reserved.@oleg_nenashev, @cloudbees ,#CoDeSTHLM 56 Thank You! Where to find me: E-mail: onenashev@cloudbees.com GitHub: oleg-nenashev Twitter: @oleg_nenashev Want to get more from Jenkins? go.cloudbees.com