×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
12 months of Production Time with
Slide 2
Slide 2 text
Production Always raw hardware for best performance.
Slide 3
Slide 3 text
Staging Raw hardware for quick feedback loops.
Slide 4
Slide 4 text
Fast. Repeatable. Easy.
Slide 5
Slide 5 text
Fast. Repeatable. Easy. But it only solves 1 problem well, as all real Unix tools do.
Slide 6
Slide 6 text
[x] Gerhard [x] Platform
Slide 7
Slide 7 text
[x] Gerhard [x] Platform
Slide 8
Slide 8 text
WWGD? Does things as I would do them: in a shell, over SSH.
Slide 9
Slide 9 text
Declarative nature Easy to follow & debug
Slide 10
Slide 10 text
Thin abstractions Fast feedback
Slide 11
Slide 11 text
Batteries included Point and... play!
Slide 12
Slide 12 text
$ ./bin/p $ p $ p -t docker,registry $ p -t juicer $ p -t focus -l disco -vvv
Slide 13
Slide 13 text
$ ./bin/p $ p $ p -t docker,registry $ p -t juicer $ p -t focus -l disco -vvv
Slide 14
Slide 14 text
$ ./bin/p $ p $ p -t docker,registry $ p -t juicer $ p -t focus -l disco -vvv
Slide 15
Slide 15 text
$ ./bin/p $ p $ p -t docker,registry $ p -t juicer $ p -t focus -l disco -vvv
Slide 16
Slide 16 text
$ ./bin/p $ p $ p -t docker,registry $ p -t juicer $ p -t focus -l disco -vvv
Slide 17
Slide 17 text
$ which gp > aliased to git push $ which d > aliased to docker $ which dr > aliased to docker run
Slide 18
Slide 18 text
$ which gp > aliased to git push $ which d > aliased to docker $ which dr > aliased to docker run
Slide 19
Slide 19 text
$ which gp > aliased to git push $ which d > aliased to docker $ which dr > aliased to docker run
Slide 20
Slide 20 text
The Gerhard Platform Simple solutions to production Docker challenges
Slide 21
Slide 21 text
$ which gp > aliased to git push $ which d > aliased to docker $ which dr > aliased to docker run
Slide 22
Slide 22 text
Image management dr registry localhost:5000/nginx:1.6.1
Slide 23
Slide 23 text
Service dependencies ansible-playbook runsv
Slide 24
Slide 24 text
Container supervision dr --restart runsv
Slide 25
Slide 25 text
Log management dr -v /mnt/log/nginx svlogd
Slide 26
Slide 26 text
Raw network I/O dr --net host
Slide 27
Slide 27 text
Raw disk I/O dr -v /mnt/mysql LVM... with snapshots o.O
Slide 28
Slide 28 text
Service discovery dr -p 127.0.0.1:60000:3000 SO_REUSEPORT
Slide 29
Slide 29 text
Service discovery dr -p 127.0.0.1:60000:3000 SO_REUSEPORT
Slide 30
Slide 30 text
Firewall dr -p 127.0.0.1::3306 iptables & ferm
Slide 31
Slide 31 text
Config templating dr -v /opt/nginx/conf pkill -HUP -f nginx.*master
Slide 32
Slide 32 text
App runtimes localhost:5000/ruby:2.1.2 dr -v /mnt/[app]
Slide 33
Slide 33 text
Monitoring dr --privileged New Relic & Linode Longview
Slide 34
Slide 34 text
Sysadmin tools dr --privileged htop, ntop, iptraf, dstat, vnstat ...
Slide 35
Slide 35 text
The Gerhard Platform Just how fast is it? Very.
Slide 36
Slide 36 text
The Gerhard Platform Just how fast is it? Very
Slide 37
Slide 37 text
5 minutes 14.04 base provision
Slide 38
Slide 38 text
10 minutes Cold production setup
Slide 39
Slide 39 text
2.5 minutes Warm production setup
Slide 40
Slide 40 text
15 minutes Re-create production
Slide 41
Slide 41 text
Thank you Docker For enabling my next generation Gerhard Platform
Slide 42
Slide 42 text
Thank you Ansible For letting me learn and iterate quickly, even in production
Slide 43
Slide 43 text
Perfect software is the one that you don't know well enough.
Slide 44
Slide 44 text
gerhardlazu