SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Jenkins World Tour 2015
London, UK 23-24 June
Footer
#jenkinsconf
Jenkins-based CI for heterogeneous
Hardware/Software projects
Oleg Nenashev
Jenkins Developer @ CloudBees
2
Footer
#jenkinsconf
> whoami
•  https://ru.linkedin.com/in/onenashev
•  Background: ~10 years of…
–  R&D: HW and Embedded systems
–  CI in HW, Embedded and EDA areas
–  Department-wide CI frameworks
•  Current:
–  Jenkins CI contributor
–  Jenkins Developer at CloudBees
–  PhD student, EDA Lab @ SPBPU
3
Footer
#jenkinsconf
> whoami --list jenkins
•  >6 years of Hudson/Jenkins experience
•  3 years of open-source contribution to Jenkins
•  Maintenance of large-scale installations
•  I maintain about 10 open-source plugins
•  Contributions to other Jenkins stuff and INFRA
•  Ownership
•  Job Restrictions
•  Role Strategy (legacy)
•  Custom Tools (legacy)
•  Extra Tool Installers
•  Cygwin Process Killer
Tool belts Ownership-based security
Footer
#jenkinsconf
Outline
•  CI in HW/Embedded world. Why Jenkins?
•  Integrating Jenkins with the common stuff
–  EDA tools, FPGA farms, Computing Grids
•  Several examples and case studies
•  Getting added value from CloudBees Jenkins
Platform
5
Footer
#jenkinsconf
Jenkins users from HW world
•  The most of HW companies have Jenkins instances
•  Examples from a 5min search in public materials
6
Footer
#jenkinsconf
Related talks / articles
•  Robert Martin, “Multi-Stage-CI with Jenkins in an Embedded
World” @ JUC2014/Berlin
•  Martin d’Anjou, “FPGA Continuous Integration with Jenkins”
@SNUG2013/Canada
•  Alan Fitch, “Continuous Integration for FPGA Design and
Verification” @ Verification Futures, 2015
•  JL Gray, Gordon McGregor, “A 30 Minute Project Makeover
Using Continuous Integration” @ DVCon, 2012
•  …
•  Sarah Woodall, “The Famous Cows of Cambridge: A Non-
Standard Use Case for Jenkins” @JUC2015/London
Footer
#jenkinsconf
INTRODUCTION
CI in HW/Embedded world
8
Footer
#jenkinsconf
What is a hardware product?
. . .
Not so obvious…
•  IP Libraries –
reusable blocks
•  Prototypes
•  Development kits
•  …
Footer
#jenkinsconf
HW Development Flow
10
Synthesis
Place & Route
RTL Design
Specification
= Compilation
= Linking
Design
= Coding
VHDL
Verilog / SystemVerilog
SystemC…
Verification
Packaging
Footer
#jenkinsconfHW CI Example
11
Get sources
SCMs
Binary repositories
Build artifacts
Setup environment
“Build” = S&P&R
“Test”
“Analyze”
Publish reports
Deploy artifacts
Static analysis
Formal verification
Timing analysis
Specialized tools
Unit tests
Integration tests
EDA Tools
Electronic
Design
Automation
Test results
Coverages
System resources utilization
Much
parallel
tasks in
flows
Footer
#jenkinsconf
Embedded SW build process
12
Other
software
Embedded
Software
•  Different tools, but the approaches are similar
•  Verification is a real challenge
Footer
#jenkinsconf
And what about an HW IP Product?
Hardware
part
External IP
Firmware /
Embedded
SW
External
SW
Development
tools / EDAs
Demo SW
Demo hardware
Developer kits
Yes, we
need to
automate
everything
“Main product”
Footer
#jenkinsconf
Welcome to CI hell!
•  Almost everything needs to be automated
•  Multiple technologies and tools
•  Unstable hardware & networks
•  Legacy stuff is everywhere
•  HW engineers are not SW experts
•  …
•  Limited resources
•  Limited OSS usage and contribution options
Footer
#jenkinsconf
Why Jenkins?
•  It’s a framework => you can do everything
•  It’s open-source:
–  You can customize Jenkins core and plugins
–  Plenty of available materials and examples
•  “Stable” LTS versions
•  Commercial support for self-hosted installations
Footer
#jenkinsconf
AREA SPECIFICS
•  EDA Software
•  Computing grids
•  FPGAs
16
Footer
#jenkinsconf
EDA Software
•  Almost no OSS plugins
–  Exception - Cadence vManager Plugin
•  Specifics:
–  Dozens of tools in a common design flow
–  Different platform requirements
–  Multiple tool versions are required
–  Big size of tools – up to 100 Gigabytes
–  Limited licenses being shared with externals
17
Footer
#jenkinsconf
EDA Software. Possible solution
•  Store tools on shared folders
–  On Windows services kohsuke/winsw/pull/71 may be used
–  Extra Tool Installers Plugin provide a stub installer
•  Access tools: Labels + Custom Tools Plugin
•  Idea of the plugin:
–  Configurable installers
–  Setup of a custom environment (PATH, env. vars)
–  Built-in versioning based on Extended Choice Parameter
18
Footer
#jenkinsconf
Custom Tools. Global Configuration
19
Can be stored remotely =>
automatic tool deployment
Node and global env. vars are supported
Footer
#jenkinsconf
Custom Tools. Job Configuration
20
Allow
versioning
Automatic
installation
Footer
#jenkinsconf
Custom Tools. Usage
21
In build steps:
In build launch dialog:
Footer
#jenkinsconf
EDA Software. Publishers
•  Jenkins has publishers for many SW dev. tools
–  Unit test results (xUnit et all.)
–  Performance test results
–  Coverages
•  No solutions for hardware, but you can use converters
•  Example for VCS coverages:
1.  Get an HTML or raw XML report
2.  Use XSLT to convert it to Cobertura format
3.  Publish data using a standard plugin
22
Footer
#jenkinsconf
EDA Software. Licenses
•  FLEX License Manager is everywhere in EDA
•  Main problem: shared usage of licenses
–  No sporadic prioritization in FLEX => long waiting
–  Dedicated licenses are not cost-effective
–  Limited availability of tools => custom accounts
•  Minimal solution – Throttling, custom “wait for a
license” scripts
•  Best solution - FLEX LM plugin, no OSS ones
23
Footer
#jenkinsconf
Hardware testing
•  Simulators – specialized EDA tools
•  Hardware – FPGAs, ASIC prototypes
•  Combined solutions (HW Accelerators, etc.)
24
Footer
#jenkinsconf
Cloudless skies
•  Simulation tests require…
•  Public/private clouds are not cost-effective
•  HW Companies mostly use computing grids
25
Thousands
CPU hours
Terabytes of
TMP files
and reports
All RAM
you have
Footer
#jenkinsconf
Computing grids
Examples:
•  Sun Grid Engine (SGE, UGE)
•  Platform Load Sharing Facility (LSF)
•  NetBatch @ Intel
•  …
26
•  Datacenter-wide grids
•  Sharing across
departments
“We run hello-world in 2 hours”
Footer
#jenkinsconf
Computing Grids Usage
27
Manage tasks from
CLI (script steps)
“Transparent” –
launch Jenkins nodes
on the grid
•  Use-case: Legacy scripts
•  Difficult management (job
abort, status polling, etc.)
•  Manual launch
•  “Start by script on Master”
•  LSF Cloud Plugin
•  No FOSS plugins for
other grids L
“Launch task” build &
workflow steps
•  No FOSS plugins !
Footer
#jenkinsconf
Simulations are slow, so…
28
•  S - EZ1CUSB @ http://www.easyfpga.com
•  M - http://www.xilinx.com/univ/xupv5-lx110t.htm
•  L - HAPS-64, www.synopsys.com
S - x00$
M – x000$
L –x0000$
FPGA accelerators &
prototyping boards
Footer
#jenkinsconf
29
And XXL…
•  http://blogs.synopsys.com/
breakingthethreelaws/2014/04/
the-secret-ninja-fu-for-higher-
performance-prototype-
operation/
HAPS S96
Guess the price…
Could CI have
its own stuff?
Your CPU
prototype
is here
Footer
#jenkinsconf
Mapping CI to existing HW
30
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 nodes on
dev. laptops”
Frankenboards
“We built it from the
garbage we had”
Infrastructure after
the “budget
optimization”
L
L
L
L
L
Footer
#jenkinsconf
How it works
31
Power
When it hangs
“Deploy bit-files”
Blasting cables
Debugging cables,
firmware upload
We don’t
change
them, huh?
Jenkins
node
drivers
tools
peripherals
Attached hardware
runtime
Footer
#jenkinsconf
How do I implement jobs?
•  Throttling of builds
•  Shared functionality is decoupled to external project
(Parameterized Trigger or Template Project)
–  FPGA blasting
–  Firmware Upload
–  Run of a test case (binary upload) using a debugger provided
by the toolchain (gdb, etc.)
–  etc.
•  Failover and restart on infra issues => Naginator
32
Footer
#jenkinsconf
Throttling of FPGA jobs
•  Throttle Concurrent Builds Plugin
–  Jobs can be throttled by a category
–  Performance issues (esp. till 1.609.1), can be partially solved
by Label Throttle plugin (CloudBees Jenkins Enterprise)
–  Job developers must follow rules, no enforcement
Global configuration:
33
Footer
#jenkinsconf
Throttling of FPGA jobs
Job configuration:
34
Footer
#jenkinsconf
FPGAs monitoring
•  Impossible to use an external system – shared resources
•  Solution in Jenkins:
1.  Use periodic Multi-configuration Matrix Job for a monitoring
2.  Use Elastic Axis to generate label axes by an expression
3.  Run a spot-check on FPGA with blasting and a firmware test
4.  If it fails, disable the node using System Groovy Script
5.  Send notifications to INFRA admins
35
Footer
#jenkinsconf
ENTERPRISE FEATURES
Getting added value from CloudBees Jenkins Platform
36
CJE – CloudBees Jenkins Enterprise
CJOC – CloudBees Jenkins Operations Center
Footer
#jenkinsconf
Common features All common features are
applicable, out of the scope
See CloudBees Docs
Footer
#jenkinsconf
Templates!
•  OSS Plugins have a limited functionality:
–  Template Project, Inheritance Plugin, Job Generator, etc.
•  Parameterized trigger causes UI overheads
–  Multi-page configuration in UI: “Trigger with several
parameters => wait => copy artifacts => analyze”
•  Templates allow to save much time on the
implementations
•  Workflow + Scriptler Plugin are tasty as well
38
Footer
#jenkinsconf
Easy failover implementation
•  Workflow allows to transparently re-run
unreliable stages on other nodes. for (def board : boards) {
try {
// blasting
…
// run test
…
// test finished
break;
} catch (FPGAError error) {
// try another board
continue;
}
}
System failure
Node #1 Node #2. . .
. . .
Footer
#jenkinsconf
Shared slaves for rare hardware
•  Use-case: multiple Jenkins instances in a single org
•  Instances may require a specific resource
•  No cross-Jenkins throttling features
•  Out-of-the-box throttling in CJOC shared slaves
40
Footer
#jenkinsconf
Durable tasks
•  Endurance tests may take weeks
•  Jenkins slaves may be disconnected, masters can
be restarted for maintenance purposes
•  No stable solutions in Jenkins OSS if you don’t use
computing grids
•  Durable tasks allow to overcome the issue in many
cases
–  Shell scripts are running independently
–  Jenkins polls for a completion asynchronously
–  Serious limitation: cross-site installations
41
Footer
#jenkinsconf
Summary
•  Jenkins is not only about software
•  Jenkins can be used to run CI in
hardware projects
•  You can use Jenkins even without
domain-specific plugins
•  CJE/CJOC features greatly help to
decrease the maintenance cost
42
Footer
#jenkinsconf
My HW-related wish-list
•  Sun Grid Engine Cloud plugin
•  FLEX LM plugin
•  Flexible Windows Services
•  Plugins for common EDA tools and report formats
–  Build steps are OK => just use CLI utilities
–  Publishing requires much efforts
–  Logs parsing would be a killer feature
43
Footer
#jenkinsconf
Q&A

