Day 78 — Comparative landscape
Day 78 — Comparative landscape
Stage VII · ~4h
Goal: Write an honest, concrete trade-off note comparing NixOS to Guix System, image-based/immutable distros, and Ansible-style config management—grounded in your workloads, not tribal slogans.
Why this day exists
If you cannot say when NixOS is the wrong tool, you do not understand it. Capstone commitment is real effort; Day 78 is the “steelman the alternatives” day so your retrospective (Day 90) is adult, not fanfic.
Theory 1 — Comparison dimensions
Score systems on dimensions that matter to operators:
| Dimension | Question |
|---|---|
| Reproducibility | Can two machines converge from the same artifact/definition? |
| Atomic rollback | Bad update → previous generation quickly? |
| Abstraction | Packages + services + users in one language? |
| Learning curve | Time to first safe production change |
| Ecosystem breadth | Packaging coverage, cloud images, vendor support |
| Secrecy & compliance | Secrets, audit, SBOM stories |
| Day-2 ops | Observability, patches, multi-node |
| Escape hatches | Can you drop to imperative when burning? |
| Team skill fit | What does your org already know? |
| Mac/desktop story | Not everything is a Linux server |
| Migration cost | From your current estate |
No system wins all columns. Weighted scores beat vibes.
Theory 2 — NixOS (your baseline)
Strengths you have felt (cite your volume days):
- Declarative modules + generations (II, 13, 89)
- Flake pins for inputs (III, 24)
- Same language from package to OS (V–VII)
- Binary caches + remote builders (53–54)
- Strong “rebuild from repo” story (Day 88 will prove it)
- sops-nix / deploy-rs / Colmena / nixosTest ecosystem (IV, VI)
Weaknesses you should admit:
- Steep language + module learning curve
- Eval/build complexity; footguns (IFD, priorities, infinite recursion)
- Docs fragmented across eras (channels vs flakes)
- Some proprietary/vendor agents painful to package
- GUI desktop polish varies by investment
- Experimental features (CA derivations, etc.) not free wins
- Team hiring: fewer “NixOS natives” than Ansible generalists
Write two scars from your lab, not from memes.
Theory 3 — Guix System
What it is: GNU Guix—functional package manager + Guix System; Scheme (Guile) instead of Nix language; strong free-software ethos; similar store/generation ideas.
| Topic | Guix-ish shape | NixOS-ish shape |
|---|---|---|
| Language | Scheme | Nix |
| Init | shepherd | systemd |
| Channels / pins | channels | flakes/channels |
| FHS / binary blob culture | Often stricter free software | Pragmatic unfree options common |
| Community size | Smaller | Larger |
| Commercial surface | Smaller | Larger blog/job footprint |
When Guix may win: Scheme fluency, GNU purity goals, shepherd preference, research alignment.
When NixOS may win for you: systemd ecosystem, larger package set, more operational write-ups, your already-built Capstone investment.
You do not need to install Guix today—read primary docs enough to avoid strawmen. If you already know Scheme, say so in the essay.
Theory 4 — Image-based / immutable distros
Examples of the family (not a full product review): Fedora CoreOS / Silverblue-style, Bottlerocket, Talos, some appliance OS designs—image A/B, ostree or similar, workloads often in containers.
| Topic | Image-based | NixOS |
|---|---|---|
| Unit of deploy | OS image | Config evaluation → system closure |
| App delivery | Containers/k8s common | Packages + modules + optional containers |
| Rollback | Previous image slot | Generations |
| Host customization | Minimal by design | Extreme (sometimes too much) |
| “Pets” | Discouraged | Possible (homelab pets common) |
| Provisioning | Ignition/cloud-init class tools | Disko, nixos-anywhere, images (Day 62) |
When images win: Large fleets of identical minimal nodes, Kubernetes workers, locked-down appliances, org already standardized on container platforms.
When NixOS wins: Highly specialized hosts, cross-cutting host services, desire for one repo to express weird topology without baking images every change (though NixOS can also build images).
Hybrid reality: NixOS build of images + k8s workers is a valid architecture—not purity cosplay.
Theory 5 — Ansible (and friends)
What it is: Imperative/convergent config management over SSH; YAML playbooks; enormous module library; agentless common. Cousins: Salt, Puppet, Chef—today’s comparison centers Ansible as the industry default many teams already run.
| Topic | Ansible | NixOS |
|---|---|---|
| Model | Converge state with tasks | Specify desired system; build closure |
| Partial apply | Easy, sometimes too easy | Whole-system generations |
| Drift | Easy without discipline | Harder if you only use nix |
| Secrets | Vault, etc. | sops/agenix + store discipline |
| Non-NixOS estate | Excellent | Weak (HM/darwin partial) |
| Rollback | You build it | Built-in generations |
| Network gear / mixed OS | Strong ecosystem | Not the point |
Hybrid reality: Many orgs use Terraform/cloud for create, Ansible for classic distros, NixOS for greenfield highly automated slices.
When Ansible wins: Heterogeneous fleets (Ubuntu + network gear + weird appliances), existing playbook investment, teams without Nix skills, “change this one file on 50 boxes” urgency.
When NixOS wins: Greenfield Linux hosts you fully own, strong need for rebuildable closures, rollback as a product feature, package+service unity.
Theory 6 — Honesty checklist (avoid tribal takes)
| Bad argument | Better |
|---|---|
| “Ansible is YAML spaghetti, Nix is pure.” | “Our fleet is 200 Ubuntu boxes with existing roles; migration cost exceeds benefits this year.” |
| “Guix is just Nix with Scheme.” | “Shared functional ideas; different language, init, and community trade-offs.” |
| “Immutable OS means no SSH ever.” | “SSH policy is orthogonal; image distros still need day-2 access models.” |
| “NixOS can’t do containers.” | “NixOS can; sometimes image-first platforms optimize for that path harder.” |
| “Nix solves secrets.” | “sops-nix helps; key custody and policy still human.” |
Theory 7 — Decision time-bounds
Prefer time-bounded decisions:
Through 26.11: NixOS Capstone lab remains source of truth for my learning hosts.
Ubuntu estate at $work: Ansible remains unless a greenfield slice appears.
Re-evaluate Guix: only if Scheme project requires it.
Eternal loyalty is not an engineering output.
Worked example — weighted scorecard fragment
Context: solo homelab + one day-job Ubuntu fleet I don’t control.
| Dimension | Weight | NixOS | Guix | Image-family | Ansible |
|-----------|--------|-------|------|--------------|---------|
| Reproducibility | 5 | 5 | 5 | 4 | 2 |
| Rollback | 5 | 5 | 5 | 4 | 2 |
| Learning curve | 3 | 2 | 2 | 3 | 4 |
| Team skill (job) | 4 | 1 | 1 | 3 | 5 |
| Specialized hosts | 5 | 5 | 4 | 2 | 3 |Compute crude weighted sums; note uncertainty bands (“±1 on Guix—I read, didn’t run”).
Lab 0 — Workspace
mkdir -p ~/lab/90daysofx/02-nixos/day78
cd ~/lab/90daysofx/02-nixos/day78Lab 1 — Primary sources (skimming with intent)
Collect links in SOURCES.md (official or project docs, not only Reddit):
- Guix System manual intro / features
- One image-based OS docs page (e.g. CoreOS update model or Talos architecture)
- Ansible “how it works” / idempotence intro
Spend ~45–60 min reading, not installing everything. Optional: one throwaway VM if time remains—not required.
Lab 2 — Scorecard for your context
SCORECARD.md — rate NixOS / Guix / Image-family / Ansible 1–5 on Theory 1 dimensions. Add “Weight for me.” Compute weighted sum. Note uncertainty.
Define your context in 5 bullets (homelab, job, course-only, multi-OS, etc.).
Lab 3 — Essay (required)
ESSAY.md — 400–800 words:
- Where NixOS clearly wins for you (with concrete examples from this volume).
- Where it loses or is overkill.
- One scenario you would pick Ansible or image-based instead.
- Whether Guix is interesting to you personally (even if “not now”).
- What you will not rewrite after this essay (protect Capstone).
Tone: steelman alternatives; no meme warfare.
Lab 4 — Elevator version
Compress the essay into a 90-second talk outline (bullet list) for a skeptical SRE. Save as ELEVATOR.md.
Include one sentence: “Here’s when I would not use NixOS…”
Lab 5 — Capstone implication
One short paragraph in IMPLICATIONS.md: does this change Capstone A scope? (Default: no—essay is clarity, not a rewrite trigger.)
Lab 6 — Scenario cards (forced choice)
Write three short cards (5–8 sentences each) in SCENARIOS.md. For each, pick a primary tool and justify with dimensions from Theory 1:
Card A — Homelab “weird topology”
One edge proxy, one data host, sops secrets, occasional GPU box. You already have Capstone muscle.
Card B — Employer fleet
80 Ubuntu VMs, existing Ansible roles, two network engineers who refuse new DSLs, compliance questionnaire next quarter.
Card C — Kubernetes worker pool
Stateless nodes, image A/B updates preferred by platform team, apps only in containers, host should be minimal.
Do not use these cards to reopen Capstone A scope. They exist to prove you can switch criteria with context.
Lab 7 — Quote hygiene
From your primary sources, copy one short quotation or paraphrased claim (with URL) that surprised you for each of: Guix, image-based, Ansible. In SOURCES.md, note whether you agree after Capstone experience.
This blocks empty essays that restate Twitter without contact with docs.
Worked example — elevator closer
NixOS wins for me when I fully own the Linux host and need rebuildable
closures plus rollback. I would not force it onto our Ubuntu estate this
year—the migration cost dwarfs the benefit. Image-based OS wins for
identical k8s workers. Guix is intellectually close but not my ops path.
Questions?
Adapt to your scorecard; keep under 90 seconds spoken.
Common gotchas
| Mistake | Fix |
|---|---|
| Comparing marketing to your scars | Use Capstone experience as data |
| Installing four OSes today | Read + score; optional one VM if time |
| Declaring eternal loyalty | Prefer time-bounded decisions |
| Ignoring team skills | Skills are a real dimension |
| Strawmanning Guix without reading | Primary sources in SOURCES.md |
| Using Day 78 to restart layout thrash | Protect Capstone; Day 77 already covered tools |
Checkpoint
SOURCES.mdwith primary links
- Weighted
SCORECARD.md
ESSAY.md400–800 words, honest trade-offs
ELEVATOR.mdincluding when not NixOS
- Capstone protection note
- Three scenario cards
- One primary-source surprise note per alternative
- Three personal gotchas
Commit
git add .
git commit -m "day78: comparative landscape essay and scorecard"Write three personal gotchas before continuing.
Tomorrow
Day 79 — 26.05 release notes deep: primary-source read; annotate impact on your flake.