Meetup While42 in San-Francisco
Running containers at#While42 (San-Francisco)
View Slide
$100$25$25 $25 $25
25 millionmembers in January 2016
22 countries
20M40M80M160M129M2014 2015 2016 2017Travelerstransported2014
metal serversservicesrun. containers120150+2000+
github.com/coreos/rkt
$ (sudo) rkt run ./image.aciArchive of filesystem& instructions ofwhat to runForeground processRequire root
$ rkt run example.org/image.aciFetch the image firstand then run it
How to build an ACI?
App Container (appc)Open specification that defines several aspectsof how to run applications in containers
Pronounced « digg-er »github.com/blablacar/dgr
├── aci-manifest.yml├── attributes│ └── redis.yml├── runlevels│ └── build│ └── install.sh└── templates└── etc└── redis└── redis.conf.tmpl
name: aci-redisaci:app:exec:- /usr/bin/redis-server- /etc/redis/redis.conf
name: aci-redisaci:app:exec:- /usr/bin/redis-server- /etc/redis/redis.confdependencies:- aci-debianNot included inredis image
Runlevel: Build
#!/bin/bashapt install -y redis-server
Runlevel: Prestart
Dump configuration filesInitialize database/userEnable/Disable modulesChange mod/owner
# templates/etc/redis/redis.conf.tmpldaemonize noport {{ .redis.port }}...# attributes/redis.ymldefault:redis:port: 6379Resolved atruntime
PODRunning several ACIsin the same context
name: example.org/pod-myapp:1pod:apps:- dependencies:- example.org/aci-nginx:1.8.1app:exec: [/usr/sbin/nginx, -g, daemon off]- dependencies:- example.org/aci-php:5.6- example.org/aci-myapp:42app:exec: [/usr/sbin/php5-fpm, -F]
$ rkt run \example.org/pod-myapp_aci-nginx:1 \example.org/pod-myapp_aci-php:1
pod-myapp_aci-nginxpod-myapp_aci-phpLinux kernelother process...1.2.3.4172.16.8.8:80:9000
Services discovery withsmartstacksynapse + nerveby Airbnb
Zookeeperhaproxyphphealtcheckmysqlclientserver
Thank you!@BlaBlaCarTech@MattKetmoblablatech.com