SlideShare a Scribd company logo
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Continuous Delivery with Jenkins Pipelines (incl.
Advanced Topics)
Roman Pickl
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
• 10+ years’ experience in integrating
transport systems
• 22 mobility Apps in the stores
• 43+ million requests / month
• 500.000+ unique users / month
At a glance
qando
Vienna, Linz, Graz,
Salzburg, Klagenfurt.
SMILE
Lighthouse project for
integrated mobility
Wien Mobil Lab
Vienna
FluidHub
Powering the Integrated Mobility and MaaS Ecosystem
2009
avv connect
Aachen Region, North
Rhine-Westphalia.
2014
NUMO
Vienna
2012 2015 2016
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
How did I end up here?
• Roman Pickl (@rompic)
• CTO @ Fluidtime
• In charge of the technical development
• Uses Jenkins since 2012
• Loves CI/CD/DevOps
• Here to learn
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Continuous Delivery (CD)
Automated implementation of your system‘s
build, deploy, test, release process
•Every change results in a build
•Every build is a release candidate
•Delivery can be done at any time, on any
environment
à Make releases a non-event
Deployment Pipeline provides:
•Visibility
•Feedback
•Control
Read these books!
Jez Humble on Continuous Delivery(2012): https://www.youtube.com/watch?v=skLJuksCRTw
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Deployment Pipelines (Let’s build it with jenkins)
(Jez Humble D. F., Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation, 2010)
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Jenkins
#1 Continuous Integration and Delivery server
•Created by Kohsuke Kawaguchi
•Initial Release 2005 (Hudson)
•Open Source (MIT License)
•Active and independent community (https://jenkins.io)
•155,000 active installations
•1,500+ plugins (!)
•Since 2.0 Pipelines (April 2016) are first class citizens
•Pipeline as Code (Jenkinsfile).
•New User Experience “Blue Ocean” with Blue Ocean
Pipeline Editor
http://dduportal.github.io/presentations/mixit-2017-jenkins-pipeline/slides.html#/meet_jenkins
https://jenkins.io/blog/2017/04/05/say-hello-blueocean-1-0/
http://stats.jenkins.io/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Welcome Blue Ocean!
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Create a Pipeline Wizard
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Jenkinsfile
Written in a Groovy DSL
“Jenkinsfile” in top level folder (different path
possible since June 2017 https://issues.jenkins-
ci.org/browse/JENKINS-34561)
Store in SCM (e.g. GIT) for additional benefits
•Code review/iteration
•Audit trail
•Single source of truth
Supports two syntaxes (can be mixed)
•Declarative pipelines (easier; new; 1.0 Feb 2017)
•Scripted pipelines (more powerful)
https://jenkins.io/doc/book/pipeline/jenkinsfile/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Scripted vs. Declarative
Scripted Pipelines: Declarative Pipeline:
https://jenkins.io/doc/book/pipeline/syntax/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Scripted vs. Declarative
Scripted Pipeline: Declarative Pipeline:
https://jenkins.io/doc/book/pipeline/syntax/
• imperative programming model
• fully featured programming environment,
• higher flexibility and extensibility
• very few limits
=> for power-users and more complex requirements
• declarative programming model
• simpler and more opinionated syntax for authoring
Jenkins Pipeline.
• Allows for validation and a visual editor
• limits what is available to the user
=> ideal choice for simpler continuous delivery
pipelinesBoth:
• use Groovy
• same Pipeline sub-system underneath
• mostly use same steps
• able to utilize Shared Libraries
=> can be mixed using the script step
See https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/ for a more complex example of
migrating a freestyle job to a declarative/scripted pipeline.
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
script Step
• takes a block of Scripted Pipeline &
executes that in the Declarative Pipeline
• can provide a useful "escape hatch".
• script blocks of non-trivial size and/or
complexity should be moved into Shared
Libraries
https://jenkins.io/doc/book/pipeline/syntax/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Settings
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Stages
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Parallel Execution
With
declarative1.2
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Approval
...
Deploy to Stage, Deploy Live, Release omitted here
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Post Build Notifications
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Demo
1. docker run -p 8080:8080 jenkinsci/blueocean (add –p 44444:44444 or any other port
to try the ssh linter)
2. Go to http://localhost:8080/
3. Unlock jenkins with initialpw from log file
4. Install suggested plugins (you may have to continue the process in case any plugins are
broken and update plugins later on)
5. Create admin user / or continue with admin and initalpw
6. Open http://localhost:8080/blue/pipelines
7. Generate new Pipeline with Github repository
8. Create Jenkinsfile (e.g. https://github.com/rompic/jenkinspipeline)
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Blue Ocean 1.3.3 released 16.11.2017
• https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin
• Latest additions
• JIRA integration
• Declarative Pipeline version 1.2 support
• Support of different Repositories
Public roadmap
https://jenkins.io/projects/blueocean/roadmap/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Overview
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Approval
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Detail
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Multi branch support
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Multi branch (When)
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Pipeline Development and Advanced Tools
• Blue Ocean Pipeline Editor
• Snippet Generator
• IntelliJ IDEA GDSL – Autocomplete
• Command-line Pipeline Linter
• Replay Feature
• Unit Testing Jenkins Pipelines
• Shared Libaries
https://jenkins.io/doc/book/pipeline/development/
https://jenkins.io/doc/book/pipeline/shared-libraries/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Pipeline Editor
GitLab currently not supported (planned! https://issues.jenkins-ci.org/browse/JENKINS-43148)
Workaround: http://localhost:8080/blue/organizations/jenkins/pipeline-editor/
Ctrl-S / Cmd-S to open the load save dialog
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Snippet generator
http://localhost:8080/pipeline-syntax
https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
IntelliJ IDEA GDSL - Autocomplete
• Autocompletion of steps for scripted pipelines
• Install Groovy Plugin
• Download http://localhost:8080/pipeline-syntax/gdsl
• Add it as e.g. pipeline.gdsl to your projects src path
See
https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
https://stackoverflow.com/questions/41062514/use-gdsl-file-in-a-java-project-in-intellij
https://stackoverflow.com/a/41149255/3165782
for setting it up.
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Command-line Pipeline Linter
Validate Declarative Pipelines from the cli before actually running it/checking it in.
See https://jenkins.io/doc/book/pipeline/development/#linter for details. Remember to
enable SSH access, expose a port on your docker container and add ssh key to try this!
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Replay Feature
• Allows for quick modifications and execution of an existing (valid!)
Pipeline without changing the Pipeline configuration or creating a new
commit.
• Once you are satisfied with the changes, you can use Replay to view
them again, copy them back to your Pipeline job or Jenkinsfile, and then
commit them using your usual engineering processes
https://jenkins.io/doc/book/pipeline/development/
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Shared Libraries
Share parts of Pipelines between various
projects to reduce redundancies and
keep code "DRY“.
Functions can than be called from
Jenkinsfiles.
See
https://jenkins.io/doc/book/pipeline/shar
ed-libraries/
and
https://jenkins.io/blog/2017/10/02/pipe
line-templates-with-shared-libraries/
for more details.
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Unit Testing Jenkins Pipelines
•Allows to unit test Pipelines and Shared Libraries before running them in full
•Provides a mock execution environment that can be used to check for expected behavior
•Still quite rough around the edges. (e.g. no support for declarative pipeline yet
https://github.com/lesfurets/JenkinsPipelineUnit/pull/13)
See:
https://github.com/lesfurets/JenkinsPipelineUnit
https://github.com/lesfurets/JenkinsPipelineUnit/blob/master/README.md
https://issues.jenkins-ci.org/browse/JENKINS-33925
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Things missing / Things to come
Missing:
• Support for definition of variables in declarative pipelines (see workaround in
https://issues.jenkins-ci.org/browse/JENKINS-41335)
• Keep build forever (https://issues.jenkins-ci.org/browse/JENKINS-39028 ;
workaround via shared lib)
• Restart stages for pipelines (checkpoint as commercial feature, https://issues.jenkins-
ci.org/browse/JENKINS-33846 ; feature for declarative pipelines planned:
https://issues.jenkins-ci.org/browse/JENKINS-45455 )
To Come:
• Multiple jenkins files
• More editor coverage of declaration syntax
• jenkins pipeline support for changelog and changesets with when keyword
• GitLab read/write support
• ...
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Website: https://jenkins.io
Blog: https://jenkins.io/node/
https://www.slideshare.net/legrimpeur/belgium-jenkins-area-meetup-jenkins-blueocean-
and-declarative-pipelines
Getting Started
https://jenkins.io/doc/book/getting-started/
https://jenkins.io/doc/book/pipeline/syntax/
https://jenkins.io/doc/pipeline/steps/
https://jenkins.io/doc/book/blueocean/getting-started/
https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/getting%20started
https://jenkins.io/blog/2017/05/18/pipeline-dev-tools/
Further references & information I
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Docker Files:
https://github.com/jenkinsci/docker/blob/master/README.md
https://hub.docker.com/r/jenkinsci/blueocean/
Further references & information II
© 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com
Contact
Roman Pickl (@rompic)
roman.pickl@fluidtime.com
Fluidtime Data Services GmbH
Neubaugasse 12-14/25
A–1070 Wien
Tel +43 (0)1 5860 180
www.fluidtime.com

More Related Content

What's hot

Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Vietnam Open Infrastructure User Group
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
XavierPestel
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
Eduardo Garcia Moyano
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
Gong Haibing
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
Steffen Gebert
 
Pulumi. Modern Infrastructure as Code.
Pulumi. Modern Infrastructure as Code.Pulumi. Modern Infrastructure as Code.
Pulumi. Modern Infrastructure as Code.
Yurii Bychenok
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...
LibbySchulze
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting Kubernetes
NGINX, Inc.
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
Julien Pivotto
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing data
DataWorks Summit/Hadoop Summit
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
Ajeet Singh Raina
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
Joe Stein
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
Ahmed M. Gomaa
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
Knoldus Inc.
 
CMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engagingCMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engaging
Flowable
 

What's hot (20)

Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Pulumi. Modern Infrastructure as Code.
Pulumi. Modern Infrastructure as Code.Pulumi. Modern Infrastructure as Code.
Pulumi. Modern Infrastructure as Code.
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...Intro to open source observability with grafana, prometheus, loki, and tempo(...
Intro to open source observability with grafana, prometheus, loki, and tempo(...
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting Kubernetes
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
Apache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing dataApache Beam: A unified model for batch and stream processing data
Apache Beam: A unified model for batch and stream processing data
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
 
CMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engagingCMMN makes BPMN smarter and engaging
CMMN makes BPMN smarter and engaging
 

Similar to Continuous delivery with jenkins pipelines (@devfest Vienna)

Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Roman Pickl
 
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Roman Pickl
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Oleg Nenashev
 
Continuous delivery with jenkins pipelines @ devdays
Continuous delivery with jenkins pipelines  @ devdaysContinuous delivery with jenkins pipelines  @ devdays
Continuous delivery with jenkins pipelines @ devdays
Roman Pickl
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
Jeremy Eder
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
Oracle Developers
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
Karthik Gaekwad
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
Eric Overfield
 
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
Patrick Chanezon
 
Continuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystemContinuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystem
Roman Pickl
 
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
Evolve The Adobe Digital Marketing Community
 
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in PragueContinuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Roman Pickl
 
Securing DevOps
Securing DevOpsSecuring DevOps
Securing DevOps
Aarno Aukia
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & Couchbase
Manuel Hurtado
 
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
Mesosphere Inc.
 
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene PangSpark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Summit
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
Aarno Aukia
 
Spark Pipelines in the Cloud with Alluxio
Spark Pipelines in the Cloud with AlluxioSpark Pipelines in the Cloud with Alluxio
Spark Pipelines in the Cloud with Alluxio
Alluxio, Inc.
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
Timothy Spann
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Cisco DevNet
 

Similar to Continuous delivery with jenkins pipelines (@devfest Vienna) (20)

Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
Continuous delivery with jenkins pipelines incl. dev tools (@ Vienna DevOps &...
 
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
Continuous delivery with jenkins pipelines (@WeAreDevelopers2017)
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
Continuous delivery with jenkins pipelines @ devdays
Continuous delivery with jenkins pipelines  @ devdaysContinuous delivery with jenkins pipelines  @ devdays
Continuous delivery with jenkins pipelines @ devdays
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
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
 
Continuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystemContinuous Code Quality with the sonar ecosystem
Continuous Code Quality with the sonar ecosystem
 
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
 
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in PragueContinuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
Continuous Code Quality with the Sonar Ecosystem @GeeCON 2017 in Prague
 
Securing DevOps
Securing DevOpsSecuring DevOps
Securing DevOps
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & Couchbase
 
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
 
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene PangSpark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene Pang
 
DevSecOps - Security in DevOps
DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
 
Spark Pipelines in the Cloud with Alluxio
Spark Pipelines in the Cloud with AlluxioSpark Pipelines in the Cloud with Alluxio
Spark Pipelines in the Cloud with Alluxio
 
Unconference Round Table Notes
Unconference Round Table NotesUnconference Round Table Notes
Unconference Round Table Notes
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 

More from Roman Pickl

Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
Roman Pickl
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
Roman Pickl
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
Roman Pickl
 
Are we really moving faster? How visualizing flow changed the way we work - ...
Are we really moving faster? How visualizing flow changed the way we work -  ...Are we really moving faster? How visualizing flow changed the way we work -  ...
Are we really moving faster? How visualizing flow changed the way we work - ...
Roman Pickl
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
Roman Pickl
 
Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
Roman Pickl
 

More from Roman Pickl (6)

Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we workAre we really moving faster? How visualizing flow changed the way we work
Are we really moving faster? How visualizing flow changed the way we work
 
Are we really moving faster? How visualizing flow changed the way we work - ...
Are we really moving faster? How visualizing flow changed the way we work -  ...Are we really moving faster? How visualizing flow changed the way we work -  ...
Are we really moving faster? How visualizing flow changed the way we work - ...
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
 
Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
 

Recently uploaded

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 

Recently uploaded (20)

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 

Continuous delivery with jenkins pipelines (@devfest Vienna)

  • 1. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Continuous Delivery with Jenkins Pipelines (incl. Advanced Topics) Roman Pickl
  • 2. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com • 10+ years’ experience in integrating transport systems • 22 mobility Apps in the stores • 43+ million requests / month • 500.000+ unique users / month At a glance qando Vienna, Linz, Graz, Salzburg, Klagenfurt. SMILE Lighthouse project for integrated mobility Wien Mobil Lab Vienna FluidHub Powering the Integrated Mobility and MaaS Ecosystem 2009 avv connect Aachen Region, North Rhine-Westphalia. 2014 NUMO Vienna 2012 2015 2016
  • 3. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com How did I end up here? • Roman Pickl (@rompic) • CTO @ Fluidtime • In charge of the technical development • Uses Jenkins since 2012 • Loves CI/CD/DevOps • Here to learn
  • 4. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Continuous Delivery (CD) Automated implementation of your system‘s build, deploy, test, release process •Every change results in a build •Every build is a release candidate •Delivery can be done at any time, on any environment à Make releases a non-event Deployment Pipeline provides: •Visibility •Feedback •Control Read these books! Jez Humble on Continuous Delivery(2012): https://www.youtube.com/watch?v=skLJuksCRTw
  • 5. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Deployment Pipelines (Let’s build it with jenkins) (Jez Humble D. F., Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation, 2010)
  • 6. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Jenkins #1 Continuous Integration and Delivery server •Created by Kohsuke Kawaguchi •Initial Release 2005 (Hudson) •Open Source (MIT License) •Active and independent community (https://jenkins.io) •155,000 active installations •1,500+ plugins (!) •Since 2.0 Pipelines (April 2016) are first class citizens •Pipeline as Code (Jenkinsfile). •New User Experience “Blue Ocean” with Blue Ocean Pipeline Editor http://dduportal.github.io/presentations/mixit-2017-jenkins-pipeline/slides.html#/meet_jenkins https://jenkins.io/blog/2017/04/05/say-hello-blueocean-1-0/ http://stats.jenkins.io/
  • 7. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Welcome Blue Ocean!
  • 8. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Create a Pipeline Wizard
  • 9. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Jenkinsfile Written in a Groovy DSL “Jenkinsfile” in top level folder (different path possible since June 2017 https://issues.jenkins- ci.org/browse/JENKINS-34561) Store in SCM (e.g. GIT) for additional benefits •Code review/iteration •Audit trail •Single source of truth Supports two syntaxes (can be mixed) •Declarative pipelines (easier; new; 1.0 Feb 2017) •Scripted pipelines (more powerful) https://jenkins.io/doc/book/pipeline/jenkinsfile/
  • 10. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Scripted vs. Declarative Scripted Pipelines: Declarative Pipeline: https://jenkins.io/doc/book/pipeline/syntax/
  • 11. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Scripted vs. Declarative Scripted Pipeline: Declarative Pipeline: https://jenkins.io/doc/book/pipeline/syntax/ • imperative programming model • fully featured programming environment, • higher flexibility and extensibility • very few limits => for power-users and more complex requirements • declarative programming model • simpler and more opinionated syntax for authoring Jenkins Pipeline. • Allows for validation and a visual editor • limits what is available to the user => ideal choice for simpler continuous delivery pipelinesBoth: • use Groovy • same Pipeline sub-system underneath • mostly use same steps • able to utilize Shared Libraries => can be mixed using the script step See https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/ for a more complex example of migrating a freestyle job to a declarative/scripted pipeline.
  • 12. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com script Step • takes a block of Scripted Pipeline & executes that in the Declarative Pipeline • can provide a useful "escape hatch". • script blocks of non-trivial size and/or complexity should be moved into Shared Libraries https://jenkins.io/doc/book/pipeline/syntax/
  • 13. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Settings
  • 14. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Stages
  • 15. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Parallel Execution With declarative1.2
  • 16. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Approval ... Deploy to Stage, Deploy Live, Release omitted here
  • 17. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Post Build Notifications
  • 18. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Demo 1. docker run -p 8080:8080 jenkinsci/blueocean (add –p 44444:44444 or any other port to try the ssh linter) 2. Go to http://localhost:8080/ 3. Unlock jenkins with initialpw from log file 4. Install suggested plugins (you may have to continue the process in case any plugins are broken and update plugins later on) 5. Create admin user / or continue with admin and initalpw 6. Open http://localhost:8080/blue/pipelines 7. Generate new Pipeline with Github repository 8. Create Jenkinsfile (e.g. https://github.com/rompic/jenkinspipeline)
  • 19. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Blue Ocean 1.3.3 released 16.11.2017 • https://wiki.jenkins.io/display/JENKINS/Blue+Ocean+Plugin • Latest additions • JIRA integration • Declarative Pipeline version 1.2 support • Support of different Repositories Public roadmap https://jenkins.io/projects/blueocean/roadmap/
  • 20. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Overview
  • 21. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Approval
  • 22. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Detail
  • 23. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Multi branch support
  • 24. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Multi branch (When)
  • 25. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Pipeline Development and Advanced Tools • Blue Ocean Pipeline Editor • Snippet Generator • IntelliJ IDEA GDSL – Autocomplete • Command-line Pipeline Linter • Replay Feature • Unit Testing Jenkins Pipelines • Shared Libaries https://jenkins.io/doc/book/pipeline/development/ https://jenkins.io/doc/book/pipeline/shared-libraries/
  • 26. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Pipeline Editor GitLab currently not supported (planned! https://issues.jenkins-ci.org/browse/JENKINS-43148) Workaround: http://localhost:8080/blue/organizations/jenkins/pipeline-editor/ Ctrl-S / Cmd-S to open the load save dialog
  • 27. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Snippet generator http://localhost:8080/pipeline-syntax https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator
  • 28. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com IntelliJ IDEA GDSL - Autocomplete • Autocompletion of steps for scripted pipelines • Install Groovy Plugin • Download http://localhost:8080/pipeline-syntax/gdsl • Add it as e.g. pipeline.gdsl to your projects src path See https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij https://stackoverflow.com/questions/41062514/use-gdsl-file-in-a-java-project-in-intellij https://stackoverflow.com/a/41149255/3165782 for setting it up.
  • 29. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Command-line Pipeline Linter Validate Declarative Pipelines from the cli before actually running it/checking it in. See https://jenkins.io/doc/book/pipeline/development/#linter for details. Remember to enable SSH access, expose a port on your docker container and add ssh key to try this!
  • 30. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Replay Feature • Allows for quick modifications and execution of an existing (valid!) Pipeline without changing the Pipeline configuration or creating a new commit. • Once you are satisfied with the changes, you can use Replay to view them again, copy them back to your Pipeline job or Jenkinsfile, and then commit them using your usual engineering processes https://jenkins.io/doc/book/pipeline/development/
  • 31. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Shared Libraries Share parts of Pipelines between various projects to reduce redundancies and keep code "DRY“. Functions can than be called from Jenkinsfiles. See https://jenkins.io/doc/book/pipeline/shar ed-libraries/ and https://jenkins.io/blog/2017/10/02/pipe line-templates-with-shared-libraries/ for more details.
  • 32. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Unit Testing Jenkins Pipelines •Allows to unit test Pipelines and Shared Libraries before running them in full •Provides a mock execution environment that can be used to check for expected behavior •Still quite rough around the edges. (e.g. no support for declarative pipeline yet https://github.com/lesfurets/JenkinsPipelineUnit/pull/13) See: https://github.com/lesfurets/JenkinsPipelineUnit https://github.com/lesfurets/JenkinsPipelineUnit/blob/master/README.md https://issues.jenkins-ci.org/browse/JENKINS-33925
  • 33. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Things missing / Things to come Missing: • Support for definition of variables in declarative pipelines (see workaround in https://issues.jenkins-ci.org/browse/JENKINS-41335) • Keep build forever (https://issues.jenkins-ci.org/browse/JENKINS-39028 ; workaround via shared lib) • Restart stages for pipelines (checkpoint as commercial feature, https://issues.jenkins- ci.org/browse/JENKINS-33846 ; feature for declarative pipelines planned: https://issues.jenkins-ci.org/browse/JENKINS-45455 ) To Come: • Multiple jenkins files • More editor coverage of declaration syntax • jenkins pipeline support for changelog and changesets with when keyword • GitLab read/write support • ...
  • 34. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Website: https://jenkins.io Blog: https://jenkins.io/node/ https://www.slideshare.net/legrimpeur/belgium-jenkins-area-meetup-jenkins-blueocean- and-declarative-pipelines Getting Started https://jenkins.io/doc/book/getting-started/ https://jenkins.io/doc/book/pipeline/syntax/ https://jenkins.io/doc/pipeline/steps/ https://jenkins.io/doc/book/blueocean/getting-started/ https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/getting%20started https://jenkins.io/blog/2017/05/18/pipeline-dev-tools/ Further references & information I
  • 35. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Docker Files: https://github.com/jenkinsci/docker/blob/master/README.md https://hub.docker.com/r/jenkinsci/blueocean/ Further references & information II
  • 36. © 2017 Copyright Fluidtime Data Services GmbH | www.fluidtime.com Contact Roman Pickl (@rompic) roman.pickl@fluidtime.com Fluidtime Data Services GmbH Neubaugasse 12-14/25 A–1070 Wien Tel +43 (0)1 5860 180 www.fluidtime.com