Používáte někdo NixOS na produkční servery? Stále mi vychází lépe si udělat vlastní kontejner (nspawn, jail) / KVM vmko, čistou instalaci linuxu nebo freebsd a do kontejneru pouze jednu appku. NixOS je možná super, ale většina věcí se nainstaluje jedním příkazem (apt install gitea, prometheus, kdo co potřebuje). Měl jsem i Ansible, ale na jeden příkaz to nedává smysl.
Kontejnery mají navíc tu výhodu, že si uděláte minimální template pro server a potom jen klonujete. Je to hned. Btrfs snap, zfs clone, jeden apt / pkg install a je to. Fakt nevím, na co používat Ansible nebo NixOS nebo Docker, když je to jeden příkaz. Navíc dnes už máme Golang nebo Rust, takže je to jedna binárka.
No pokud vše nainstalujete a zkonfigurujete na jeden příkaz, tak samozřejmě řada výhod odpadá. Ale pořád se mohou hodit třeba rollbacky změn (aktualizací, balíků, konfigurace), apod.
Typičtí uživatelé myslím mají "větší konfiguráky" na straně NixOS. A co se týče osobních strojů, tak někteří tak reprezentují i větší část dotfiles (home manager), i když to už pro mě osobně je overkill.
Na rollbacky už mám asi 20 let snapshoty. VMware je uměl vždycky.
Typičtí uživatelé
Tady záleží, co se myslí typickým uživatelem. Psal jsem článek o tom, jak nastavuju server já (minimálně) a dal jsem to do kontrastu s jedním adminem, který na serveru nastavil každý jeden soubor v /etc a to včetně velikosti papíru.
Nástroj opravdu není na to (viděl jsem to v Ansible, mělo to tisíce řádků), aby se v něm dělalo úplně všechno. Nakonec i v Ansible může být jen jeden příkaz pro statisíce serverů.
Zde je ten článek: https://www.heronovo.cz/index.php/2021/08/07/jak-moc-nastavujete-linuxovy-server-po-instalaci/
ano, cca 200 fyzických serverů.
Obrovská výhoda je jinde, server je v přesně daném stavu, žádné miliony zapomenutých souborů z ansiblu a postupných změn playbooků, žádné ruční zásahy adminů, když na něco zapomněli, žádné GB repositáře a desítky minut instalace (obraz pro OS má prostě 800 MB se všemi aplikacemi).
Pro jeden server ti to příjde asi jako zbytečnost, sám víš co tam máš, nepotřebuješ to nijak evidovat, ale jakmile máš 10 členný tým adminů + ti na servery lezou bezpečáci, L2/L3 podpora, externí audit firmy, pracuješ najednou na 50 různých změnách. Najednou ti vyvstane potřeba být schopný okamžitě zjistit v jakém stavu je konkrétní server, vráti změny, které něco rozbíjí, být schopný přesně evidovat, kdy k jaké změně došlo (kvůli legislativě i hledání regresí z monitoringu a dozoru) nebo naopak udělat aktualizaci na půlce flotily okamžitě.
NixOS má zatím velkou nevýhodu v security, zejména asi selinux a v tom jak je možné sledovat zranitelné balíčky a jak hlásit zranitelnosti, na tohle musíme mít zatím vlastní šelmostroj, který to dává dohromady a eviduje. Na druhou stranu má naprosto neskutečnou výhodu v tom, že mohu jednoduše celý OS si nasimulovat a otestovat při vývoji. Samotný vývoj se dělá mnohem jednodušejí než jsem zažil kdekoliv jinde, najednou je možné snadno šahat i na core části OS. Obrovská výhoda je i možnost výsledný systém naprosto zjednodušit, skončíš s 3 systémovými službami a 4 aplikačními. Nemáš na FS miliony různých souborů, služeb, uživatelů, které jsou v distribuci a ty je nepoužíváš, nemáš tam spousty binárek se suid flagem, nemusíš tolik věcí řešit a kontrolovat, protože tam nejsou.
Jsem fanoušek freebsd, openbsd, arch a nikde jsem se nebyl schopný dostat k tomu, že i na produkci děláme větší redukce a optimalizace. Snadno se ta práce sdílí v repositáři a někomu předává. Najednou neřešíme jen OS, ale OS a aplikace zároveň, při integraci nějakého Vaultu najednou jsme schopný mít systém vč. služeb v přesně daném stavu a k tomu vše immutable, žádné runtime změny v OS.
vpsfree to používají, ale za mě v tom jsou ještě hodně basic, i tak nejspíš ty výhody pociťují.