D O C K E R B A S E D
I N F R A S T R U C T U R E
R I C A R D O C O E L H O
Slide 2
Slide 2 text
– H A L F T H E P E O P L E
“Docker is NOT virtualization”
Slide 3
Slide 3 text
– T H E O T H E R H A L F
“Docker IS virtualization”
Slide 4
Slide 4 text
– S O M E G U Y W H O K N O W S S T U F F
“It is, indeed. But not the way you might think.”
Slide 5
Slide 5 text
H Y P E R V I S O R
I T ’ S N O T A N
Slide 6
Slide 6 text
R E S O U R C E
S H A R I N G
S T R AT E G Y
B U T R AT H E R A B A L A N C E D
Slide 7
Slide 7 text
K E R N E L - B A S E D
V I R T U A L
M A C H I N E
A L S O K N O W N A S
Slide 8
Slide 8 text
I ’ M A D E V
W H Y S H O U L D I C A R E ?
Slide 9
Slide 9 text
W E L L … T O Q U O T E A F E W…
• No more “Works on my machine”
• Dev and Prod environments are exactly the same
• All dependencies are provided, so…
• Zero configuration deploy
• Need a quick fix? Just start it all over again…
Slide 10
Slide 10 text
I ’ M A S E R V E R G U Y
W H Y S H O U L D I C A R E ?
Slide 11
Slide 11 text
A G A I N …
• No more “Works on my machine”
• Dev and Prod environments are exactly the same
• All dependencies are provided
• Zero configuration deploy
• Need a quick fix? Just start it all over again…
Slide 12
Slide 12 text
P L U S …
• Easy to expand
• One ring to update them all
• Do you really wanna know about Java dependencies?
• Is it broken? Not your fault… The metal is hot…
Slide 13
Slide 13 text
I ’ M A N E T W O R K G U Y
I D O N ’ T C A R E
Slide 14
Slide 14 text
S U R E . M O V I N G O N …
Slide 15
Slide 15 text
D O C K E R I M A G E S
B U I L D I N G
Slide 16
Slide 16 text
D O C K E R F I L E
FROM php:7.0-apache
MAINTAINER Ricardo Coelho
COPY config/php.ini /usr/local/etc/php/
COPY src/ /var/www/html/
RUN curl -sS https://getcomposer.org/installer | \
php -- --install-dir=/usr/local/bin --filename=composer && \
chmod +x /usr/local/bin/composer
Slide 17
Slide 17 text
A L P I N E L I N U X
FROM scratch
ADD rootfs.tar.gz /
Slide 18
Slide 18 text
D O C K E R H U B
Slide 19
Slide 19 text
WAT C H O U T F O R Y O U R M I N D S E T…
… T H I S I S J U S T E M B A R A S S I N G !
D E B I A N
A PA C H E M Y S Q L
P H P D R I V E R
A P P L I C AT I O N
Ridiculous Image
Slide 20
Slide 20 text
T H AT ’ S WAY B E T T E R !
D E B I A N
M Y S Q L
Database
D E B I A N
A PA C H E
P H P
A P P L I C AT I O N
Application
PAT H
Volume
Slide 21
Slide 21 text
I S N ’ T T H AT H A R D E R T O
M A N A G E ?
Slide 22
Slide 22 text
D O C K E R C O M P O S E
O F C O U R S E N O T ! M E E T
Slide 23
Slide 23 text
D O C K E R - C O M P O S E . Y M L
version: '2'
services:
web:
image: nexy/php7.0:apache
ports:
- "8080:80"
volumes:
- nexy:/var/nexy/
depends_on:
- db
db:
image: postgres:9.6.1-alpine
expose:
- "5432"
volumes:
- nexy:/var/nexy/
volumes:
nexy:
driver: local
Slide 24
Slide 24 text
D O C K E R - C O M P O S E U P
Slide 25
Slide 25 text
W H AT I F I T O U T G R O W S
M Y S E R V E R ?
Slide 26
Slide 26 text
D O C K E R S WA R M
Slide 27
Slide 27 text
A N D W H AT I F I T O U T G R O W S
M Y D ATA C E N T E R ?
Slide 28
Slide 28 text
C A N I H A Z C L O U D P L AT F O R M S ?
Slide 29
Slide 29 text
H E T E R O G E N E O U S
T H E R E M I G H T B E A S L I G H T P R O B L E M I F Y O U R E N V I R O N M E N T I S