SlideShare a Scribd company logo
Continuous Delivery with
Jenkins, Docker and
Exoscale
Julia Mateo
@juliamateodc
@duchessswiss http://jduchess.ch/
Thursday, April 16, 15
Goal
Thursday, April 16, 15
Continuous deployment vs
Continuous Delivery
• Continuous delivery : series of practices designed
to ensure that code can be rapidly and safely
deployed to production
• Continuous deployment is the next step of
continuous delivery: Every change that passes the
automated tests is deployed to production
automatically
Thursday, April 16, 15
Continuous Delivery
Source : http://xebia.github.io/cd-with-docker/#/
Thursday, April 16, 15
What is Docker ?
• Open platform for developers and
sysadmins to build, ship, and run distributed
applications.
From https://www.docker.com/whatisdocker/
Thursday, April 16, 15
Docker vsVMs
Server
Host OS
Hypervisor
Guest
OS
Guest
OS
Guest
OS
Guest
OS
Libs/
Bins
Libs/
Bins
Libs/
Bins
App 1 App 2 App 3 App 4
Libs/
Bins
Server
Host OS
Docker Engine
Libs/Bins
Libs/
Bins
App 1 App 2 App 3 App 4
c1 c2 c3 c4
VM1 VM2 VM3 VM4
Thursday, April 16, 15
Containers and images
Docker
Images
Docker
Images
libcontainer, Union Filesystem
Centos Ubuntu
Jetty
add App.war
Container 1
OracleDB
Container 2
Read
only
Writable
Writable
Read
only
Thursday, April 16, 15
Using Docker for
Continuous Delivery
• Simple : container as deployment unit
• Fast : Only need to build/upload the ∆ image
• Robust : less scope of error than custom
deployment scripts
• Other advantages : docker facilitates fast rollback
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Node 1
Node 2
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Node 1
Node 2
Container 1
Container 2
Container 3
Container 4
Container 5
Thursday, April 16, 15
The web app to deploy
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Docker publish plugin
Thursday, April 16, 15
Using Docker into
Docker
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Docker private
repository
• Add the registry’s location to the
repository name :
my.registry.address:port/repositoryname
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Deploy with Docker :
test environment
Localhost
docker publish plugin
ssh jenkins plugin
Thursday, April 16, 15
Jenkins ssh plugin
Thursday, April 16, 15
SSH agent forward into
a docker container
>> docker run --privileged=true -i -t
-v $(readlink -f $SSH_AUTH_SOCK):/ssh-agent
-e SSH_AUTH_SOCK=/ssh-agent
-v /home/hortis/docker/jenkins:/jenkins -p 8900:8080
--link sonarMysql:sonar_mysql --link sonar:sonar
--link docker-registry:docker-registry -d hortis/jenkins:latest
Thursday, April 16, 15
SSH agent forward into
a docker container
>> docker run --privileged=true -i -t
-v $(readlink -f $SSH_AUTH_SOCK):/ssh-agent
-e SSH_AUTH_SOCK=/ssh-agent
-v /home/hortis/docker/jenkins:/jenkins -p 8900:8080
--link sonarMysql:sonar_mysql --link sonar:sonar
--link docker-registry:docker-registry -d hortis/jenkins:latest
Thursday, April 16, 15
Demo
Thursday, April 16, 15
Multi container apps
• Link containers with alias
docker run -v /home/hortis/docker/sonar/logs:/opt/sonar/logs/
-v /home/hortis/docker/sonar/extensions:/opt/sonar/extensions -p 9000:9000
--link sonarMysql:mysql --name sonar -d hortis/sonar:latest
• Use docker compose (old Fig)
Thursday, April 16, 15
Deploying to
production
• Canary releasing
• Blue Green deployment
Thursday, April 16, 15
Blue Green Deployment
DatabaseWeb app
DatabaseWeb appWeb app Database
Web app Database
User
requests
Router
OldVersion
NewVersion
Source : http://martinfowler.com/bliki/BlueGreenDeployment.html
Thursday, April 16, 15
Canary releasing
DatabaseWeb app
DatabaseWeb appWeb app Database
Web app Database
User
requests
Router
OldVersion
NewVersion
Most users
95%
Some users
5%
Source : http://martinfowler.com/bliki/CanaryRelease.html
Thursday, April 16, 15
Thank	 you	 !
QUESTIONS
?
Thursday, April 16, 15

More Related Content

PDF
Locally it worked! virtualizing docker
PDF
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
PPTX
Delivering eBay's CI Solution with Apache Mesos & Docker - DockerCon 2014
PDF
Automating Docker Containers with Puppet 2014 10-13
PPTX
Docker - Demo on PHP Application deployment
PDF
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
PDF
Docker Continuous Delivery Workshop
PDF
Docker and DevOps --- new IT culture
Locally it worked! virtualizing docker
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Delivering eBay's CI Solution with Apache Mesos & Docker - DockerCon 2014
Automating Docker Containers with Puppet 2014 10-13
Docker - Demo on PHP Application deployment
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker Continuous Delivery Workshop
Docker and DevOps --- new IT culture