Mais conteúdo relacionado

Mais procurados

Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJirayut Nimsaeng
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationBenedek Menesi
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBACKublr
 
The TLS/SSLv3 renegotiation vulnerability explained
The TLS/SSLv3 renegotiation vulnerability explainedThe TLS/SSLv3 renegotiation vulnerability explained
The TLS/SSLv3 renegotiation vulnerability explainedThierry Zoller
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymenthyeongchae lee
 
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...Raphaël PINSON
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automateIlkka Tengvall
 
Apache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoDatabricks
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDocker, Inc.
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
 
Hashicorp Vault: Open Source Secrets Management at #OPEN18
Hashicorp Vault: Open Source Secrets Management at #OPEN18Hashicorp Vault: Open Source Secrets Management at #OPEN18
Hashicorp Vault: Open Source Secrets Management at #OPEN18Kangaroot
 
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveMichal Rostecki
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker ImagesBrian DeHamer
 
200308 Active Directory Security
200308 Active Directory Security200308 Active Directory Security
200308 Active Directory SecurityArmando Leon
 

Mais procurados (20)

Joomla Continuous Delivery with Docker
Joomla Continuous Delivery with DockerJoomla Continuous Delivery with Docker
Joomla Continuous Delivery with Docker
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBAC
 
