Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

28
Reduce DevOps Friction with Docker & Jenkins Andy Pemberton Solution Architecture & Consulting, CloudBees

Transcript of Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Page 1: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Reduce DevOps Friction with Docker & Jenkins

Andy PembertonSolution Architecture & Consulting, CloudBees

Page 2: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

vs.

2016

Page 3: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

What Friction?An example: Software Configuration Management

Page 4: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

What Friction?An example: Software Configuration Management

Page 5: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

What Friction?An example: Software Configuration Management

Page 6: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Docker’s PotentialAn example: Software Configuration Management

Page 7: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Docker’s PotentialAn example: Software Configuration Management

Page 8: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Reduce Friction

Docker & Jenkins have massive potential to reduce DevOps Friction

Page 9: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

“Using Docker to run Jenkins build agents is ideal.”

Page 10: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Better Together. But How?

+

Page 11: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Top 20 Official Images

• Upstream Jenkins OSS Images• Managed by CloudBees and the

Jenkins Community• Over 5 million pulls

Jenkins on Docker Hub

docker run jenkinsdocker run cloudbees/jenkins-enterprise

Page 12: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Page 13: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
Page 14: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

www.cloudbees.com/get-started

Page 15: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Better Together. But How?

1. Host Elastic Jenkins Environment 2. Automate Docker Image Builds

Page 16: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Run and manage Jenkins masters & agents in Docker• Docker Cloud – use Docker images as

standardized build environments to improve isolation and elasticity

• Docker Custom Build Environment – specify customized build environments as Docker containers

• Docker Shared Config. – manage Docker host configuration centrally in CloudBees Jenkins Operations Center

Host Elastic Jenkins Environment

Page 17: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Jenkins Enterprise

Master

z

JenkinsAgent

JenkinsAgent

JenkinsAgent

Docker Cloud

Page 18: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Build, Test, and Deploy Docker images from Jenkins• Build and Publish – build projects that

have a Dockerfile and push the tagged image to Docker Hub

• Docker Traceability – record which build pushed a particular container and display the details in Jenkins

• Docker Hub Notification – trigger jobs when an image is pushed to Docker Hub

Automate Docker Image Builds

Page 19: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

19

Docker Traceability

Record which build pushed a particular container and display the details in

Jenkins

Page 20: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Container

Docker Traceability

Page 21: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Last but not least!Jenkins Pipeline

Page 22: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Jenkins Pipeline + Docker

stage 'Build Source’

node('docker') { docker.image(‘maven:3.3.3-jdk-8') { git 'https://github.com/cloudbees/example.git' sh 'mvn clean package' }}

Page 23: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Jenkins Pipeline + Docker

stage 'Build Docker Image'node('docker') { docker.withServer('tcp://docker.beedemo.net:2376', 'docker-credentials'){ def image = docker.build "cloudbees/example:${buildVersion}"

stage 'Publish Docker Image' docker.withRegistry('https://registry.beedemo.net/', 'docker-reg-login'){ image.push() }

stage 'Deploy Docker Image' def container = image.run('--name example -p 8080:8080') }}

Page 24: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Jenkins Pipeline + Docker

Page 25: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Open Source Innovation Meets Enterprise Strength

Jenkins OSS

Community Powered DevOps Innovation

Jenkins for the Enterprise

Jenkins Platform

Page 26: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Platinum Support Gold Support

Enterprise Edition

Cloud/Container Support

Support and features for running Jenkins @ enterprise scalePrivate SaaS Edition

Self-Service Docker-based Elastic & Resilient Private Cloud Analytics Shared Resources

CloudBees Jenkins Platform Editions

Page 27: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

© 2016 CloudBees, Inc. All Rights Reserved

Jenkins World 2016

Learn more and register now!www.jenkinsworld.com

The event for everything Jenkins: community, CloudBees and ecosystem.• Santa Clara Convention Center• September 13-15, 2016

Page 28: Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees

Thank you!@apemberton