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
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Running container at BlaBlaCar — While 42 (San-Francisco)
Meetup While42 in San-Francisco
Matthieu Moquet
April 06, 2016
More Decks by Matthieu Moquet
See All by Matthieu Moquet
Migrating to containers
mattketmo
0
410
CQRS & Event Sourcing — LavaJUG
mattketmo
1
580
ForumPHP 2015
mattketmo
0
1k
CQRS & Event Sourcing
mattketmo
7
1.5k
Take care of your logs with ELK
mattketmo
8
820
From 1 to 20 million users the technical story of BlaBlaCar
mattketmo
1
1.9k
Event Sourcing
mattketmo
9
4.2k
Localization should not be a pain (anymore)
mattketmo
1
830
Understanding git
mattketmo
5
740
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
74k
「AIに依存している」と 「AIを使いこなしている」の違い
k8yasuma
0
120
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
150
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
420
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
240
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
820
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
290
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
820
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
160
マルチアカウント環境でSecurity Hubの運用、その後どうなった? / SRE NEXT 2026 miniLT会
genda
0
100
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
400
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
A Tale of Four Properties
chriscoyier
163
24k
The Cult of Friendly URLs
andyhume
79
6.9k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
Optimizing for Happiness
mojombo
378
71k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Evolving SEO for Evolving Search Engines
ryanjones
0
240
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
240
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
600
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