week 5: diogotc-tmbpe demo proposal #2400
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Assignment Proposal
Title
Declarative and reproducible deployments with NixOS
Names and KTH ID
Deadline
Week 5
Category
Demo
Description
NixOS is an immutable Linux distribution that aims to be reproducible and declarative thanks to the underlying Nix functional language. Through the Nix language, it is possible to declare all aspects of a system, ensuring that the result will always be the same, no matter when or where
the system configuration is deployed. Other properties of NixOS include easy rollbacks, dependency pinning for each package, specialisations, cleanup of previous configurations, and more.
In this demo, we will show the audience how to deploy a fully-configured NixOS system in seconds, using tools like nixos-anywhere to bootstrap the installation and disko to declare disk partitions.
Relevance
NixOS (and the associated Nix language and Nixpkgs package repository) are the pinnacle of Infrastructure as Code, allowing for a system to be completely defined through Nix code. This makes similar deployments extremely easy and scalable, as Nix code can be shared between many hosts. Additionally, updates to packages and configuration can be performed in bulk or in a CI/CD system and copied to the resulting systems.