Anmerkung: Dieser Blogpost wurde für das Modul Enterprise IT (113601a) verfasst.
Während Linux für Endnutzer-Geräte nur eine untergeordnete Rolle spielt, ist es aus der Server-Welt nicht wegzudenken. Im Jahr 2024 verwendeten global mehr als 60 % der Server Linux als Betriebssystem [1]. Die genaue Verteilung der Distributionen ist schwer zu bestimmen, jedoch wird angenommen, dass Red Hat Enterprise Linux (RHEL) und SUSE Linux Enterprise Server (SLES) den größten Marktanteil ausmachen.
Im Folgenden wird NixOS betrachtet – eine spezielle Linux-Distribution mit noch relativ geringem Marktanteil, die auf dem Paketmanager Nix basiert und sich in einigen Ansätzen grundlegend von anderen Distributionen unterscheidet. NixOS nutzt Nix, eine funktionale Programmiersprache zur Paketverwaltung, und stellt mit Nixpkgs eines der größten freien Softwarerepositorien bereit [2].

Quelle: repology.org [2]
Bei NixOS erfolgt die gesamte Systemkonfiguration in einer Konfigurationsdatei. Hier werden nicht nur installierte Softwarepakete definiert, sondern auch Systemdienste, Benutzerkonfigurationen und Netzwerkeinstellungen. Dieser deklarative Ansatz ermöglicht eine konsistente und reproduzierbare Systemverwaltung.
Vorteile von NixOS
Atomare Upgrades & Rollback
NixOS ermöglicht atomare Upgrades, sodass eine Aktualisierung entweder vollständig erfolgreich ist oder bei einem Fehler automatisch rückgängig gemacht wird. Dadurch wird sichergestellt, dass das System nach einem fehlgeschlagenen Update weiterhin lauffähig bleibt. Zudem können Administratoren bei Bedarf problemlos auf eine frühere Version eines Systems zurückrollen, was eine hohe Stabilität und Sicherheit gewährleistet.
Deklarativ
Ein Vorteil gegenüber imperativen Automatisierungslösungen wie Ansible besteht darin, dass sich der Systemzustand immer am Zielzustand orientiert, unabhängig von der Ausgangskonfiguration. Bei Ansible kann es je nach Startzustand des Systems, insbesondere wenn zwischen Deploys manuelle Änderungen vorgenommen wurden, zu Fehlern oder Inkonsistenzen Systemzuständen kommen. Fehler müssen manuell und teilweise sehr zeitaufwendig behoben werden.
Reproducible Builds
Durch den deterministischen Ansatz von NixOS lassen sich identische Systemumgebungen reproduzieren. Dies ist insbesondere für Unternehmen von Vorteil, die eine konsistente Infrastruktur benötigen, beispielsweise für DevOps- oder CI/CD-Pipelines oder auch in der Forschung, wenn zur Nachvollziehbarkeit von Ergebnissen der selbe Systemzustand der Software hergestellt werden soll. Software-Abhängigkeiten werden exakt definiert, wodurch “Works on my machine”-Probleme minimiert werden. Dies geschieht über kryptografische Hashes, die den Stand der verwendeten Software inklusive all ihrer Abhängigkeiten auf den Commit genau festlegen.
Darüber hinaus ermöglicht NixOS das parallele Installieren mehrerer Versionen derselben Software ohne Konflikte. Dies erleichtert die Bereitstellung von Entwicklungs- und Testumgebungen und reduziert Versionsdrift in Softwareprojekten. Hierfür weicht NixOS von der gewohnten Linux-Ordnerstruktur ab und legt Pakete unter /nix/store
ab. Über Verlinkungen und Umgebungsvariablen wird jedoch sichergestellt, dass es sich für den User “normal” anfühlt.
Um dies umzusetzen wird jedem Paket im Nix-Store ein Kryptographischer-Hash vorausgestellt, der sich aus den sogenannten Derivationen, also der genauen Beschreibung des Pakets mit seinen Abhängigkeiten, ergibt. Für die WordPress-CLI 2.10.0 sieht der Pfad dann beispielsweise wie folgt aus: /nix/store/yc4pkxlvk3dszxvj6473qfkzd1a2jmkk-wp-cli-2.10.0
Dieser Hash-Wert erlaubt es zum einen, problemlos das gleiche Programm in verschiedenen Versionen installiert haben zu können und andererseits wird sichergestellt, dass wenn auf zwei Systemen die gleiche Derivation genutzt wird, das Programm sich, inklusive aller Abhängigkeiten, auf der exakt selben Version befindet.

