Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

week 5: diogotc-tmbpe demo proposal #2400

Merged
merged 1 commit into from
Sep 4, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions contributions/demo/week5/diogotc-tmbpe/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Assignment Proposal

## Title

Declarative and reproducible deployments with NixOS

## Names and KTH ID

- Diogo Correia ([email protected])
- Tomás Esteves ([email protected])

## 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.
Loading