SlideShare a Scribd company logo
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
whoami
Baruch Sadogursky, JFrog Developer Advocate, @jbaruch
Show notes!
• http://jfrog.com/shownotes
– Video
– Slides
– Links
– Feedback
– Raffle! (come early)
JFrog Xray
Poll Time!
Poll Time!
üHeard about Docker
üCan do the tutorial
üPoCing, playing etc.
üProduction, baby!
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
JFrog Artifactory + Docker
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Who’s using Docker and nothing else?
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
The Promotion Pyramid
Development	builds
Dev Integration	tests
Integr.	tests
Staging
Pre-Prod
Prod
Amount	of	builds
Build/Deploy	time
Amount	of	
binaries
Pipeline: Quality Gates and Visibility
Source:	Agile	ALM,	Michael	Hüttermann,	Manning	Publications	Co.	
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
$docker build
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Too easy!
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu
RUN apt-get install -y software-properties-common python
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
Latest	version
Latest	version
Latest	version
Latest	version
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu:14.04
RUN apt-get install -y software-properties-common python
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
Better	now?
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98
RUN apt-get install -y software-properties-common python
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
And	now?
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98
RUN apt-get install -y software-properties-common python
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
And	now?What	about	those?
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98
RUN mvn clean install
CMD ”java –jar Main.class"
What	about	this?
That’s why.
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98
RUN download_random_sh*t_from_the_internet.sh
CMD ["/usr/bin/node", "/var/www/app.js"]
And	how	about	this?
That’s why you don’t trust Docker
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Traditional Server Pattern
http://martinfowler.com/bliki/ImmutableServer.html
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Immutable Server Pattern
http://martinfowler.com/bliki/ImmutableServer.html
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
What’s up with the gates?!
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
What’s up with the gates?!
What’s up with the gates?!
- QA shouldn’t test dev images
What’s up with the gates?!
- QA shouldn’t test dev images
- non-tested images shouldn't be
staged
What’s up with the gates?!
- QA shouldn’t test dev images
- non-tested images shouldn't be
staged
- non-staged, non-tested or dev
images shouldn’t end up in
production!!!
Not so fast…
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Trumped-up limitations
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
The Anatomy of Docker Tag
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Wait	a	second,	how	can	I	
have	more	than	one	
repository	per	host	now?!
How can we support this?
https://host:8081/artifactory/docker-dev/busybox
https://host:8081/artifactory/docker-staging/busybox
https://host:8081/artifactory/docker-qa/busybox
https://host:8081/artifactory/docker-prod/busybox
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
“ONEREGISTRYPERHOSTOUGHTTOBEENOUGHFORANYBODY.”
Panic!
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Virtual hosts/ports to the rescue
Registry	host Tag	name
docker tag host:port/busybox
Virtual hosts/ports to the rescue
https://host:port/v2/busybox
Registry	host Tag	name
docker tag host:port/busybox
Virtual hosts/ports to the rescue
https://host:8081/artifactory/docker-dev/busybox
Virtual	repository	name Tag	name
https://host:port/v2/busybox
Context	name
Registry	host Tag	name
docker tag host:port/busybox
server {
listen 5001;
server_name 192.168.99.100;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/docker-dev/$1/$2;
…
}
}
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
But then you realize…
Wait	a	second,	now	I	need	
to	pull,	retag	and	push	for	
every	step?!
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
Anatomy of a container
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Our Layers
Application:	
••.war	file
Framework:	
••JDK8	+	Wildfly
Base:	
••CentOS
Framework build
- Verified base image
- Add system dependencies
from artifactory
- JDK
- Tomcat
- Own it!
Minimal Framework build Dockerfile
FROM centos:7
MAINTAINER you@yourorg.com
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Application build
- Framework is your base
- Run a java build
- Add a file to base
- Done!
Application build Dockerfile
FROM yourorg-docker.jfrog.io/yourorg/framework:latest
MAINTAINER you@yourorg.com
ADD https://yourorg.jfrog.io/yourorg/java-release-local/…/app-[RELEASE].war
/opt/jboss/wildfly/standalone/deployments/app.war
Application build Dockerfile
FROM yourorg-docker.jfrog.io/yourorg/framework:latest
MAINTAINER you@yourorg.com
ADD https://yourorg.jfrog.io/yourorg/java-release-local/…/app-[RELEASE].war
/opt/jboss/wildfly/standalone/deployments/app.war
Application build Dockerfile
FROM yourorg-docker.jfrog.io/yourorg/framework:latest
MAINTAINER you@yourorg.com
ADD https://yourorg.jfrog.io/yourorg/java-release-local/…/app-[RELEASE].war
/opt/jboss/wildfly/standalone/deployments/app.war
Application build Dockerfile
FROM yourorg-docker.jfrog.io/yourorg/framework:latest
MAINTAINER you@yourorg.com
ADD https://yourorg.jfrog.io/yourorg/java-release-local/…/app-[RELEASE].war
/opt/jboss/wildfly/standalone/deployments/app.war
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Framework	Pipeline
Application	Pipeline
Framework	Pipeline
Application	Pipeline
Framework	Pipeline
Application	Pipeline
@JBARUCH #DEVOPSDAYSAUSTIN HTTP://JFROG.COM/SHOWNOTES
Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017
HIGH QUALITY
(software and information) SPEED LOW COST
(automation)
Fast releases > Modular > Automation
Conclusions: Release Fast or Die!
Q&A and Links
• @jbaruch
• #devopsdaysaustin
• http://jfrog.com/shownotes
– Video
– Slides
– Links
– Feedback
– Raffle! (come early)

