State of the Jenkins Automation

Julien Pivotto
Julien PivottoOpen Source Consultant at Inuits
State of the Jenkins Automation
Julien Pivotto (@roidelapluie)
Floss Spring 2017
Manchester - March 15, 2017
whoami
Julien "roidelapluie" Pivotto
@roidelapluie
Sysadmin at Inuits
Automation, monitoring, HA
Jenkins user for 5+ years
inuits
Jenkins
Open Souce CI Server
Written in Java
First release in 2011
Fork of Hudson (2005)
What can you do with Jenkins?
Testing, building, deploying software
Testing, building, deploying services
Testing, building, deploying infra (IaC)
Mission Critical
Public Domain https://commons.wikimedia.org/wiki/File:Roaddamage59quake.JPG
Automating Jenkins
Creative Commons Attribution-ShareAlike 2.0 https://www.flickr.com/photos/machu/3131057286
Why is it hard?
For long, Jenkins has been UI-Driven
It is "easy" to deploy (.war file)
It has lots of plugins (and you need them)
Why is it needed?
Security (high value target)
Bugfixes
Plugins
XML everywhere!
Creative Commons Attribution 2.0 https://www.flickr.com/photos/generated/6035308729
Lot of things to automate
Jenkins Service
Jenkins configuration: security, plugins
Jenkins "data": Jobs/Views
Inside the jobs
Jenkins nodes
Automating the service
CC0 Public Domain https://pixabay.com/en/butler-tray-beverages-wine-964007/
Automating the Jenkins Service
Chef: Jenkins in the supermarket
Puppet: module rtyler/jenkins
Playbooks/etc for other tools as well
Docker
Jenkins Master in Docker
Jenkins upstream images: alpine/ubuntu
Please no executors on master
How do you deploy the container?
Pipeline to build&upgrade it
Jenkins Plugins
Fetched from https://updates.jenkins-ci.org
Can be installed from the UI :(
Can be installed from the CLI
Packaging Jenkins Plugins
Plugins have dependencies (against plugins &
Jenkins core)
They have a fixed download path
They are listed in updates.jenkins.io/update-
center.json
https://github.com/roidelapluie/Jenkins-
Plugins-RPM
Mirroring Jenkins Plugins
Mirror http://updates.jenkins-ci.org
By default, "latest" will be fetched
Don't cache too much
github.com/jenkinsci/docker install-
plugins.sh
Global configuration
CC0 Public Domain https://commons.wikimedia.org/wiki/File:Waiting_room_bell.jpg
Modifying XML files
DON'T
system-config-dsl-plugin
Like Job DSL, but for the system
https://github.com/jenkinsci/system-config-
dsl-plugin
JENKINS-31094
Downside: it does not exist yet
Creative Commons Attribution-Share Alike 3.0
https://commons.wikimedia.org/wiki/File:Groovy-logo.svg
Groovy
Yet another language to learn? yes.
Programming language for the Java platform
Scripting language
Fully integrated in Jenkins
Used by automation tools (chef cookbook,
puppet module...)
The Jenkins Script Console
A groovy console is available at /script
http://jenkins.example.com/script
also with curl
Requires "Overall/Run Scripts" permission
Sample Groovy scripts
Creative Commons Attribution-Share Alike 2.0
https://www.flickr.com/photos/bjornb/88101376
Set number of executors
import jenkins.model.Jenkins;
Jenkins.instance.setNumExecutors(0)
Set HTML formatter
import jenkins.model.Jenkins;
import hudson.markup.RawHtmlMarkupFormatter;
Jenkins.instance.setMarkupFormatter(
new RawHtmlMarkupFormatter(false));
Set system message
import jenkins.model.Jenkins;
Jenkins.instance.setSystemMessage("""
Welcome to <em>Jenkins</em>.
""");
Configure simple-theme
import jenkins.model.Jenkins;
def simpleThemePlugin = 
  Jenkins.instance.getDescriptor(
  "org.codefirst.SimpleThemeDecorator")
  
simpleThemePlugin.cssUrl = 
  "/userContent/example.css"
simpleThemePlugin.save()
Everything in $JENKINS_HOME/userContent
is served under /userContent
Email
import jenkins.model.Jenkins
def desc = Jenkins.instance.getDescriptor(
  "hudson.tasks.Mailer")
desc.setSmtpHost("172.17.0.1")
desc.save()
Disable usage statistics
import hudson.model.UsageStatistics;
hudson.model.UsageStatistics.DISABLED = true;
But also...
Setup Authorization/Authentication
Setup prefix url
Setup slaves, clouds
Setup global libraries
Setup credentials
Setup first jobs
Bonus
import org.jenkinsci.plugins.pipeline.utility
.steps.shaded.org.yaml.snakeyaml.Yaml
Yaml reader = new Yaml()
Map config = reader.load(text)
Thanks to pipeline utility step (readYaml()
step), you can easily read yaml files
Scripts sources
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console
https://github.com/jenkinsci/jenkins-scripts/tree/master/scriptler
https://github.com/infOpen/ansible-role-jenkins/tree/master/files/groovy_scripts
https://github.com/samrocketman/jenkins-bootstrap-jervis/tree/master/scripts
https://github.com/jenkinsci/puppet-
jenkins/blob/master/files/puppet_helper.groovy
http://pghalliday.com/jenkins/groovy/sonar/chef/configuration/management/2014
/09/21/some-useful-jenkins-groovy-scripts.html
Jenkins Javadocs
https://jenkins.io/doc/developer/guides/
http://javadoc.jenkins.io/archive/jenkins-
2.32/
http://javadoc.jenkins.io/
http://javadoc.jenkins.io/plugin/gerrit-trigger/
Now what?
Creative Commons Attribution 2.0 https://www.flickr.com/photos/51029297@N00/5275403364
Jenkins init.groovy.d
Upon startup, Jenkins will run
 $JENKINS_HOME/init.groovy.d/*.groovy 
scripts
Meanwhile, "Jenkins is getting ready..."
message is displayed
Drop files, restart Jenkins
Allows you to preconfigure everything --
without the GUI
init.groovy.d directory
behaviour
Scripts executed sequentally (alphanum
order)
Scripts that throws exceptions make startup
fail
Inside Jenkins
The Multiple Approaches
GUI .. but this talk is about automation, right?
init.groovy.d: to create your seed job
Jenkins Job Builder: declarative, python, yaml
Jenkins Job DSL: imperative, groovy
Jenkins Job Builder
An Openstack Project
Python (not a Jenkins Plugin!)
Support templates
Extensible
Can do raw xml
Limited support for plugins and pipeline
Put Jobs config under SCM
init.groovy.d
def jobManagement = new JenkinsJobManagement(
  System.out, [:], new File('.'))
new DslScriptLoader(jobManagement).runScript("""
folder('jenkins') {
    displayName('Jenkins')
}
pipelineJob("jenkins/seed"){
  definition {
        cpsScm {
            scm {
                git {
                    remote {
                        credentials('jenkins­git­na')
                        url('git.example.com/seed.git')
                    }
                    branches('master')
                }
            }
            scriptPath('Jenkinsfile')
        }
    }
}
""")
Jenkins Job DSL
A Jenkins Plugin
2012
Groovy DSL to create views & jobs
Put Jobs config under SCM
Creative Commons Attribution-Share Alike 3.0
https://commons.wikimedia.org/wiki/File:Groovy-logo.svg
Job DSL support
Large community of users
Lots of plugins supported
Create a job
job('test') {
 scm {
  git('git://example.com/foo.git' 'master')
 }
 steps {
  shell('make test')
 }
}
Create a Pipeline job
pipelineJob('test'){
 definition {
   cps {
     script(buildScript)
   }
 }
}
Set job properties
pipelineJob('test'){
 description('Test Build')
 parameters {
  booleanParam('verbose', false, 'Be Verbose')
 }
 logRotator {
  numToKeep(10)
 }
}
Read yaml
import org.jenkinsci.plugins.pipeline.utility
.steps.shaded.org.yaml.snakeyaml.Yaml
Yaml reader = new Yaml()
Map config = reader.load(
  readFileFromWorkspace('cfg.yaml')
Just like in init.groovy.d scripts
readFileFromWorkspace()
Loops
config.each(){ jobConfig ­>
  pipelineJob(jobConfig.name) {
    triggers {
      if (jobConfig.triggers?.scm) {
        scm(jobConfig.triggers.scm)
      }
    }
  }
}
Create a view
listView('Project A') {
    recurse()
    jobs {
        regex('myprj/[^/]+')
    }
    columns {
        status()
        weather()
        name()
        lastSuccess()
        lastFailure()
        lastDuration()
        lastBuildConsole()
        buildButton()
        progressBar()
    }
}
Work with plugins
buildMonitorView("OnScreen Status") {
 jobs {
  name('WatchA')
 }
}
${JENKINS_URL}/plugin/job-dsl/api-viewer/
In Pipeline
jobDsl removedJobAction: 'DELETE',
  removedViewAction: 'DELETE',
  targets: 'seeds/*.groovy'
Load extra libraries
jobDsl additionalClasspath: 'src/*.jar',
  removedJobAction: 'DELETE',
  removedViewAction: 'DELETE',
  targets: 'seeds/*.groovy'
Jenkins Pipeline
Creative Commons Attribution 2.0 https://www.flickr.com/photos/amerune/9294639633
Jenkins Pipeline
Jenkins Jobs as Code
"Jenkins file"
Imperative (aka scripted) Pipeline
Declarative Pipeline (2017)
What is a Jenkinsfile (aka
Pipeline)
A file that contains the definition of a job
No need of Gui
Defines Steps, Reports, Environments,
Nodes,...
Plugins can provide steps
Generic "step"
How to write Pipelines?
Visual Pipeline editor (WIP)
"Pipeline Syntax" link in jobs
Scriped pipeline
node ("Ubuntu && amd64") {
  stage('checkout') {
    checkout scm
  }
  stage('build') {
    sh 'make'
  }
  stage('test') {
    sh 'make test'
  }
}
Real World Scripted Pipeline
node ("Ubuntu && amd64") {
  checkout scm
  stage('build') {
    try {
      sh 'make'
    } catch(err) {
      currentBuild.result = 'UNSTABLE'
      publishArtifacts('err.log')
      throw err
    }
  }
  stage('test') {
    sh 'make test'
  }
  step([$class: 'JavadocArchiver',
  javadocDir: "target/site", keepAll: true])
}
Declarative Pipeline (1/2)
pipeline {
  agent {
      label("Ubuntu && amd64")
  }
  options {
      timeout(time: 235, unit: 'MINUTES')
      timestamps()
      ansiColor('xterm')
  }
  stages {
    stage('build') {
      steps {
          sh('make')
      }
   }
}
Declarative Pipeline (2/2)
pipeline {
 post {
  always {
   junit params.jUnitReports
  }
 }
}
Declarative vs scripted
Declarative checkout code by default
Declarative get a workspace "OOTB"
Declarative enforces everything in stages
Declarative allow Pipeline-wide wrappers (e.g
ansiColor, timestamps)
Going further with Pipeline
Global Libraries Plugins
Job DSL Plugin
Jenkins Nodes
CC0 Public Domain https://www.flickr.com/photos/133259498@N05/27077266322/
Docker Docker Docker
Run jobs inside containers
Clean, short lived containers
Easy to update
Docker Plugin
Docker nodes pattern
Build Container
Tag it with a tag "candidate"
Push it to your registry
Run normal testing
Run actual builds with that "candidate"
If success -> tag with "release" && push
In practice
Docker Plugin config automated with groovy
Candidate and Release tags are setup as
slaves
They get two labels: "image" "tag" (e.g. "build-
centos-7" "candidate")
Jobs get a parameter "tag"
In the build Jenkinsfile
pipeline {
 agent {
  label("build­centos­7 && ${params.tag}")
 }
}
In the docker-build Jenkinsfile
dockerImage = docker.build("build­centos­7",
  "­­no­cache")
dockerImage.tag('candidate')
docker.withRegistry(url, credentials) {
  dockerImage.push('candidate')
}
node("build­centos­7 && candidate") {
  sh('test­script')
}
build job: 'myjob', parameters:
  [string(name:'tag', value:'candidate')]
  
dockerImage.tag('release')
docker.withRegistry(url, credentials) {
  dockerImage.push('release')
}
Pros/Cons
Updated containers won't block the builds (e.g
on packages updates)
Containers stay up to date
Don't forget that builds release artifacts
(sometime you don't want that in nodes tests)
Conclusion
Public Domain https://commons.wikimedia.org/wiki/File:YellowOnions.jpg
Jenkins can be FULLY
automated
My recommendations:
init.groovy.d
Jenkins Job DSL
Pipeline
You can go further
I am happy to talk about:
Jenkins master in Docker container
BlueOcean
... I use that but did not fit in this timeslot
Julien Pivotto
roidelapluie
roidelapluie@inuits.eu
Inuits
https://inuits.eu
info@inuits.eu
Contact
1 of 74

Recommended

OSDC 2017 - Julien Pivotto - Automating Jenkins by
OSDC 2017 - Julien Pivotto - Automating JenkinsOSDC 2017 - Julien Pivotto - Automating Jenkins
OSDC 2017 - Julien Pivotto - Automating JenkinsNETWAYS
88 views104 slides
Jenkins Shared Libraries Workshop by
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJulien Pivotto
19.7K views117 slides
Jenkins, pipeline and docker by
Jenkins, pipeline and docker Jenkins, pipeline and docker
Jenkins, pipeline and docker AgileDenver
3K views48 slides
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins by
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
2.9K views45 slides
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines by
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
5.3K views60 slides
(Declarative) Jenkins Pipelines by
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
21.7K views52 slides

More Related Content

What's hot

JavaOne 2016 - Pipeline as code by
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeBert Jan Schrijver
750 views27 slides
Continuous Integration using Docker & Jenkins by
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & JenkinsB1 Systems GmbH
27.7K views43 slides
Pipeline as code - new feature in Jenkins 2 by
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
2.3K views27 slides
Jenkins Scriptler in 90mins by
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90minsLarry Cai
10.9K views11 slides
Seven Habits of Highly Effective Jenkins Users (2014 edition!) by
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
106.5K views45 slides
Let's go HTTPS-only! - More Than Buying a Certificate by
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateSteffen Gebert
1.1K views36 slides

What's hot(20)

Continuous Integration using Docker & Jenkins by B1 Systems GmbH
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & Jenkins
B1 Systems GmbH27.7K views
Pipeline as code - new feature in Jenkins 2 by Michal Ziarnik
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
Michal Ziarnik2.3K views
Jenkins Scriptler in 90mins by Larry Cai
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90mins
Larry Cai10.9K views
Seven Habits of Highly Effective Jenkins Users (2014 edition!) by Andrew Bayer
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 Bayer106.5K views
Let's go HTTPS-only! - More Than Buying a Certificate by Steffen Gebert
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
Steffen Gebert1.1K views
Python virtualenv & pip in 90 minutes by Larry Cai
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutes
Larry Cai4.1K views
Steamlining your puppet development workflow by Tomas Doran
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflow
Tomas Doran4.5K views
Docker and Puppet for Continuous Integration by Giacomo Vacca
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
Giacomo Vacca5.8K views
Amazon Web Services and Docker by Paolo latella
Amazon Web Services and DockerAmazon Web Services and Docker
Amazon Web Services and Docker
Paolo latella3.7K views
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf... by Puppet
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Puppet5K views
Jenkins days workshop pipelines - Eric Long by ericlongtx
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
ericlongtx1.8K views
Building Jenkins Pipelines at Scale by Julien Pivotto
Building Jenkins Pipelines at ScaleBuilding Jenkins Pipelines at Scale
Building Jenkins Pipelines at Scale
Julien Pivotto7.6K views
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor... by Docker, Inc.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.33K views
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code by Damien Duportal
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Damien Duportal655 views
Building kubectl plugins with Quarkus | DevNation Tech Talk by Red Hat Developers
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech Talk
Red Hat Developers4.4K views

Similar to State of the Jenkins Automation

OSDC 2017 | Automating Jenkins by Julien Pivotto by
OSDC 2017 | Automating Jenkins by Julien PivottoOSDC 2017 | Automating Jenkins by Julien Pivotto
OSDC 2017 | Automating Jenkins by Julien PivottoNETWAYS
24 views104 slides
Jenkins Automation by
Jenkins AutomationJenkins Automation
Jenkins AutomationJulien Pivotto
5.2K views104 slides
Jenkins CI by
Jenkins CIJenkins CI
Jenkins CIhaochenglee
28.1K views63 slides
Release with confidence by
Release with confidenceRelease with confidence
Release with confidenceJohn Congdon
1.8K views35 slides
Comparative Development Methodologies by
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologieselliando dias
669 views42 slides
Intro to Pentesting Jenkins by
Intro to Pentesting JenkinsIntro to Pentesting Jenkins
Intro to Pentesting JenkinsBrian Hysell
696 views36 slides

Similar to State of the Jenkins Automation(20)

OSDC 2017 | Automating Jenkins by Julien Pivotto by NETWAYS
OSDC 2017 | Automating Jenkins by Julien PivottoOSDC 2017 | Automating Jenkins by Julien Pivotto
OSDC 2017 | Automating Jenkins by Julien Pivotto
NETWAYS24 views
Jenkins CI by haochenglee
Jenkins CIJenkins CI
Jenkins CI
haochenglee28.1K views
Release with confidence by John Congdon
Release with confidenceRelease with confidence
Release with confidence
John Congdon1.8K views
Comparative Development Methodologies by elliando dias
Comparative Development MethodologiesComparative Development Methodologies
Comparative Development Methodologies
elliando dias669 views
Intro to Pentesting Jenkins by Brian Hysell
Intro to Pentesting JenkinsIntro to Pentesting Jenkins
Intro to Pentesting Jenkins
Brian Hysell696 views
Drupal Continuous Integration with Jenkins - Deploy by John Smith
Drupal Continuous Integration with Jenkins - DeployDrupal Continuous Integration with Jenkins - Deploy
Drupal Continuous Integration with Jenkins - Deploy
John Smith5K views
JenkinsMobi: Jenkins XML API for Mobile Applications by Luca Milanesio
JenkinsMobi: Jenkins XML API for Mobile ApplicationsJenkinsMobi: Jenkins XML API for Mobile Applications
JenkinsMobi: Jenkins XML API for Mobile Applications
Luca Milanesio2.4K views
Jenkins talk at Silicon valley DevOps meetup by CloudBees
Jenkins talk at Silicon valley DevOps meetupJenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetup
CloudBees3.2K views
Graduating to Jenkins CI for Ruby(-on-Rails) Teams by Daniel Doubrovkine
Graduating to Jenkins CI for Ruby(-on-Rails) TeamsGraduating to Jenkins CI for Ruby(-on-Rails) Teams
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
Daniel Doubrovkine6.2K views
Ideal Deployment In .NET World by Dima Pasko
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET World
Dima Pasko1.7K views
Jenkins and AWS DevOps Tools by Jimmy Ray
Jenkins and AWS DevOps ToolsJenkins and AWS DevOps Tools
Jenkins and AWS DevOps Tools
Jimmy Ray1.4K views
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition) by CODE WHITE GmbH
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
CODE WHITE GmbH10.3K views
Java 6 [Mustang] - Features and Enchantments by Pavel Kaminsky
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
Pavel Kaminsky4.1K views
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜 by Jumpei Miyata
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
Jenkins 2.0 最新事情 〜Make Jenkins Great Again〜
Jumpei Miyata7.4K views
Continuous Integration (Jenkins/Hudson) by Dennys Hsieh
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh44.2K views
Using Docker for Testing by Carlos Sanchez
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
Carlos Sanchez36.6K views

More from Julien Pivotto

The O11y Toolkit by
The O11y ToolkitThe O11y Toolkit
The O11y ToolkitJulien Pivotto
37 views24 slides
What's New in Prometheus and Its Ecosystem by
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemJulien Pivotto
12 views42 slides
Prometheus: What is is, what is new, what is coming by
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
42 views27 slides
What's new in Prometheus? by
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?Julien Pivotto
15 views10 slides
Introduction to Grafana Loki by
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
189 views11 slides
Why you should revisit mgmt by
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmtJulien Pivotto
10 views46 slides

More from Julien Pivotto(20)

What's New in Prometheus and Its Ecosystem by Julien Pivotto
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
Julien Pivotto12 views
Prometheus: What is is, what is new, what is coming by Julien Pivotto
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
Julien Pivotto42 views
Introduction to Grafana Loki by Julien Pivotto
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
Julien Pivotto189 views
Observing the HashiCorp Ecosystem From Prometheus by Julien Pivotto
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
Julien Pivotto37 views
Monitoring in a fast-changing world with Prometheus by Julien Pivotto
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
Julien Pivotto33 views
5 tips for Prometheus Service Discovery by Julien Pivotto
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
Julien Pivotto38 views
Prometheus and TLS - an Introduction by Julien Pivotto
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
Julien Pivotto15 views
HAProxy as Egress Controller by Julien Pivotto
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
Julien Pivotto2.9K views
Improved alerting with Prometheus and Alertmanager by Julien Pivotto
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
Julien Pivotto4.5K views
SIngle Sign On with Keycloak by Julien Pivotto
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
Julien Pivotto10K views
Monitoring as an entry point for collaboration by Julien Pivotto
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
Julien Pivotto1.3K views
Monitor your CentOS stack with Prometheus by Julien Pivotto
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
Julien Pivotto712 views
Monitor your CentOS stack with Prometheus by Julien Pivotto
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
Julien Pivotto704 views

Recently uploaded

Special_edition_innovator_2023.pdf by
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdfWillDavies22
16 views6 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
34 views8 slides
Spesifikasi Lengkap ASUS Vivobook Go 14 by
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14Dot Semarang
35 views1 slide
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
225 views86 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
165 views92 slides
Info Session November 2023.pdf by
Info Session November 2023.pdfInfo Session November 2023.pdf
Info Session November 2023.pdfAleksandraKoprivica4
10 views15 slides

Recently uploaded(20)

Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2216 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291614 views
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! by sammart93
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
sammart939 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10209 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada121 views
DALI Basics Course 2023 by Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 views
Lilypad @ Labweek, Istanbul, 2023.pdf by Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views

State of the Jenkins Automation