cilium-public.pdf
cilium-public.pdfcilium-public.pdf
cilium-public.pdf
 
The TLS/SSLv3 renegotiation vulnerability explained
The TLS/SSLv3 renegotiation vulnerability explainedThe TLS/SSLv3 renegotiation vulnerability explained
The TLS/SSLv3 renegotiation vulnerability explained
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
 
Manual modem net
Manual modem netManual modem net
Manual modem net
 
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automate
 
Apache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan FlonenkoApache Spark on K8S and HDFS Security with Ilan Flonenko
Apache Spark on K8S and HDFS Security with Ilan Flonenko
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
 
Automated master failover
Automated master failoverAutomated master failover
Automated master failover
 
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
 
Hashicorp Vault: Open Source Secrets Management at #OPEN18
Hashicorp Vault: Open Source Secrets Management at #OPEN18Hashicorp Vault: Open Source Secrets Management at #OPEN18
Hashicorp Vault: Open Source Secrets Management at #OPEN18
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
 
Ldap intro
Ldap introLdap intro
Ldap intro
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker Images
 
200308 Active Directory Security
200308 Active Directory Security200308 Active Directory Security
200308 Active Directory Security
 

Destaque

Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...
Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...
Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...Selena Ricks
 
Forever Living India January_2017 Magazine
Forever Living India January_2017 MagazineForever Living India January_2017 Magazine
Forever Living India January_2017 MagazineMas ForeverLiving
 
