Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let's go Nix-ing!

Let's go Nix-ing!

Jérôme Vieilledent

December 11, 2023
Tweet

More Decks by Jérôme Vieilledent

Other Decks in Technology

Transcript

  1. • Yes, we’re using containers! • LXC based • Industrialized

    orchestration (Manufacture) • Debian ❤ Platform.sh containers facts
  2. 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
  3. 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
  4. 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?)
  5. 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?)
  6. • 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?
  7. • 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
  8. • Supported by a functional language + Nix Expressions •

    80,000+ packages available /nix/store
  9. 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?)