We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Dysnomia: complementing Nix deployments

Formal Metadata

Title
Dysnomia: complementing Nix deployments
Title of Series
Number of Parts
27
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
One of the main goals of the tools in the Nix project is to fully automate deployments from declarative specifications. Thanks to the underlying purely functional deployment model of the Nix package manager, we get strong guarantees that dependencies are complete, we get (nearly) bit identical builds, and we can do atomic upgrades and rollbacks. Although Nix deployments are very powerful, the tools in the Nix project only manage the static parts of a system, such as packages and configuration files. Nix does not manage any state, such as databases. As a result, when deploying a NixOS configuration to a different machine, we get the same static system configuration (e.g. packages and configuration), but any state must still be manually migrated and deployed. In a network of machines, this could become very tedious. In this talk, I will show Dysnomia, a deployment tool inspired by Nix that can be used to manage units of state, such as databases. It makes units of states uniformly accessible (it has a plugin system supporting many kinds of state and databases), executes various deployment activities (e.g. activation, deactivation) and can manage snapshots of state in a snapshot store that has similarities with the Nix store. Dysnomia can be used as an independent tool, but is more useful when it is combined with tools in the Nix project -- we can automatically deploy databases as part of a NixOS configuration and we can combine it with Disnix to automatically migrate databases from one machine to another. --- Sander is a contributor to the Nix project since late 2007. He contributed to many areas in the Nix-ecosystem. He started the Android build environment. He maintains various Nix-related tools, such as Disnix, node2nix, NiJS, and composer2nix.