More Related Content

PDF
Patterns and antipatterns in Docker image lifecycle as was presented at Globa...
PDF
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
PPTX
Patterns & Antipatterns in Docker Image Lifecycle
PDF
Best Practices In Implementing Container Image Promotion Pipelines
PDF
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
PDF
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
PDF
Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017
PDF
From devOps to front end Ops, test first
Patterns and antipatterns in Docker image lifecycle as was presented at Globa...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns & Antipatterns in Docker Image Lifecycle
Best Practices In Implementing Container Image Promotion Pipelines
Patterns and antipatterns in Docker image lifecycle as was presented at Oracl...
Patterns and antipatterns in Docker image lifecycle @ Codemash 2017
Patterns and antipatterns in Docker image lifecycle @ DevOpsDays Charlotte 2017
From devOps to front end Ops, test first

What's hot (20)

PDF
html5 & phonegap
PDF
Show an Open Source Project Some Love and Start Using Travis-CI
PDF
How QCLean Works? Introduction to Browser Extensions
PDF
Testing containers with TestContainers @ AJUG 7/18/2017
PPTX
Intro. to Git and Github
PDF
PhpStorm for WordPress
PDF
Real Developer Tools for WordPress by Stefan Didak
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Downtown San J...
PDF
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
PDF
快快樂樂打造自動化開發環境
PDF
PHP Conf Taiwan 2016 自動化與持續整合實作工作坊
PDF
Taking HTML5 video a step further
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Detroit...
PPTX
BotCommons: Metadata for Bots - Devoxx 2017
PDF
How the Atlassian Plugin SDK Cured Cancer and Reunited Soundgarden - Atlassia...
PDF
Auf Augenhöhe mit Android Studio und Gradle
PDF
Android Studio und gradle
PPTX
A painless self-hosted Git service: Gitea
PDF
Design and Evolution of cyber-dojo
PDF
Building Your Own Native App Visual Testing Module with Appium
html5 & phonegap
Show an Open Source Project Some Love and Start Using Travis-CI
How QCLean Works? Introduction to Browser Extensions
Testing containers with TestContainers @ AJUG 7/18/2017
Intro. to Git and Github
PhpStorm for WordPress
Real Developer Tools for WordPress by Stefan Didak
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Downtown San J...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
快快樂樂打造自動化開發環境
PHP Conf Taiwan 2016 自動化與持續整合實作工作坊
Taking HTML5 video a step further
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Detroit...
BotCommons: Metadata for Bots - Devoxx 2017
How the Atlassian Plugin SDK Cured Cancer and Reunited Soundgarden - Atlassia...
Auf Augenhöhe mit Android Studio und Gradle
Android Studio und gradle
A painless self-hosted Git service: Gitea
Design and Evolution of cyber-dojo
Building Your Own Native App Visual Testing Module with Appium
Ad

