Continuous Delivery Pipeline with Docker and
Jenkins
Camilo Ribeiro
Camilo Ribeiro
Software Engineer at Klarna Former Senior Consultant at ThoughtWorks
@camiloribeiro
camilo@camiloribeiro.com
https://github.com/camiloribeiro/cdeasy
0
25
50
75
100
Local Build Stage 1 Stage 2 Stage 3 Stage N
Risk in each commit
Build Test Perf Sec Ship it!
Not only hardware abstraction, but operating system abstraction
https://hub.docker.com
https://hub.yourcompany.com
docker pull gradle docker run gradle clean build runInParallel
docker pull ruby docker run ruby bundle install && rake test
docker pull node docker run node npm install && node app.js
docker pull jenkins docker run -p 8080:80 jenkins
docker pull git docker run git pull git@my-repo.git
Run a cloud-ish in your local machine
“ One image to run them all ” - Sauron
A Jenkins agent image with only docker and docker-compose installed
Jenkins Job Automation
• Template Project Plugin • Job Generator Plugin • Jenkins Job Builder • JobDSL Plugin
Jenkins Job Automation
• Template Project Plugin • Job Generator Plugin • Jenkins Job Builder • JobDSL Plugin
Turn your job-dsl scripts into a project!
Wanna learn more?
• CDEasy: https://github.com/camiloribeiro/cdeasy • Jenkins running in docker with examples
• Job DSL playground: http://job-dsl.herokuapp.com/ • Know your xml when you write the groovy scripts
• Job DSL reference: https://jenkinsci.github.io/job-dsl-plugin/ • Nice documentation with current state of Job DSL
Demo
If we have time (and internet) :)
camilo@camiloribeiro.com