VMware • Interested in libre software and open knowledge • Went through a number of technologies: ◦ KDE ◦ Ruby on Rails ◦ Docker ◦ Kubernetes ◦ Nix ◦ WebAssembly
is a snowflake composed of manual changes • How to rollback? How to evolve? How to reproduce? • Change something manually in /etc/…, … and restart a service ◦ System upgrades ◦ Chef/Puppet/Salt help a little ◦ Terraform/Packer get closer to immutable infrastructure; still do not solve the whole issue spectrum
◦ FROM ubuntu:latest ◦ FROM ubuntu:18.04 • How did we build this container image? Where is the Dockerfile? • Not trivial to write reproducible Dockerfiles ◦ FROM … ◦ RUN … • What do we really want to isolate? ◦ Filesystem, network namespace, PID namespace… • Software supply chain traceability
public binary cache • nix build or nix run ◦ A nixpkgs derivation ▪ From “master” ▪ From a specific release ▪ From a specific revision ◦ A third party package • Development shells
release (19 years ago) • Multi-OS, user specific ◦ Home-manager • OS specific ◦ nix-darwin • Deployment ◦ deploy-rs ◦ nix-deploy, nix-delegate ◦ nixery.dev