3.8 KiB
Guix: Unifying provisioning, deployment, and package management in the age of containers
- Summary
- Abstract
- intro: ?
- Guix
- “It’s all about source code.”
- what's cooking?
- Get it!
- COMMENT references
- COMMENT demo preparation
Summary
When it comes to software deployment, we are getting used to a new distribution of roles among many actors: traditional distros take care of core software pieces, “application bundles” à la Docker/Flatpak provide complex applications, Cabal, Gem, npm, pip, and friends take care of language-specific software, and Puppet/Ansible orchestrate the whole thing. Each of these tools has its justification, but the end result is a maze that’s hard to deal with.
In this talk I will present GNU Guix, a software deployment toolbox and its associated distro that feature transactional upgrades and rollbacks, declarative OS deployment inspired by Nix, and reproducible builds. I will show how Guix approaches a variety of use cases: “package management” à la apt-get, environment management à la VirtualEnv, Ansible-style declarative OS deployment, and container provisioning à la Docker.
Guix emphasizes programmability and one of its salient features is that it provides a unified Scheme programming environment to deal with with all the aspects of configuration, deployment, and system management—including service management by PID 1. I will illustrate how this works out on standalone Guix systems, and show the benefits of the approach by discussing applications that take advantage of Guix as a library to support reproducible software deployment.
Last, I will reflect on the road that led to Guix 1.0 six months ago and present some of the challenges ahead.
Abstract
This talk will reflect on what GNU Guix has to offer to users and how it compares to other approaches—from CONDA and pip to Flatpak and Docker. Guix is not only a transactional package manager and declarative GNU/Linux distribution: it’s also an environment manager, a container provisioning tool, and more. We will describe these tools and our journey to 1.0, emphasizing key properties that set Guix apart: reproducibility, transparency, and hackability.
intro: ?
Guix
package management -> take from jcad-2018
‘guix describe’ + ‘guix pull’
operating system
guix deploy
“It’s all about source code.”
functional model
‘guix system describe’ (Quine)
((lambda (x)
(list x (list (quote quote) x)))
(quote
(lambda (x)
(list x (list (quote quote) x)))))
reproducible builds
bootstrapping
- bootstrap from nothing
Software Heritage
what's cooking?
Guix-HPC
Guix-Jupyter
‘guix deploy’
Guile 3
contributor stats
Outreachy + GSoC
link to other talks
Get it!
COMMENT references
- Zeitgeist, “Zeitgeist is a language-agnostic dependency checker.”
- https://www.jres.org/fr/programme/