Waste Management Training
Waste Management TrainingWaste Management Training
Waste Management TrainingJames Chapple
 
Evaluation question 1- In what ways does your media use, develop or challenge...
Evaluation question 1- In what ways does your media use, develop or challenge...Evaluation question 1- In what ways does your media use, develop or challenge...
Evaluation question 1- In what ways does your media use, develop or challenge...Pip Cole
 
Renewables & disruptive technologies
Renewables & disruptive technologiesRenewables & disruptive technologies
Renewables & disruptive technologiesShivam Pandey
 
Antique Automobile Pictures 1900-1930
Antique Automobile Pictures 1900-1930Antique Automobile Pictures 1900-1930
Antique Automobile Pictures 1900-1930Joke Channel
 
Digital Agriculture | Data for Research and Decision
Digital Agriculture | Data for Research and DecisionDigital Agriculture | Data for Research and Decision
Digital Agriculture | Data for Research and DecisionHelen Thompson
 
Data-driven behavioural modelling of residential water consumption to inform ...
Data-driven behavioural modelling of residential water consumption to inform ...Data-driven behavioural modelling of residential water consumption to inform ...
Data-driven behavioural modelling of residential water consumption to inform ...SmartH2O
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesSteffen Gebert
 
From Monolith to Microservices – and Beyond!
From Monolith to Microservices – and Beyond!From Monolith to Microservices – and Beyond!
From Monolith to Microservices – and Beyond!Jules Pierre-Louis
 
Visual thinking i comunicació. Noves 'cartografies'
Visual thinking i comunicació. Noves 'cartografies'Visual thinking i comunicació. Noves 'cartografies'
Visual thinking i comunicació. Noves 'cartografies'Antoni
 

Destaque (16)

Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...
Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...
Power Up Your People: Emerging Tech and the Frictionless Employee Experience ...
 
Forever Living India January_2017 Magazine
Forever Living India January_2017 MagazineForever Living India January_2017 Magazine
Forever Living India January_2017 Magazine
 
Bloque 1 tatiana
Bloque 1 tatiana  Bloque 1 tatiana
Bloque 1 tatiana
 
Waste Management Training
Waste Management TrainingWaste Management Training
Waste Management Training
 
Taichplay
TaichplayTaichplay
Taichplay
 
Diapositivas de la tesis
Diapositivas de la tesisDiapositivas de la tesis
Diapositivas de la tesis
 
Evaluation question 1- In what ways does your media use, develop or challenge...
Evaluation question 1- In what ways does your media use, develop or challenge...Evaluation question 1- In what ways does your media use, develop or challenge...
Evaluation question 1- In what ways does your media use, develop or challenge...
 
Renewables & disruptive technologies
Renewables & disruptive technologiesRenewables & disruptive technologies
Renewables & disruptive technologies
 
Teoria del-color
Teoria del-colorTeoria del-color
Teoria del-color
 
Antique Automobile Pictures 1900-1930
Antique Automobile Pictures 1900-1930Antique Automobile Pictures 1900-1930
Antique Automobile Pictures 1900-1930
 
