Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Running container at BlaBlaCar — While 42 (San-...
Search
Matthieu Moquet
April 06, 2016
Technology
0
360
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
350
CQRS & Event Sourcing — LavaJUG
mattketmo
1
480
ForumPHP 2015
mattketmo
0
870
CQRS & Event Sourcing
mattketmo
7
1.4k
Take care of your logs with ELK
mattketmo
8
700
From 1 to 20 million users the technical story of BlaBlaCar
mattketmo
1
1.7k
Event Sourcing
mattketmo
9
4k
Localization should not be a pain (anymore)
mattketmo
1
740
Understanding git
mattketmo
5
610
Other Decks in Technology
See All in Technology
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
380
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
220
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
1
230
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
150
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
Storage Browser for Amazon S3
miu_crescent
1
130
MLOps の現場から
asei
6
630
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Speed Design
sergeychernyshev
25
670
Documentation Writing (for coders)
carmenintech
66
4.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Raft: Consensus for Rubyists
vanstee
137
6.7k
YesSQL, Process and Tooling at Scale
rocio
169
14k
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