Quelle: Eigene Grafik
Klar definierte Systemkonfigurationen
Ein zentraler Vorteil von NixOS ist die vollständig deklarative Konfiguration. Sämtliche Systemeinstellungen, installierte Pakete und Services werden in einer Konfigurationsdatei (im Regelfall configuration.nix
), die auch Sub-Configs enthalten kann, hinterlegt. Dadurch gibt es keine Unklarheiten über den Zustand eines Systems, was insbesondere in Unternehmen von Vorteil ist, da Wissen über die Systemkonfiguration eines Hosts nicht an einzelne Mitarbeitende gebunden ist. Sollte ein Administrator das Unternehmen verlassen, bleibt dennoch die gesamte Systemkonfiguration nachvollziehbar und reproduzierbar.
Darüber hinaus ermöglicht nix-shell
bei Bedarf die temporäre Installation und Nutzung von Softwarepaketen in einer isolierten Umgebung, ohne das System dauerhaft zu verändern. Sobald die Shell geschlossen wird, entfernt der nix-garbage-collector
ungenutzte Pakete automatisch. Dies bietet einen erheblichen Vorteil gegenüber traditionellen Paketmanagern wie apt
, die Software systemweit installieren und somit potenzielle Konflikte oder unnötigen Speicherverbrauch verursachen können.
Ein weiterer wichtiger Aspekt ist die Möglichkeit, eine standardisierte Grundkonfiguration über alle Systeme hinweg zu definieren. Änderungen, wie beispielsweise Kernel-Modifikationen oder sicherheitsrelevante Updates, lassen sich zentral in die Konfigurationsdatei einbinden und anschließend auf alle Server ausrollen. Dadurch können Unternehmen sicherstellen, dass alle Systeme auf dem neuesten Stand sind und einheitlichen Sicherheitsrichtlinien entsprechen.
Für Clientsysteme lassen sich zudem einzelne Sub-Config-Files erstellen, um spezifische Konfigurationen für verschiedene Abteilungen oder Nutzergruppen bereitzustellen. Dadurch ist es möglich, unterschiedliche Softwareanforderungen gezielt zu verwalten, ohne die allgemeine Systemkonfiguration zu beeinflussen. Beispielsweise könnten Entwickler eine vorkonfigurierte Umgebung mit spezifischen Tools erhalten, während Büroangestellte nur die notwendigen Anwendungen und Sicherheitseinstellungen nutzen.
Dies reduziert nicht nur administrative Aufwände und Kosten, sondern trägt auch zur Effizienzsteigerung und Standardisierung der IT-Infrastruktur bei. Unternehmen profitieren von einer vereinfachten Wartung, da Änderungen an der Konfiguration konsistent ausgerollt werden können, ohne dass manuelle Eingriffe erforderlich sind. Zudem wird die Fehleranfälligkeit minimiert, da inkonsistente Systemzustände durch die deklarative Natur von NixOS vermieden werden.
Einfaches Deployment
NixOS ermöglicht eine einheitliche Bereitstellung von Systemen auf unterschiedlichster Hardware und Cloud-Umgebungen. Durch seine deklarative Konfiguration können IT-Teams problemlos identische Setups für lokale Server, virtuelle Maschinen, Container oder Cloud-Dienste wie AWS, Google Cloud oder Azure definieren und ausrollen. Dies reduziert manuelle Fehler und gewährleistet eine hohe Konsistenz über verschiedene Deployment-Umgebungen hinweg.
Zusätzlich lassen sich mit nixos-rebuild
oder nixops
komplette Systeme automatisiert bereitstellen und verwalten. NixOps
, als offizielles Deployment-Tool für NixOS, erlaubt dabei die Orchestrierung und Verwaltung mehrerer Maschinen – sowohl physische als auch virtuelle Instanzen. Ebenso unterstützt colmena
als leichtgewichtige Alternative eine deklarative Steuerung mehrerer NixOS-Hosts[3][4]. Mit nixos-anywhwere
gibt es zudem ein Tool, mit dem auf einem beliebigen Linux-Host mit Hilfe von kexec
einfach per SSH NixOS installiert werden kann [5].
Dank der Immutable-Infrastruktur von NixOS können Updates und Änderungen sicher und reproduzierbar ausgerollt werden, ohne bestehende Installationen zu beeinträchtigen. Das macht NixOS besonders geeignet für Continuous Deployment (CD) und Infrastructure-as-Code (IaC)-Ansätze in modernen IT-Umgebungen.
Verwaltung von Secrets mit sops
Eine besondere Stärke von NixOS ist die sichere Verwaltung von Secrets in einem Repository. Dafür wird häufig das Tool sops
(Secrets OPerationS) verwendet, das eine verschlüsselte Speicherung sensibler Daten wie API-Keys, Passwörter oder Zertifikate ermöglicht [6].
Mit sops
können diese Daten entweder asymmetrisch (z. B. mit GPG-Schlüsseln oder age-Keys) oder symmetrisch (z. B. mit AWS KMS oder Azure Key Vault) verschlüsselt werden. Dies erlaubt es, Geheimnisse sicher in Versionskontrollsystemen wie Git zu verwalten, ohne dass sensible Informationen im Klartext gespeichert werden. Da sich age-Keys aus SSH-Keys ableiten lassen, kann das System so konfiguriert werden, dass alle Nutzer mit Zugriff auf einen Host automatisch die entsprechende sops
-Datei entschlüsseln und bearbeiten können.
In Kombination mit agenix
oder sops-nix
kann NixOS diese Secrets automatisch entschlüsseln und systemweit bereitstellen [7][8]. Dies verbessert die Automatisierung und erhöht die Sicherheit, indem sichergestellt wird, dass sensible Daten, wie beispielsweise Datenbankpasswörter, nicht unverschlüsselt auf dem System gespeichert bleiben. Dadurch wird eine konsistente und sichere Verwaltung von vertraulichen Informationen innerhalb der IT-Infrastruktur gewährleistet.
Nachteile von NixOS
Eingeschränkter kommerzieller Support
Im Gegensatz zu etablierten Enterprise-Distributionen wie RHEL oder SLES bietet NixOS nur begrenzten kommerziellen Support. Dies kann für Unternehmen, die auf eine professionelle Unterstützung angewiesen sind, eine Hürde darstellen. Während es eine aktive Community gibt, fehlen offizielle Service-Level-Agreements (SLAs) von großen Anbietern.
Allerdings existieren inzwischen einige Unternehmen, die kommerziellen Support für NixOS anbieten. Ein Beispiel hierfür ist das in Stuttgart ansässige Unternehmen Helsinki Systems, das Dienstleistungen wie Beratung, Implementierung und Support für NixOS-basierte Umgebungen anbietet [9]. Ebenso gibt es weitere internationale Dienstleister, die spezialisierte Unterstützung für Nix- und NixOS-Umgebungen bieten, insbesondere in den Bereichen DevOps, CI/CD und Infrastrukturautomatisierung.
Dennoch bleibt die Verfügbarkeit von zertifizierten Support-Optionen im Vergleich zu RHEL oder SLES begrenzt, was für Unternehmen mit hohen Compliance- und Sicherheitsanforderungen ein entscheidender Faktor sein kann. Jedoch gibt es bereits Unternehmen aus dem IT-Security-Umfeld, wie beispielsweise secunet, die aktiv NixOS in ihren Sicherheitslösungen einsetzen und sogar die Weiterentwicklung von Nix finanziell unterstützen [10].
Lernkurve und Kompatibilität
NixOS unterscheidet sich erheblich von herkömmlichen Linux-Distributionen, da es eine eigene funktionale Konfigurationssprache (Nix) verwendet. Dies erfordert eine gewisse Einarbeitungszeit und kann für IT-Teams, die mit traditioneller Paketverwaltung wie beispielsweise apt
arbeiten, zunächst eine Herausforderung darstellen. Allerdings bietet dieser Ansatz langfristig den Vorteil, dass Konfigurationen und Abhängigkeiten exakt definiert und reproduzierbar gemacht werden können.
Ein weiteres Hindernis für den Unternehmenseinsatz ist die begrenzte Verfügbarkeit einiger proprietärer Softwarelösungen, die möglicherweise nicht direkt für NixOS verfügbar sind. Zwar lässt sich Software entsprechend paketieren, jedoch setzt dies ein tiefgehendes Verständnis der Sprache sowie der Abhängigkeiten der jeweiligen Software voraus. Dies kann insbesondere bei komplexer oder proprietärer Unternehmenssoftware zusätzlichen Aufwand bedeuten [11].
Releasezyklus
Ein weiterer Nachteil ist das Fehlen eines dedizierten Long-Term-Support (LTS)-Releases. Während viele Enterprise-Distributionen wie RHEL oder Ubuntu LTS-Versionen mit garantierten Sicherheitsupdates über mehrere Jahre anbieten, setzt NixOS auf einen halbjährlichen Release-Zyklus. Alle sechs Monate wird eine neue stabile Version veröffentlicht, wobei ältere Versionen nur für eine begrenzte Zeit unterstützt werden.
Dies kann für Unternehmen, die auf langfristige Stabilität angewiesen sind, eine Herausforderung darstellen, da regelmäßige Upgrades notwendig sind, um weiterhin Sicherheitsupdates und Bugfixes zu erhalten. Obwohl es mit nixos-rebuild switch --upgrade
ein relativ einfaches Upgrade-Verfahren gibt, besteht dennoch das Risiko, dass Inkompatibilitäten oder Breaking Changes auftreten, die eine Anpassung der bestehenden Konfigurationsdateien erfordern.
Ein möglicher Workaround besteht darin, dedizierte Kanäle wie nixos-unstable
oder nixpkgs-stable
zu nutzen, doch diese erfordern eine aktive Wartung durch Administratoren. Alternativ können Unternehmen mit einer eigenen Paketverwaltung und NixOS-Modifikationen versuchen, eine langfristig stabile Umgebung zu schaffen, was jedoch zusätzlichen Wartungsaufwand mit sich bringt.
Fazit
NixOS bietet eine innovative und einzigartige Herangehensweise an Paketverwaltung und Systemkonfiguration, die insbesondere für hochautomatisierte Umgebungen, Forschungseinrichtungen und moderne DevOps-Teams attraktiv ist. Durch atomare Updates, Rollback-Fähigkeiten, reproduzierbare Builds und deklarative Systemkonfigurationen eignet sich NixOS hervorragend für Unternehmen, die eine konsistente und sichere IT-Infrastruktur benötigen. Die Vorteile in Bezug auf Stabilität, Reproduzierbarkeit und Rollback-Möglichkeiten machen es zu einer interessanten Option für den Enterprise-Bereich. Allerdings könnten der eingeschränkte kommerzielle Support, die relativ geringe Verbreitung und die steile Lernkurve Unternehmen davon abhalten, NixOS in produktiven Umgebungen einzusetzen. Dennoch gibt es bereits große Unternehmen, die auf Nix und NixOS setzen, darunter Mercury Technologies (Finanzdienstleister) [12], Shopify (Anbieter von Onlineshops) [13] und Secunet (IT-Sicherheitsunternehmen) [10]. Letztendlich hängt die Eignung für den Enterprise-Einsatz stark von den individuellen Anforderungen eines Unternehmens ab. Unternehmen, die stark auf Automatisierung, Sicherheit und reproduzierbare Softwareumgebungen angewiesen sind, könnten erheblich von den Vorteilen von NixOS profitieren. Trotz einiger Herausforderungen gewinnt NixOS zunehmend an Bedeutung in der IT-Welt und entwickelt sich stetig weiter.
Quellen:
[1] https://www.fortunebusinessinsights.com/server-operating-system-market-106601
[2] https://repology.org/repositories/graphs
[3] https://github.com/nixops4/nixops4
[4] https://github.com/zhaofengli/colmena
[5] https://github.com/nix-community/nixos-anywhere
[6] https://github.com/getsops/sops
[7] https://github.com/ryantm/agenix
[8] https://github.com/Mic92/sops-nix
[9] https://nixos.org/community/commercial-support/
[10] https://oceansprint.org/#gold
[11] https://nixos.org/manual/nixos/stable/#sec-custom-packages
[12] https://job-boards.greenhouse.io/mercury/jobs/5457761004
[13] https://shopify.engineering/what-is-nix
Alle oben genannten Quellen wurden zuletzt am 27.02.2025 abgerufen.
Leave a Reply
You must be logged in to post a comment.