Digital Agriculture | Data for Research and Decision
Digital Agriculture | Data for Research and DecisionDigital Agriculture | Data for Research and Decision
Digital Agriculture | Data for Research and Decision
 
Data-driven behavioural modelling of residential water consumption to inform ...
Data-driven behavioural modelling of residential water consumption to inform ...Data-driven behavioural modelling of residential water consumption to inform ...
Data-driven behavioural modelling of residential water consumption to inform ...
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
5th Lent A
5th Lent A5th Lent A
5th Lent A
 
From Monolith to Microservices – and Beyond!
From Monolith to Microservices – and Beyond!From Monolith to Microservices – and Beyond!
From Monolith to Microservices – and Beyond!
 
Visual thinking i comunicació. Noves 'cartografies'
Visual thinking i comunicació. Noves 'cartografies'Visual thinking i comunicació. Noves 'cartografies'
Visual thinking i comunicació. Noves 'cartografies'
 

Semelhante a JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardware/Software Projects

Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew Bayer
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...CloudBees
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"CloudBees
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Taming iOS Testing at Square -- JUC West 2015
Taming iOS Testing at Square -- JUC West 2015Taming iOS Testing at Square -- JUC West 2015
Taming iOS Testing at Square -- JUC West 2015Michael Tauraso
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...CloudBees
 
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Black Duck by Synopsys
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsNigel Charman
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkinsecubemarketing
 
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...CloudBees
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFVMware Tanzu
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFAltoros
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonVladLica
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
 

Semelhante a JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardware/Software Projects (20)

Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Build Time Hacking
Build Time HackingBuild Time Hacking
Build Time Hacking
 
Taming iOS Testing at Square -- JUC West 2015
Taming iOS Testing at Square -- JUC West 2015Taming iOS Testing at Square -- JUC West 2015
Taming iOS Testing at Square -- JUC West 2015
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkins
 
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
JUC Europe 2015: The Famous Cows of Cambridge: A Non-Standard Use Case for Je...
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCF
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCF
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Juc boston2014.pptx
Juc boston2014.pptxJuc boston2014.pptx
Juc boston2014.pptx
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 

Mais de CloudBees

JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerCloudBees
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyCloudBees
 
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)CloudBees
 
JUC Europe 2015: Jenkins Made Easy
JUC Europe 2015: Jenkins Made EasyJUC Europe 2015: Jenkins Made Easy
JUC Europe 2015: Jenkins Made EasyCloudBees
 
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and MaintenanceJUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and MaintenanceCloudBees
 
JUC Europe 2015: Hey! What Did We Just Release?
JUC Europe 2015: Hey! What Did We Just Release?JUC Europe 2015: Hey! What Did We Just Release?
JUC Europe 2015: Hey! What Did We Just Release?CloudBees
 
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...CloudBees
 
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data ProjectsJUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data ProjectsCloudBees
 
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...CloudBees
 
JUC Europe 2015: Enabling Continuous Delivery for Major Retailers
JUC Europe 2015: Enabling Continuous Delivery for Major RetailersJUC Europe 2015: Enabling Continuous Delivery for Major Retailers
JUC Europe 2015: Enabling Continuous Delivery for Major RetailersCloudBees
 
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...CloudBees
 
JUC Europe 2015: Evolving the Jenkins UI
JUC Europe 2015: Evolving the Jenkins UIJUC Europe 2015: Evolving the Jenkins UI
JUC Europe 2015: Evolving the Jenkins UICloudBees
 
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache MesosJUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache MesosCloudBees
 
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...CloudBees
 
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...CloudBees
 
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL PluginJUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL PluginCloudBees
 
JUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsJUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsCloudBees
 
Pimp your jenkins platform with docker - Devops.com 2015/11
Pimp your jenkins platform with docker - Devops.com 2015/11Pimp your jenkins platform with docker - Devops.com 2015/11
Pimp your jenkins platform with docker - Devops.com 2015/11CloudBees
 
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and AnalyticsAnalyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and AnalyticsCloudBees
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014CloudBees
 

Mais de CloudBees (20)

JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
JUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and GroovyJUC Europe 2015: Plugin Development with Gradle and Groovy
JUC Europe 2015: Plugin Development with Gradle and Groovy
 
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
JUC Europe 2015: Multi-Node Environment as a Jenkins Slave (Compound-Slave)
 