What's hot (20)

PDF
Vagrant + Docker provider [+Puppet]
PDF
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
PDF
Vagrant + Ansible + Docker
PDF
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
PDF
Un jenkins amélioré avec docker mesos et marathon à Devoxx 2015
PPTX
Enable Fig to deploy to multiple Docker servers by Willy Kuo
PPTX
Dockerin10mins
PDF
Joomla Continuous Delivery with Docker
PDF
Getting Started with Docker (For Developers)
PPTX
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
PPTX
Learn docker in 90 minutes
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
PDF
Deployment Automation with Docker
PPTX
CI, CD with Docker, Jenkins and Tutum
PDF
Deploy django apps using docker
PPTX
Docker and Windows: The State of the Union
PPTX
Vagrant vs Docker
PDF
Testing as a container
PDF
Testing with Docker
PPTX
Jenkins, pipeline and docker
Vagrant + Docker provider [+Puppet]
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
Vagrant + Ansible + Docker
From Arm to Z: Building, Shipping, and Running a Multi-platform Docker Swarm ...
Un jenkins amélioré avec docker mesos et marathon à Devoxx 2015
Enable Fig to deploy to multiple Docker servers by Willy Kuo
Dockerin10mins
Joomla Continuous Delivery with Docker
Getting Started with Docker (For Developers)
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Learn docker in 90 minutes
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Deployment Automation with Docker
CI, CD with Docker, Jenkins and Tutum
Deploy django apps using docker
Docker and Windows: The State of the Union
Vagrant vs Docker
Testing as a container
Testing with Docker
Jenkins, pipeline and docker
Ad

Viewers also liked (20)

PDF
Building and deploying a distributed application with Docker, Mesos and Marathon
PDF
Deploying Docker Containers at Scale with Mesos and Marathon
PDF
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
PPTX
Mesos & Marathon - Piloter les services de votre système
PDF
Container Orchestrator Smackdown @ContinousLifecycle
PDF
Orchestrate Continuous Delivery with Jenkins and Docker
PPTX
Enterprise Docker Requires a Private Registry
PDF
Docker, Cloud Foundry, Bosh & Bluemix
 
PPTX
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
PPTX
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
PPTX
Micro services and Containers
PDF
Continuous Delivery Pipeline with Docker and Jenkins
ODP
Glusterfs for sysadmins-justin_clift
ODP
GlusterFs Architecture & Roadmap - LinuxCon EU 2013
PDF
Introduction To Apache Mesos
PDF
Modeling Microservices
PDF
Introduction à docker.io
PPTX
Docker OpenStack Cloud Foundry
PDF
Growing a microservices landscape (with smart use cases)
PDF
Mesos vs kubernetes comparison
Building and deploying a distributed application with Docker, Mesos and Marathon
Deploying Docker Containers at Scale with Mesos and Marathon
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
Mesos & Marathon - Piloter les services de votre système
Container Orchestrator Smackdown @ContinousLifecycle
Orchestrate Continuous Delivery with Jenkins and Docker
Enterprise Docker Requires a Private Registry
Docker, Cloud Foundry, Bosh & Bluemix
 
Hero's Tookit: Start Your Rugged DevOps Journey with Nexus, Jenkins and Docker
Culture Hacker: How to Herd CATTs and Inspire Rebels to Change the World! - S...
Micro services and Containers
Continuous Delivery Pipeline with Docker and Jenkins
Glusterfs for sysadmins-justin_clift
GlusterFs Architecture & Roadmap - LinuxCon EU 2013
Introduction To Apache Mesos
Modeling Microservices
Introduction à docker.io
Docker OpenStack Cloud Foundry
Growing a microservices landscape (with smart use cases)
Mesos vs kubernetes comparison
Ad

Similar to Continuous delivery with jenkins, docker and exoscale (20)

