SlideShare a Scribd company logo
CI, CD WITH DOCKER,
JENKINS AND TUTUM
Presenter Name: Sreenivas Makam
Presented at: Gopaddle Meetup Bangalore
Presentation Date: Jan 23, 2016
About me
• Senior Engineering Manager at Cisco
Systems Data Center group
• Personal blog can be found at
https://sreeninet.wordpress.com/ and my
hacky code at https://github.com/smakam
• Working currently on “Mastering CoreOS”
book. To be published early March 2016.
(http://www.amazon.com/Mastering-
CoreOS-Sreenivas-Makam-
ebook/dp/B01AI0NKRQ/ref=sr_1_1?ie=UT
F8&qid=1453472526&sr=8-
1&keywords=mastering+coreos)
• You can reach me on LinkedIn at
https://in.linkedin.com/in/sreenivasmaka
m
CI/CD definition
• Continuous Integration (CI) refers to the
process of making an executable or a Container
image automatically after developer has done
the UT and commit.
• Continuous delivery refers to the process of
taking the developer built image, setting up the
staging environment for testing the image and
deploying it successfully for production.
Why Docker is suited for CI/CD?
• Ability to create consistent build environments
• Build environments can be created and removed
with ease
• Ability to run multiple isolated build jobs
• Create consistent staging and production
deployment environment
• Assists with different upgrade patterns(like
Rolling upgrade with Canary pattern)
Jenkins with Docker - Advantages
• Jenkins provides the complete workflow for
CI/CD and has good integration with testing and
code analysis tools.
• Docker provides Containers and Container
related tools.
• Jenkins with Docker gives a Container based
CI/CD workflow and integration with third-party
tools for creating a customized workflow.
• Jenkins can be run as Docker Container
Jenkins Docker plugins
• Docker Workflow – provides first-class support for Jenkins Workflow to build real
world CD pipelines for containerized applications using Jenkins and Docker
• Build and Publish – builds projects from a Dockerfile and pushes a tested and
proven gold image to Docker Hub
• Docker Hub Notification – triggers downstream jobs when a tagged container is
pushed to Docker Hub
• Docker Traceability – identifies which build pushed a particular container that is
running in production and displays that on the Jenkins builds page
• Docker Slaves – uses Docker containers as standardized build environments
shared between Jenkins masters to improve isolation and elasticity
• Docker Custom Build Environment – specifies customized build environments as
Docker containers
Source:
https://www.cloudbees.com/continuous-delivery/jenkins-docker
Jenkins Docker slave
• Rather than running builds jobs directly on slave host,
Jenkins Docker executors creates Containers to run build
jobs.
• For different projects, different Docker Containers can be
used.
• Parallel jobs can be run on a single slave host with full
isolation between jobs.
• To create Docker builds inside a Docker Container, either
Docker in Docker can be used or Docker socket in host can
be exposed to CI container by bind-mounting it with the -
v flag
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
Jenkins with Docker – Use cases
• Create Docker Container images with Github and Docker
repository integration.
Github -> Jenkins -> Docker slave -> Docker image ->
Dockerhub
• Ability to run multiple Docker build executors in a single
Jenkins slave instance.
Github -> Jenkins -> Docker slave -> C programming project -
> Testing
Github -> Jenkins -> Docker slave -> Java programming
project -> Testing
• Deploy Container images in staging or production
Docker hub -> Jenkins -> Docker slave -> Testing ->
Deployment using docker-compose
Tutum
• SaaS Container platform that can be used to build,
deploy and manage Docker Containers
• Hides orchestration, networking and storage
complexity.
• Provides GUI, CLI as well as API access
• Gives own private repository within Tutum per user,
other repositories can also be used
• Logging, monitoring, Scaling and HA is built-in
• Does rolling upgrade automatically
• In Beta phase, free to try
Tutum for CI, CD
• Tutum integrates well with Github as well as
all Docker repositories.
• Provides private Docker registry in Tutum
• Tutum CI/CD Use case
Github ->Tutum -> Tutum repository -> Deploy
• Provides flexibility to create different staging
and production deployment environments
• Provides rolling upgrade capability
Comparing Tutum with Jenkins
• Jenkins provides better integration with third-party
testing and code analysis tools.
• Tutum is available only as SaaS. Jenkins can be run on-
premise.
• Tutum provides its own registry, inherent load
balancing, service discovery capabilities and rolling
upgrade facilities.
• For pure Container based CI/CD, Tutum would be
better. If there is a need to integrate legacy and
Container based applications and also use third-party
tools, Jenkins is the only option.
CI, CD Demo
Github project
(https://github.com/smakam/
hit-counter-demo)
Jenkins
Docker slave
Dockerhub
Smakam/hit-counter-
demo
Docker hub
(Smakam/countertest)
Docker-compose
deploy
Tutum
tutum.co/smakam/cou
nt
Stackfile
Deploy
User commit
Auto Trigger
Related blogs
More details on this topic and recorded demo
are in the 2 blogs below:
• https://sreeninet.wordpress.com/2016/01/2
3/tutum-introduction/
• https://sreeninet.wordpress.com/2016/01/2
3/ci-cd-with-docker-jenkins-and-tutum/
References
• Jenkins Docker plugin (https://wiki.jenkins-
ci.org/display/JENKINS/Docker+Plugin)
• Docker CI Use case (https://www.docker.com/products/use-cases)
• Continuous delivery with Docker and Jenkins
(https://www.docker.com/sites/default/files/UseCase/RA_CI%20with%2
0Docker_08.25.2015.pdf, https://pages.cloudbees.com/rs/083-PKZ-
512/images/Docker-Jenkins-Continuous-Delivery.pdf )
• Tutum Support (https://support.tutum.co)
• Docker in Docker for CI (http://jpetazzo.github.io/2015/09/03/do-not-
use-docker-in-docker-for-ci/, https://forums.docker.com/t/how-can-i-
run-docker-command-inside-a-docker-container/337/6 )
• CI platform (https://blog.codecentric.de/en/2015/10/continuous-
integration-platform-using-docker-container-jenkins-sonarqube-nexus-
gitlab/)

More Related Content

PPTX
Jenkins CI
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PPTX
Introduction to jenkins
PDF
Jenkins Pipelines
PPTX
PDF
Azure DevOps - Azure Guatemala Meetup
PDF
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Jenkins CI
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Introduction to jenkins
Jenkins Pipelines
Azure DevOps - Azure Guatemala Meetup
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...

What's hot (20)

PPTX
Jenkins Introduction
PDF
Git flow Introduction
ODP
An Introduction To Jenkins
PDF
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
PDF
GitOps with ArgoCD
PDF
"DevOps > CI+CD "
PPT
Jenkins Overview
PDF
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
PDF
PDF
Continuous Delivery in the Cloud with Bitbucket Pipelines
PDF
A Introduction of Packer
PPTX
Jenkins CI presentation
PDF
Jenkins
PPTX
Jenkins tutorial
PDF
Gitlab, GitOps & ArgoCD
PPTX
Introduction to CI/CD
PPTX
Git branching strategies
PPT
SonarQube Overview
PPTX
Azure DevOps
Jenkins Introduction
Git flow Introduction
An Introduction To Jenkins
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
GitOps with ArgoCD
"DevOps > CI+CD "
Jenkins Overview
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
Continuous Delivery in the Cloud with Bitbucket Pipelines
A Introduction of Packer
Jenkins CI presentation
Jenkins
Jenkins tutorial
Gitlab, GitOps & ArgoCD
Introduction to CI/CD
Git branching strategies
SonarQube Overview
Azure DevOps
Ad

Similar to CI, CD with Docker, Jenkins and Tutum (20)

PDF
Exploring Docker in CI/CD
PPTX
IM5- Introduction to DevOps tooools.pptx
PDF
Docker + jenkins in the enterprise (3)
PDF
CI with Docker in Docker
PPTX
Using Docker EE in a CI/CD Workflow
PDF
Continuous Integration using Docker & Jenkins
PPTX
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
PDF
Docker and Puppet for Continuous Integration
PDF
Cicd.pdf
PDF
Using Containers to More Effectively Manage DevOps Continuous Integration
PDF
Cloud Native CI/CD with Jenkins X and Knative Pipelines
PDF
Docker & ci
PDF
ExpoQA 2017 Docker and CI
PDF
Continuous Integration/Deployment with Docker and Jenkins
PDF
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
PPTX
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
PDF
LXC to Docker Via Continuous Delivery
PDF
[@NaukriEngineering] Docker 101
PPTX
SDLC Using Docker for Fun and Profit
PDF
Building and Deploying a Static Application using Jenkins and Docker in AWS
Exploring Docker in CI/CD
IM5- Introduction to DevOps tooools.pptx
Docker + jenkins in the enterprise (3)
CI with Docker in Docker
Using Docker EE in a CI/CD Workflow
Continuous Integration using Docker & Jenkins
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker and Puppet for Continuous Integration
Cicd.pdf
Using Containers to More Effectively Manage DevOps Continuous Integration
Cloud Native CI/CD with Jenkins X and Knative Pipelines
Docker & ci
ExpoQA 2017 Docker and CI
Continuous Integration/Deployment with Docker and Jenkins
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Reduce DevOps Friction with Docker & Jenkins by Andy Pemberton, Cloudbees
LXC to Docker Via Continuous Delivery
[@NaukriEngineering] Docker 101
SDLC Using Docker for Fun and Profit
Building and Deploying a Static Application using Jenkins and Docker in AWS
Ad

More from Sreenivas Makam (20)

PDF
GKE Tip Series - Usage Metering
PDF
GKE Tip Series how do i choose between gke standard, autopilot and cloud run
PDF
Kubernetes design principles, patterns and ecosystem
PDF
My kubernetes toolkit
PDF
Top 3 reasons why you should run your Enterprise workloads on GKE
PDF
How Kubernetes helps Devops
PDF
Deep dive into Kubernetes Networking
PPTX
Docker Networking Tip - Load balancing options
PPTX
Docker Networking Tip - Macvlan driver
PPTX
Docker Networking Overview
PPTX
Docker Networking - Common Issues and Troubleshooting Techniques
PPTX
Compare Docker deployment options in the public cloud
PPTX
Docker Mentorweek beginner workshop notes
PPTX
Devops in Networking
PPTX
Docker Security Overview
PPTX
Docker 1.11 Presentation
PPTX
Service Discovery using etcd, Consul and Kubernetes
PPTX
CoreOS Overview and Current Status
PPTX
Container Monitoring with Sysdig
PPTX
Docker 1.9 Feature Overview
GKE Tip Series - Usage Metering
GKE Tip Series how do i choose between gke standard, autopilot and cloud run
Kubernetes design principles, patterns and ecosystem
My kubernetes toolkit
Top 3 reasons why you should run your Enterprise workloads on GKE
How Kubernetes helps Devops
Deep dive into Kubernetes Networking
Docker Networking Tip - Load balancing options
Docker Networking Tip - Macvlan driver
Docker Networking Overview
Docker Networking - Common Issues and Troubleshooting Techniques
Compare Docker deployment options in the public cloud
Docker Mentorweek beginner workshop notes
Devops in Networking
Docker Security Overview
Docker 1.11 Presentation
Service Discovery using etcd, Consul and Kubernetes
CoreOS Overview and Current Status
Container Monitoring with Sysdig
Docker 1.9 Feature Overview

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
cuic standard and advanced reporting.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
20250228 LYD VKU AI Blended-Learning.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
cuic standard and advanced reporting.pdf
A Presentation on Artificial Intelligence
Advanced methodologies resolving dimensionality complications for autism neur...

CI, CD with Docker, Jenkins and Tutum

  • 1. CI, CD WITH DOCKER, JENKINS AND TUTUM Presenter Name: Sreenivas Makam Presented at: Gopaddle Meetup Bangalore Presentation Date: Jan 23, 2016
  • 2. About me • Senior Engineering Manager at Cisco Systems Data Center group • Personal blog can be found at https://sreeninet.wordpress.com/ and my hacky code at https://github.com/smakam • Working currently on “Mastering CoreOS” book. To be published early March 2016. (http://www.amazon.com/Mastering- CoreOS-Sreenivas-Makam- ebook/dp/B01AI0NKRQ/ref=sr_1_1?ie=UT F8&qid=1453472526&sr=8- 1&keywords=mastering+coreos) • You can reach me on LinkedIn at https://in.linkedin.com/in/sreenivasmaka m
  • 3. CI/CD definition • Continuous Integration (CI) refers to the process of making an executable or a Container image automatically after developer has done the UT and commit. • Continuous delivery refers to the process of taking the developer built image, setting up the staging environment for testing the image and deploying it successfully for production.
  • 4. Why Docker is suited for CI/CD? • Ability to create consistent build environments • Build environments can be created and removed with ease • Ability to run multiple isolated build jobs • Create consistent staging and production deployment environment • Assists with different upgrade patterns(like Rolling upgrade with Canary pattern)
  • 5. Jenkins with Docker - Advantages • Jenkins provides the complete workflow for CI/CD and has good integration with testing and code analysis tools. • Docker provides Containers and Container related tools. • Jenkins with Docker gives a Container based CI/CD workflow and integration with third-party tools for creating a customized workflow. • Jenkins can be run as Docker Container
  • 6. Jenkins Docker plugins • Docker Workflow – provides first-class support for Jenkins Workflow to build real world CD pipelines for containerized applications using Jenkins and Docker • Build and Publish – builds projects from a Dockerfile and pushes a tested and proven gold image to Docker Hub • Docker Hub Notification – triggers downstream jobs when a tagged container is pushed to Docker Hub • Docker Traceability – identifies which build pushed a particular container that is running in production and displays that on the Jenkins builds page • Docker Slaves – uses Docker containers as standardized build environments shared between Jenkins masters to improve isolation and elasticity • Docker Custom Build Environment – specifies customized build environments as Docker containers Source: https://www.cloudbees.com/continuous-delivery/jenkins-docker
  • 7. Jenkins Docker slave • Rather than running builds jobs directly on slave host, Jenkins Docker executors creates Containers to run build jobs. • For different projects, different Docker Containers can be used. • Parallel jobs can be run on a single slave host with full isolation between jobs. • To create Docker builds inside a Docker Container, either Docker in Docker can be used or Docker socket in host can be exposed to CI container by bind-mounting it with the - v flag docker run -v /var/run/docker.sock:/var/run/docker.sock ...
  • 8. Jenkins with Docker – Use cases • Create Docker Container images with Github and Docker repository integration. Github -> Jenkins -> Docker slave -> Docker image -> Dockerhub • Ability to run multiple Docker build executors in a single Jenkins slave instance. Github -> Jenkins -> Docker slave -> C programming project - > Testing Github -> Jenkins -> Docker slave -> Java programming project -> Testing • Deploy Container images in staging or production Docker hub -> Jenkins -> Docker slave -> Testing -> Deployment using docker-compose
  • 9. Tutum • SaaS Container platform that can be used to build, deploy and manage Docker Containers • Hides orchestration, networking and storage complexity. • Provides GUI, CLI as well as API access • Gives own private repository within Tutum per user, other repositories can also be used • Logging, monitoring, Scaling and HA is built-in • Does rolling upgrade automatically • In Beta phase, free to try
  • 10. Tutum for CI, CD • Tutum integrates well with Github as well as all Docker repositories. • Provides private Docker registry in Tutum • Tutum CI/CD Use case Github ->Tutum -> Tutum repository -> Deploy • Provides flexibility to create different staging and production deployment environments • Provides rolling upgrade capability
  • 11. Comparing Tutum with Jenkins • Jenkins provides better integration with third-party testing and code analysis tools. • Tutum is available only as SaaS. Jenkins can be run on- premise. • Tutum provides its own registry, inherent load balancing, service discovery capabilities and rolling upgrade facilities. • For pure Container based CI/CD, Tutum would be better. If there is a need to integrate legacy and Container based applications and also use third-party tools, Jenkins is the only option.
  • 12. CI, CD Demo Github project (https://github.com/smakam/ hit-counter-demo) Jenkins Docker slave Dockerhub Smakam/hit-counter- demo Docker hub (Smakam/countertest) Docker-compose deploy Tutum tutum.co/smakam/cou nt Stackfile Deploy User commit Auto Trigger
  • 13. Related blogs More details on this topic and recorded demo are in the 2 blogs below: • https://sreeninet.wordpress.com/2016/01/2 3/tutum-introduction/ • https://sreeninet.wordpress.com/2016/01/2 3/ci-cd-with-docker-jenkins-and-tutum/
  • 14. References • Jenkins Docker plugin (https://wiki.jenkins- ci.org/display/JENKINS/Docker+Plugin) • Docker CI Use case (https://www.docker.com/products/use-cases) • Continuous delivery with Docker and Jenkins (https://www.docker.com/sites/default/files/UseCase/RA_CI%20with%2 0Docker_08.25.2015.pdf, https://pages.cloudbees.com/rs/083-PKZ- 512/images/Docker-Jenkins-Continuous-Delivery.pdf ) • Tutum Support (https://support.tutum.co) • Docker in Docker for CI (http://jpetazzo.github.io/2015/09/03/do-not- use-docker-in-docker-for-ci/, https://forums.docker.com/t/how-can-i- run-docker-command-inside-a-docker-container/337/6 ) • CI platform (https://blog.codecentric.de/en/2015/10/continuous- integration-platform-using-docker-container-jenkins-sonarqube-nexus- gitlab/)

Editor's Notes

  • #15: Microsoft Confidential