JUC Europe 2015: Jenkins Made Easy
JUC Europe 2015: Jenkins Made EasyJUC Europe 2015: Jenkins Made Easy
JUC Europe 2015: Jenkins Made Easy
 
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and MaintenanceJUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
JUC Europe 2015: Scaling of Jenkins Pipeline Creation and Maintenance
 
JUC Europe 2015: Hey! What Did We Just Release?
JUC Europe 2015: Hey! What Did We Just Release?JUC Europe 2015: Hey! What Did We Just Release?
JUC Europe 2015: Hey! What Did We Just Release?
 
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
JUC Europe 2015: Orchestrating Your Pipelines with Jenkins, Python and the Je...
 
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data ProjectsJUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
JUC Europe 2015: Jenkins Pipeline for Continuous Delivery of Big Data Projects
 
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...
JUC Europe 2015: Optimizing Your CI: Lessons Learned from a Successful Jenkin...
 
JUC Europe 2015: Enabling Continuous Delivery for Major Retailers
JUC Europe 2015: Enabling Continuous Delivery for Major RetailersJUC Europe 2015: Enabling Continuous Delivery for Major Retailers
JUC Europe 2015: Enabling Continuous Delivery for Major Retailers
 
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
JUC Europe 2015: Making Strides towards Enterprise-Scale DevOps...with Jenkin...
 
JUC Europe 2015: Evolving the Jenkins UI
JUC Europe 2015: Evolving the Jenkins UIJUC Europe 2015: Evolving the Jenkins UI
JUC Europe 2015: Evolving the Jenkins UI
 
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache MesosJUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
 
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
JUC 2015 - Keynote Address and Opening Remarks by Kohsuke Kawaguchi, Founder,...
 
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
 
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL PluginJUC Europe 2015: Configuration as Code: The Job DSL Plugin
JUC Europe 2015: Configuration as Code: The Job DSL Plugin
 
JUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsJUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with Jenkins
 
Pimp your jenkins platform with docker - Devops.com 2015/11
Pimp your jenkins platform with docker - Devops.com 2015/11Pimp your jenkins platform with docker - Devops.com 2015/11
Pimp your jenkins platform with docker - Devops.com 2015/11
 
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and AnalyticsAnalyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
 