PDF
Work shop - an introduction to the docker ecosystem
PDF
Boston Code Dojo - Docker meetup slides
PDF
How to easy deploy app into any cloud
PDF
Docker module 1
PDF
Introduction to Docker
PPTX
From Docker to Production - ZendCon 2016
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
PDF
Docker Overview - Rise of the Containers
PDF
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
PPTX
Docker - 15 great Tutorials
PDF
docker installation and basics
PDF
codemotion-docker-2014
PPTX
Getting Started with Docker
PDF
Apt get no more let Vagrant, Puppet and Docker take the stage
PDF
Dockerfiles building docker images automatically v (workdir, env, add, and ...
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PDF
Using docker to develop NAS applications
PPTX
Docker Container As A Service - Mix-IT 2016
PDF
Bauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
Work shop - an introduction to the docker ecosystem
Boston Code Dojo - Docker meetup slides
How to easy deploy app into any cloud
Docker module 1
Introduction to Docker
From Docker to Production - ZendCon 2016
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Docker Overview - Rise of the Containers
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Docker - 15 great Tutorials
docker installation and basics
codemotion-docker-2014
Getting Started with Docker
Apt get no more let Vagrant, Puppet and Docker take the stage
Dockerfiles building docker images automatically v (workdir, env, add, and ...
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Using docker to develop NAS applications
Docker Container As A Service - Mix-IT 2016
Bauen und Verteilen von Multi-Arch Docker Images für Linux und Windows

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
Teaching material agriculture food technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Spectroscopy.pptx food analysis technology
PDF
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Teaching material agriculture food technology
MIND Revenue Release Quarter 2 2025 Press Release
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Building Integrated photovoltaic BIPV_UPV.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Programs and apps: productivity, graphics, security and other tools
Spectroscopy.pptx food analysis technology
KodekX | Application Modernization Development

Continuous delivery with jenkins, docker and exoscale

  • 1. Continuous Delivery with Jenkins, Docker and Exoscale Julia Mateo @juliamateodc @duchessswiss http://jduchess.ch/ Thursday, April 16, 15
  • 3. Continuous deployment vs Continuous Delivery • Continuous delivery : series of practices designed to ensure that code can be rapidly and safely deployed to production • Continuous deployment is the next step of continuous delivery: Every change that passes the automated tests is deployed to production automatically Thursday, April 16, 15
  • 4. Continuous Delivery Source : http://xebia.github.io/cd-with-docker/#/ Thursday, April 16, 15
  • 5. What is Docker ? • Open platform for developers and sysadmins to build, ship, and run distributed applications. From https://www.docker.com/whatisdocker/ Thursday, April 16, 15
  • 6. Docker vsVMs Server Host OS Hypervisor Guest OS Guest OS Guest OS Guest OS Libs/ Bins Libs/ Bins Libs/ Bins App 1 App 2 App 3 App 4 Libs/ Bins Server Host OS Docker Engine Libs/Bins Libs/ Bins App 1 App 2 App 3 App 4 c1 c2 c3 c4 VM1 VM2 VM3 VM4 Thursday, April 16, 15
  • 7. Containers and images Docker Images Docker Images libcontainer, Union Filesystem Centos Ubuntu Jetty add App.war Container 1 OracleDB Container 2 Read only Writable Writable Read only Thursday, April 16, 15
  • 8. Using Docker for Continuous Delivery • Simple : container as deployment unit • Fast : Only need to build/upload the ∆ image • Robust : less scope of error than custom deployment scripts • Other advantages : docker facilitates fast rollback Thursday, April 16, 15
  • 9. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Node 1 Node 2 Thursday, April 16, 15
  • 10. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Node 1 Node 2 Container 1 Container 2 Container 3 Container 4 Container 5 Thursday, April 16, 15
  • 11. The web app to deploy Thursday, April 16, 15
  • 12. Deploy with Docker : test environment Localhost Thursday, April 16, 15
  • 13. Deploy with Docker : test environment Localhost Thursday, April 16, 15
  • 14. Deploy with Docker : test environment Localhost Thursday, April 16, 15
  • 15. Deploy with Docker : test environment Localhost Thursday, April 16, 15
  • 16. Deploy with Docker : test environment Localhost Thursday, April 16, 15
  • 17. Deploy with Docker : test environment Localhost docker publish plugin Thursday, April 16, 15
  • 18. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 19. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 22. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 23. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 24. Docker private repository • Add the registry’s location to the repository name : my.registry.address:port/repositoryname Thursday, April 16, 15
  • 25. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 26. Deploy with Docker : test environment Localhost docker publish plugin ssh jenkins plugin Thursday, April 16, 15
  • 28. SSH agent forward into a docker container >> docker run --privileged=true -i -t -v $(readlink -f $SSH_AUTH_SOCK):/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent -v /home/hortis/docker/jenkins:/jenkins -p 8900:8080 --link sonarMysql:sonar_mysql --link sonar:sonar --link docker-registry:docker-registry -d hortis/jenkins:latest Thursday, April 16, 15
  • 29. SSH agent forward into a docker container >> docker run --privileged=true -i -t -v $(readlink -f $SSH_AUTH_SOCK):/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent -v /home/hortis/docker/jenkins:/jenkins -p 8900:8080 --link sonarMysql:sonar_mysql --link sonar:sonar --link docker-registry:docker-registry -d hortis/jenkins:latest Thursday, April 16, 15
  • 31. Multi container apps • Link containers with alias docker run -v /home/hortis/docker/sonar/logs:/opt/sonar/logs/ -v /home/hortis/docker/sonar/extensions:/opt/sonar/extensions -p 9000:9000 --link sonarMysql:mysql --name sonar -d hortis/sonar:latest • Use docker compose (old Fig) Thursday, April 16, 15
  • 32. Deploying to production • Canary releasing • Blue Green deployment Thursday, April 16, 15
  • 33. Blue Green Deployment DatabaseWeb app DatabaseWeb appWeb app Database Web app Database User requests Router OldVersion NewVersion Source : http://martinfowler.com/bliki/BlueGreenDeployment.html Thursday, April 16, 15
  • 34. Canary releasing DatabaseWeb app DatabaseWeb appWeb app Database Web app Database User requests Router OldVersion NewVersion Most users 95% Some users 5% Source : http://martinfowler.com/bliki/CanaryRelease.html Thursday, April 16, 15