Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Running container at BlaBlaCar — While 42 (San-Francisco)
Matthieu Moquet
April 06, 2016
Technology
0
290
Running container at BlaBlaCar — While 42 (San-Francisco)
Meetup While42 in San-Francisco
Matthieu Moquet
April 06, 2016
Tweet
Share
More Decks by Matthieu Moquet
See All by Matthieu Moquet
Migrating to containers
mattketmo
0
290
CQRS & Event Sourcing — LavaJUG
mattketmo
1
400
ForumPHP 2015
mattketmo
0
520
CQRS & Event Sourcing
mattketmo
7
950
Take care of your logs with ELK
mattketmo
7
530
From 1 to 20 million users the technical story of BlaBlaCar
mattketmo
1
1.6k
Event Sourcing
mattketmo
9
3.2k
Localization should not be a pain (anymore)
mattketmo
1
570
Understanding git
mattketmo
5
470
Other Decks in Technology
See All in Technology
技術広報の役割を定義してみた 2022年春
afroscript
3
2.3k
GitHub 엔터프라이즈 어카운트 소개 및 엔터프라이즈 서버 구축 경험
posquit0
1
130
開発者のための GitHub Organization の安全な運用と 継続的なモニタリング
flatt_security
2
1.7k
Research Paper Introduction #98 "NSDI 2022 recap"
cafenero_777
0
180
mROS 2のススメ
takasehideki
0
290
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.1k
キャッチアップ Android 13 / Catch up Android 13
yanzm
2
800
様々な現場のPower Platform ~小さなエンジニアの奮闘記~
hyodol2513
0
1.7k
スタートアップ入社4日目までに考えたAWSのセキュリティ向上/ Startup AWS Security
shonansurvivors
3
2.4k
AWS CloudShellという推しサービスについて / lt-20220502-jawsug-cli
becominn
0
630
LINEスタンプの実例紹介 小さく始める障害検知・対応・振り返りの 改善プラクティス
line_developers
PRO
3
1.2k
msal.jsのあれこれ
takas0522
0
1.3k
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Unsuck your backbone
ammeep
659
55k
What’s in a name? Adding method to the madness
productmarketing
11
1.5k
Why Our Code Smells
bkeepers
PRO
324
54k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Automating Front-end Workflow
addyosmani
1351
200k
The Cult of Friendly URLs
andyhume
68
4.7k
Agile that works and the tools we love
rasmusluckow
319
19k
The Pragmatic Product Professional
lauravandoore
19
2.9k
What the flash - Photography Introduction
edds
61
9.8k
Teambox: Starting and Learning
jrom
121
7.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
Transcript
Running containers at #While42 (San-Francisco)
$100 $25 $25 $25 $25
25 million members in January 2016
22 countries
20M 40M 80M 160M 129M 2014 2015 2016 2017 Travelers
transported 2014
metal servers services run. containers 120 150+ 2000+
None
github.com/coreos/rkt
$ (sudo) rkt run ./image.aci Archive of filesystem & instructions
of what to run Foreground process Require root
$ rkt run example.org/image.aci Fetch the image first and then
run it
How to build an ACI?
App Container (appc) Open specification that defines several aspects of
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-redis aci: app: exec: - /usr/bin/redis-server - /etc/redis/redis.conf
name: aci-redis aci: app: exec: - /usr/bin/redis-server - /etc/redis/redis.conf dependencies:
- aci-debian Not included in redis image
Runlevel: Build
├── aci-manifest.yml ├── attributes │ └── redis.yml ├── runlevels │
└── build │ └── install.sh └── templates └── etc └── redis └── redis.conf.tmpl
#!/bin/bash apt install -y redis-server
Runlevel: Prestart
Dump configuration files Initialize database/user Enable/Disable modules Change mod/owner
├── aci-manifest.yml ├── attributes │ └── redis.yml ├── runlevels │
└── build │ └── install.sh └── templates └── etc └── redis └── redis.conf.tmpl
# templates/etc/redis/redis.conf.tmpl daemonize no port {{ .redis.port }} ... #
attributes/redis.yml default: redis: port: 6379 Resolved at runtime
POD Running several ACIs in the same context
name: example.org/pod-myapp:1 pod: apps: - dependencies: - example.org/aci-nginx:1.8.1 app: exec:
[/usr/sbin/nginx, -g, daemon off] - dependencies: - example.org/aci-php:5.6 - example.org/aci-myapp:42 app: 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-nginx pod-myapp_aci-php Linux kernel other process ... 1.2.3.4 172.16.8.8 :80
:9000
Services discovery with smartstack synapse + nerve by Airbnb
Zookeeper haproxy php healtcheck mysql client server
Thank you! @BlaBlaCarTech @MattKetmo blablatech.com