Último

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Último (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardware/Software Projects

  • 1. Jenkins World Tour 2015 London, UK 23-24 June
  • 2. Footer #jenkinsconf Jenkins-based CI for heterogeneous Hardware/Software projects Oleg Nenashev Jenkins Developer @ CloudBees 2
  • 3. Footer #jenkinsconf > whoami •  https://ru.linkedin.com/in/onenashev •  Background: ~10 years of… –  R&D: HW and Embedded systems –  CI in HW, Embedded and EDA areas –  Department-wide CI frameworks •  Current: –  Jenkins CI contributor –  Jenkins Developer at CloudBees –  PhD student, EDA Lab @ SPBPU 3
  • 4. Footer #jenkinsconf > whoami --list jenkins •  >6 years of Hudson/Jenkins experience •  3 years of open-source contribution to Jenkins •  Maintenance of large-scale installations •  I maintain about 10 open-source plugins •  Contributions to other Jenkins stuff and INFRA •  Ownership •  Job Restrictions •  Role Strategy (legacy) •  Custom Tools (legacy) •  Extra Tool Installers •  Cygwin Process Killer Tool belts Ownership-based security
  • 5. Footer #jenkinsconf Outline •  CI in HW/Embedded world. Why Jenkins? •  Integrating Jenkins with the common stuff –  EDA tools, FPGA farms, Computing Grids •  Several examples and case studies •  Getting added value from CloudBees Jenkins Platform 5
  • 6. Footer #jenkinsconf Jenkins users from HW world •  The most of HW companies have Jenkins instances •  Examples from a 5min search in public materials 6
  • 7. Footer #jenkinsconf Related talks / articles •  Robert Martin, “Multi-Stage-CI with Jenkins in an Embedded World” @ JUC2014/Berlin •  Martin d’Anjou, “FPGA Continuous Integration with Jenkins” @SNUG2013/Canada •  Alan Fitch, “Continuous Integration for FPGA Design and Verification” @ Verification Futures, 2015 •  JL Gray, Gordon McGregor, “A 30 Minute Project Makeover Using Continuous Integration” @ DVCon, 2012 •  … •  Sarah Woodall, “The Famous Cows of Cambridge: A Non- Standard Use Case for Jenkins” @JUC2015/London
  • 9. Footer #jenkinsconf What is a hardware product? . . . Not so obvious… •  IP Libraries – reusable blocks •  Prototypes •  Development kits •  …
  • 10. Footer #jenkinsconf HW Development Flow 10 Synthesis Place & Route RTL Design Specification = Compilation = Linking Design = Coding VHDL Verilog / SystemVerilog SystemC… Verification Packaging
  • 11. Footer #jenkinsconfHW CI Example 11 Get sources SCMs Binary repositories Build artifacts Setup environment “Build” = S&P&R “Test” “Analyze” Publish reports Deploy artifacts Static analysis Formal verification Timing analysis Specialized tools Unit tests Integration tests EDA Tools Electronic Design Automation Test results Coverages System resources utilization Much parallel tasks in flows
  • 12. Footer #jenkinsconf Embedded SW build process 12 Other software Embedded Software •  Different tools, but the approaches are similar •  Verification is a real challenge
  • 13. Footer #jenkinsconf And what about an HW IP Product? Hardware part External IP Firmware / Embedded SW External SW Development tools / EDAs Demo SW Demo hardware Developer kits Yes, we need to automate everything “Main product”
  • 14. Footer #jenkinsconf Welcome to CI hell! •  Almost everything needs to be automated •  Multiple technologies and tools •  Unstable hardware & networks •  Legacy stuff is everywhere •  HW engineers are not SW experts •  … •  Limited resources •  Limited OSS usage and contribution options
  • 15. Footer #jenkinsconf Why Jenkins? •  It’s a framework => you can do everything •  It’s open-source: –  You can customize Jenkins core and plugins –  Plenty of available materials and examples •  “Stable” LTS versions •  Commercial support for self-hosted installations
  • 16. Footer #jenkinsconf AREA SPECIFICS •  EDA Software •  Computing grids •  FPGAs 16
  • 17. Footer #jenkinsconf EDA Software •  Almost no OSS plugins –  Exception - Cadence vManager Plugin •  Specifics: –  Dozens of tools in a common design flow –  Different platform requirements –  Multiple tool versions are required –  Big size of tools – up to 100 Gigabytes –  Limited licenses being shared with externals 17
  • 18. Footer #jenkinsconf EDA Software. Possible solution •  Store tools on shared folders –  On Windows services kohsuke/winsw/pull/71 may be used –  Extra Tool Installers Plugin provide a stub installer •  Access tools: Labels + Custom Tools Plugin •  Idea of the plugin: –  Configurable installers –  Setup of a custom environment (PATH, env. vars) –  Built-in versioning based on Extended Choice Parameter 18
  • 19. Footer #jenkinsconf Custom Tools. Global Configuration 19 Can be stored remotely => automatic tool deployment Node and global env. vars are supported
  • 20. Footer #jenkinsconf Custom Tools. Job Configuration 20 Allow versioning Automatic installation
  • 21. Footer #jenkinsconf Custom Tools. Usage 21 In build steps: In build launch dialog:
  • 22. Footer #jenkinsconf EDA Software. Publishers •  Jenkins has publishers for many SW dev. tools –  Unit test results (xUnit et all.) –  Performance test results –  Coverages •  No solutions for hardware, but you can use converters •  Example for VCS coverages: 1.  Get an HTML or raw XML report 2.  Use XSLT to convert it to Cobertura format 3.  Publish data using a standard plugin 22
  • 23. Footer #jenkinsconf EDA Software. Licenses •  FLEX License Manager is everywhere in EDA •  Main problem: shared usage of licenses –  No sporadic prioritization in FLEX => long waiting –  Dedicated licenses are not cost-effective –  Limited availability of tools => custom accounts •  Minimal solution – Throttling, custom “wait for a license” scripts •  Best solution - FLEX LM plugin, no OSS ones 23
  • 24. Footer #jenkinsconf Hardware testing •  Simulators – specialized EDA tools •  Hardware – FPGAs, ASIC prototypes •  Combined solutions (HW Accelerators, etc.) 24
  • 25. Footer #jenkinsconf Cloudless skies •  Simulation tests require… •  Public/private clouds are not cost-effective •  HW Companies mostly use computing grids 25 Thousands CPU hours Terabytes of TMP files and reports All RAM you have
  • 26. Footer #jenkinsconf Computing grids Examples: •  Sun Grid Engine (SGE, UGE) •  Platform Load Sharing Facility (LSF) •  NetBatch @ Intel •  … 26 •  Datacenter-wide grids •  Sharing across departments “We run hello-world in 2 hours”
  • 27. Footer #jenkinsconf Computing Grids Usage 27 Manage tasks from CLI (script steps) “Transparent” – launch Jenkins nodes on the grid •  Use-case: Legacy scripts •  Difficult management (job abort, status polling, etc.) •  Manual launch •  “Start by script on Master” •  LSF Cloud Plugin •  No FOSS plugins for other grids L “Launch task” build & workflow steps •  No FOSS plugins !
  • 28. Footer #jenkinsconf Simulations are slow, so… 28 •  S - EZ1CUSB @ http://www.easyfpga.com •  M - http://www.xilinx.com/univ/xupv5-lx110t.htm •  L - HAPS-64, www.synopsys.com S - x00$ M – x000$ L –x0000$ FPGA accelerators & prototyping boards
  • 30. Footer #jenkinsconf Mapping CI to existing HW 30 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 nodes on dev. laptops” Frankenboards “We built it from the garbage we had” Infrastructure after the “budget optimization” L L L L L
  • 31. Footer #jenkinsconf How it works 31 Power When it hangs “Deploy bit-files” Blasting cables Debugging cables, firmware upload We don’t change them, huh? Jenkins node drivers tools peripherals Attached hardware runtime
  • 32. Footer #jenkinsconf How do I implement jobs? •  Throttling of builds •  Shared functionality is decoupled to external project (Parameterized Trigger or Template Project) –  FPGA blasting –  Firmware Upload –  Run of a test case (binary upload) using a debugger provided by the toolchain (gdb, etc.) –  etc. •  Failover and restart on infra issues => Naginator 32
  • 33. Footer #jenkinsconf Throttling of FPGA jobs •  Throttle Concurrent Builds Plugin –  Jobs can be throttled by a category –  Performance issues (esp. till 1.609.1), can be partially solved by Label Throttle plugin (CloudBees Jenkins Enterprise) –  Job developers must follow rules, no enforcement Global configuration: 33
  • 34. Footer #jenkinsconf Throttling of FPGA jobs Job configuration: 34
  • 35. Footer #jenkinsconf FPGAs monitoring •  Impossible to use an external system – shared resources •  Solution in Jenkins: 1.  Use periodic Multi-configuration Matrix Job for a monitoring 2.  Use Elastic Axis to generate label axes by an expression 3.  Run a spot-check on FPGA with blasting and a firmware test 4.  If it fails, disable the node using System Groovy Script 5.  Send notifications to INFRA admins 35
  • 36. Footer #jenkinsconf ENTERPRISE FEATURES Getting added value from CloudBees Jenkins Platform 36 CJE – CloudBees Jenkins Enterprise CJOC – CloudBees Jenkins Operations Center
  • 37. Footer #jenkinsconf Common features All common features are applicable, out of the scope See CloudBees Docs
  • 38. Footer #jenkinsconf Templates! •  OSS Plugins have a limited functionality: –  Template Project, Inheritance Plugin, Job Generator, etc. •  Parameterized trigger causes UI overheads –  Multi-page configuration in UI: “Trigger with several parameters => wait => copy artifacts => analyze” •  Templates allow to save much time on the implementations •  Workflow + Scriptler Plugin are tasty as well 38
  • 39. Footer #jenkinsconf Easy failover implementation •  Workflow allows to transparently re-run unreliable stages on other nodes. for (def board : boards) { try { // blasting … // run test … // test finished break; } catch (FPGAError error) { // try another board continue; } } System failure Node #1 Node #2. . . . . .
  • 40. Footer #jenkinsconf Shared slaves for rare hardware •  Use-case: multiple Jenkins instances in a single org •  Instances may require a specific resource •  No cross-Jenkins throttling features •  Out-of-the-box throttling in CJOC shared slaves 40
  • 41. Footer #jenkinsconf Durable tasks •  Endurance tests may take weeks •  Jenkins slaves may be disconnected, masters can be restarted for maintenance purposes •  No stable solutions in Jenkins OSS if you don’t use computing grids •  Durable tasks allow to overcome the issue in many cases –  Shell scripts are running independently –  Jenkins polls for a completion asynchronously –  Serious limitation: cross-site installations 41
  • 42. Footer #jenkinsconf Summary •  Jenkins is not only about software •  Jenkins can be used to run CI in hardware projects •  You can use Jenkins even without domain-specific plugins •  CJE/CJOC features greatly help to decrease the maintenance cost 42
  • 43. Footer #jenkinsconf My HW-related wish-list •  Sun Grid Engine Cloud plugin •  FLEX LM plugin •  Flexible Windows Services •  Plugins for common EDA tools and report formats –  Build steps are OK => just use CLI utilities –  Publishing requires much efforts –  Logs parsing would be a killer feature 43