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
40
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
40
Architecture Inutile ?
lolautruche
2
1.8k
Other Decks in Technology
See All in Technology
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
650
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
120
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
130
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.4k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
560
AWS学習者向けにAzureの解説スライドを作成した話
handy
2
100
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
210
Cypress or Playwright?
rainerhahnekamp
0
140
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.3k
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
180
Featured
See All Featured
Building Applications with DynamoDB
mza
88
5.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
GraphQLとの向き合い方2022年版
quramy
32
12k
Why Our Code Smells
bkeepers
PRO
331
56k
Code Reviewing Like a Champion
maltzj
514
39k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Building an army of robots
kneath
300
41k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Designing Experiences People Love
moore
136
23k
How to train your dragon (web standard)
notwaldorf
73
5.2k
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