https://jfrog.com/shownotes
SLIDES
VIDEO
@jbaruch
LINKS
#SKILupDay
COMMENTS, RATINGS
http://jfrog.com/shownotes
RAFFLE
Slide 8
Slide 9
Slide 10
The Promotion Pyramid Prod
Build/Deploy time
Pre-Prod
Staging
Integr. tests Dev Integration tests Development builds
Amount of builds
Amount of binaries
Slide 11
Pipeline: quality gates and visibility If quality requirments are hit
CI SERVER
1
If quality requirments are hit
2
Integration
If quality requirments are hit
3
System Testing
4
Staging
Production
*
@jbaruch
#SKILupDay
Letās docker build in every env!
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 15
Slide 16
Thatās why. FROM ubuntu
Latest version
RUN apt-get install -y software-properties-common python RUN apt-get install -y nodejs RUN mkdir /var/www Latest version ADD app.js /var/www/app.js
Latest version Latest version
CMD [ā/usr/bin/nodeā, ā/var/www/app.jsā] @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 17
Thatās why. FROM ubuntu:19.04
Better now?
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ā] @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 18
Thatās why. FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98 And now? 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ā] @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 19
Thatās why. FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98 RUN apt-get install -y software-properties-common python RUN apt-get install -y nodejs RUN mkdir /var/www What about those? ADD app.js /var/www/app.js CMD [ā/usr/bin/nodeā, ā/var/www/app.jsā] @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 20
Thatās why. FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98 RUN mvn clean install
What about this?
CMD ājava ājar Main.classā @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 21
Thatās why. FROM ubuntu:4033353383af19ec179c01dda7f355a246c6adcafaf93c8f98 RUN download_random_sh*t_from_the_internet.sh
And how about this?
CMD [ā/usr/bin/nodeā, ā/var/www/app.jsā] @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 22
Thatās why you donāt trust Docker
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 23
Slide 24
Slide 25
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!!! @jbaruch
#SKILupDay
http://jfrog.com/shownotes
Separate registries per environment If quality requirments are hit
CI SERVER
1
If quality requirments are hit
2
Integration
If quality requirments are hit
3
System Testing
4
Staging
Production
*
@jbaruch
#SKILupDay
The Anatomy of Docker Tag
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 36
Wait a second, how can I have more than one registry per host now?!
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 37
How can we support this?
https://host:8081/registry/docker-dev/busybox https://host:8081/registry/docker-qa/busybox https://host:8081/registry/docker-staging/busybox https://host:8081/registry/docker-prod/busybox
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 38
āONE REGISTRY PER HOST OUGHT TO BE ENOUGH FOR ANYBODY.ā
Virtual hosts/ports to the rescue docker tag host:port/busybox
Registry host
@jbaruch
Tag name
#SKILupDay
http://jfrog.com/shownotes
Slide 41
Virtual hosts/ports to the rescue docker tag host:port/busybox
Registry host
Tag name
https://host:port/v2/busybox
@jbaruch
#SKILupDay
http://jfrog.com/shownotes
Slide 42
Virtual hosts/ports to the rescue docker tag host:port/busybox
Registry host
Tag name
https://host:port/v2/busybox https://host:8081/registry/docker-dev/busybox
Context name
Registry name
Tag name
Slide 43
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
#SKILupDay
http://jfrog.com/shownotes