4

Following the permeation of virtualization and containerization through world of network services, various tools and systems have emerged for provisioning and orchestrating such systems from templates with applied custom overlays.

However, most such systems operating from a POSIX base have simply adapted standard Linux-based operating systems for the new environments.

In contrast, NixOS and Guix System would appear to be ideally suited for such applications, by their native architecture, centered around a read-only file base with overlays managed through a declarative language. Such design would appear to carry directly in the operating system much of the functionality intended to be injected into a standard operating system by projects such as Puppet, Chef, and Ansible.

Is NixOS or Guix System currently in use by any large-scale services?

brainchild
  • 330
  • 2
  • 16

1 Answers1

0

Guix's use of Linux-libre will limit hardware options and performance, making it a poor choice for a general commercial platform. It may excel in tightly-controlled environments.

NixOS looks pretty cool - it's declarative like Puppet (e.g. from link):

{
  boot.loader.grub.device = "/dev/sda";
  fileSystems."/".device = "/dev/sda1";
  services.sshd.enable = true;
}

and that is useful on a single system - one of the advantages of a Puppet deployment is declarative correctness. The other part of the picture is now you have a few hundred machines running NixOS and need to configure them in a coordinated manner. It's reasonable to assume that something like Puppet could be used to generate those config files and let NixOS boot a correct operating system.

In that way, NixOS already does some of what Puppet agent does, but there are still additional devops needs. Their namespace is similar to some of my puppet configuration files - this looks like a natural fit.

Pablo A
  • 2,307
  • 1
  • 22
  • 34