make for docker

25
French Engineers Alumni Network Make For Docker Singapore #11 - 06/12/2016 @ By Mathieu François

Upload: mathieu-francois-barseghian

Post on 16-Jan-2017

131 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Make for docker

French Engineers Alumni Network

Make For DockerSingapore #11 - 06/12/2016 @

By Mathieu François

Page 2: Make for docker

System container

Vs

Application container

Docker 101: The Ubuntu of Containers

Page 3: Make for docker

Docker 101: Container vs VM

Page 4: Make for docker
Page 5: Make for docker

Swarm Architecture

Page 6: Make for docker
Page 7: Make for docker
Page 8: Make for docker

Swarm “Cabinet”

Many Host OS serversScaled on-demand

1 or few Host OS ServersFixed number

Few Docker images Many Docker images

Many containers running per image Scaled on-demand

1 or few containers running per image Fixed number

Massively Scalable Application Optimization of limited resourcesIsolation of team activities and servicesPoor man’s scalability

Containers are “Cattle” Containers are “Pets”

Swarm vs “Cabinet” Architecture

Page 9: Make for docker

Cabinet Stage 1: Staging vs Live

Page 10: Make for docker

Cabinet Stage 2: Data & Backup

Page 11: Make for docker

Cabinet Stage 3: Infrastructure Services

Page 12: Make for docker

Cabinet Stage 4: Container Templates

Page 13: Make for docker

“Cabinet” Troubleshooting

Page 14: Make for docker

● runit http://smarden.org/runit/● “The DJB way”

http://thedjbway.b0llix.net/● DJB site http://cr.yp.to/

The “Unix Way”

vs

Monolithic-Fat-And-Ugly-Enterprise approach (systemd)

Lightweight Multi-Process Containers

Page 15: Make for docker

Problem: Dockerfiles & Copy/Paste “Inflation”

Page 16: Make for docker

Imagine a Docker World Where we could...

● Define small pieces of configuration or functionality, then mix them together into production docker images

● "Inherit" from multiple image builds ● Easily manage images that pull files from multiple directories on

our filesystem ● Rebuild an entire stack of images as needed with a single

command

Page 17: Make for docker

Sounds Like Good Old Fashioned Makefiles

Page 18: Make for docker

DockerMake

● “Build and manage stacks of docker images - a dependency graph for Dockerfiles”

● https://github.com/avirshup/DockerMake● Without the ugly old-school syntax of GNU Makefiles

Page 19: Make for docker

DockerMake - DockerMake.yaml

gliderlabs/alpine:3.4

alpine-common:2.0

alpine-runit:2.0

alpine-nginx:2.0

alpine-nginx-vhost:2.0

alpine-common-clean:2.0

nginx-vhost:2.0

requires

requires

requires

requires

requires

FROM

image

official repository

module

Page 20: Make for docker
Page 21: Make for docker

DockerMake - No Arguments

Displays all the available targets

Page 22: Make for docker

DockerMake - Build 1 Target

Page 23: Make for docker

DockerMake - Images

Intermediate build steps also generate images in order to optimize the Docker layers

Page 24: Make for docker

They didn’t use DockerMake!