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
Let's go Nix-ing!
Search
Jérôme Vieilledent
December 11, 2023
Technology
0
75
Let's go Nix-ing!
Jérôme Vieilledent
December 11, 2023
Tweet
Share
More Decks by Jérôme Vieilledent
See All by Jérôme Vieilledent
Observability.tools.pdf
lolautruche
0
56
Architecture Inutile ?
lolautruche
2
2k
Other Decks in Technology
See All in Technology
事業価値と Engineering
recruitengineers
PRO
1
210
Gaze-LLE: Gaze Target Estimation via Large-Scale Learned Encoders
kzykmyzw
0
320
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
4
1.7k
Backboneとしてのtimm2025
yu4u
4
1.5k
小さなチーム 大きな仕事 - 個人開発でAIをフル活用する
himaratsu
0
120
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual Localization
takmin
0
430
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.6k
mruby(PicoRuby)で ファミコン音楽を奏でる
kishima
1
230
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
120
[CVPR2025論文読み会] Linguistics-aware Masked Image Modelingfor Self-supervised Scene Text Recognition
s_aiueo32
0
210
実践データベース設計 ①データベース設計概論
recruitengineers
PRO
2
220
Goでマークダウンの独自記法を実装する
lag129
0
210
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Being A Developer After 40
akosma
90
590k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
It's Worth the Effort
3n
187
28k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Making the Leap to Tech Lead
cromwellryan
134
9.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
Let’s go Nix-ing! Taming container environment maintenance
Who am I? Jérôme Vieilledent He/him Product Manager @jvieilledent https://connect.symfony
.com/profile/lolautruche
Containers on Platform.sh
• Yes, we’re using containers! • LXC based • Industrialized
orchestration (Manufacture) • Debian ❤ Platform.sh containers facts
71 images for applications • PHP (11) • Golang (12)
• Java (10) • NodeJS (9) • Python (8) • DotNet (7) • Ruby (6) • Elixir (5) • Lisp (2) • Rust (1) Platform.sh containers facts
95 images for services • PostgreSQL (8) • MariaDB/MySQL (11)
• Headless Chrome (10) • Elasticsearch/OpenSearch (17) • InfluxDB (5) • Kafka (9) • Memcached (2) • MongoDB Enterprise (5) • RabbitMQ (8) • Redis (8) • Solr (12) • Varnish (5) • … Platform.sh containers facts
166 images to maintain 🤯
What about the packages you need?
Let’s add a few packages 📦 My list for 🎅
• PHP 8.3 • Python 2.7 (old build script) • ImageMagick 6 (breaking changes in v7 I’m too lazy to look at) • LibreOffice (because, why not?)
Let’s add a few packages 📦 Credits: XKCD - https://xkcd.com/1579
My list for 🎅 • PHP 8.3 • Some eerie PHP extension • Python 2.7 (old build script) • ImageMagick v6 (breaking changes in v7 I’m too lazy to look at) • LibreOffice (because, why not?)
What’s Nix-t?
• Functional package manager • Packages are treated like values
+ Built in total isolation + No undeclared dependencies + If it works on a machine, it will also work on another machine What’s Nix?
• Every package lies in the Nix store • Each
package has its files in the Nix store + /nix/store/wyywjj50…-php-8.3.0 + The hash is a unique identifier capturing the package and all its dependencies • Makes it seamless to have several versions of the same package /nix/store
• Supported by a functional language + Nix Expressions •
80,000+ packages available /nix/store
/nix/store
Let’s try again (demo) 📦 My list for 🎅 •
PHP 8.3 • Some eerie PHP extension • Python 2.7 (old build script) • ImageMagick v6 (breaking changes in v7 I’m too lazy to look at) • LibreOffice (because, why not?)
166 images to maintain 🤯 1(ish) composable image to maintain
😎
Thank you! Jérôme Vieilledent Product Manager
[email protected]
None