Similar to Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017 (20)

PDF
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
PDF
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
PPTX
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
PDF
Trust your containers in production as was presented at DockerCon 2017
PPTX
JFrog container registry - DevOps extravaganza
PDF
Docker presentasjon java bin
PPTX
Docker Container Lifecycles, Problem or Opportunity? by Baruch Sadogursky, JFrog
PPTX
Best Practices for Managing Docker Versions as presented at JavaOne 2017
PDF
Artifactory Essentials Workshop on August 27, 2020 by JFrog
PDF
DockerCon EU 2015: Day 1 General Session
PPTX
DockerCon 15 Keynote - Day 2
PPTX
Docker and Vagrant usage in OPENi
PDF
はじめての JFrog Artifactory
PDF
Work shop - an introduction to the docker ecosystem
PDF
Accelerate your software development with Docker
PPTX
Accelerate your development with Docker
PDF
Docker: automation for the rest of us
PDF
Tiad - Docker: Automation for the rest of us
PDF
Toplog candy elves - HOCM Talk
ODP
The journey to container adoption in enterprise
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Building a private CI/CD pipeline with Java and Docker in the cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
Trust your containers in production as was presented at DockerCon 2017
JFrog container registry - DevOps extravaganza
Docker presentasjon java bin
Docker Container Lifecycles, Problem or Opportunity? by Baruch Sadogursky, JFrog
Best Practices for Managing Docker Versions as presented at JavaOne 2017
Artifactory Essentials Workshop on August 27, 2020 by JFrog
DockerCon EU 2015: Day 1 General Session
DockerCon 15 Keynote - Day 2
Docker and Vagrant usage in OPENi
はじめての JFrog Artifactory
Work shop - an introduction to the docker ecosystem
Accelerate your software development with Docker
Accelerate your development with Docker
Docker: automation for the rest of us
Tiad - Docker: Automation for the rest of us
Toplog candy elves - HOCM Talk
The journey to container adoption in enterprise
Ad

More from Baruch Sadogursky (20)

PDF
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
PDF
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
PDF
Data driven devops as presented at QCon London 2018
PDF
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
PDF
Java Puzzlers NG S03 a DevNexus 2018
PDF
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
PDF
Data driven devops as presented at Codemash 2018
PDF
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
PDF
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
PPTX
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
PDF
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
PDF
Let’s Wing It: A Study in DevRel Strategy
PDF
Log Driven First Class Customer Support at Scale
PPTX
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
PDF
Groovy Puzzlers S04: The Bytecode Bites Back at Gr8Conf US 2017
PDF
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Gr8Conf 2017
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
Data driven devops as presented at QCon London 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
Java Puzzlers NG S03 a DevNexus 2018
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
Data driven devops as presented at Codemash 2018
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
Let’s Wing It: A Study in DevRel Strategy
Log Driven First Class Customer Support at Scale
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
Groovy Puzzlers S04: The Bytecode Bites Back at Gr8Conf US 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Gr8Conf 2017

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
KodekX | Application Modernization Development
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Building Integrated photovoltaic BIPV_UPV.pdf
Machine learning based COVID-19 study performance prediction
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Programs and apps: productivity, graphics, security and other tools
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Spectroscopy.pptx food analysis technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx

Patterns and antipatterns in Docker image lifecycle as was presented at DevopsDays Austin 2017