Proč jsou všichni proti systemd?

Re:Proč jsou všichni proti systemd?
« Odpověď #60 kdy: 19. 05. 2016, 11:47:38 »
Prepísat do Haskella.
Alebo do iného hentého s. funkcionára.


Re:Proč jsou všichni proti systemd?
« Odpověď #61 kdy: 19. 05. 2016, 12:10:41 »
Prepísat do Haskella.
Alebo do iného hentého s. funkcionára.
To už existuje: https://www.gnu.org/software/shepherd/ :)

andy

Re:Proč jsou všichni proti systemd?
« Odpověď #62 kdy: 19. 05. 2016, 13:22:30 »
Citace
Takový typický startskript vypadá takhle:
Já si nemůžu pomoct, ale mně to pořád připadá jak lépe organizovaný nepořádek...
Citace
Nevím, jaká by v tom měla být náhoda. Klasické inity prostě po službách požadují, aby se daemonizovaly a zachovaly pid. Pokud se daemonizovat neumí, použije se jako obálka ten zmíněný daemon( 8 ).
Když ti daemon spadne a přeroluje se ti pid. Možná ten pidfile má být jěště locknutý? Nevím, moc netuším, proč vůbec mít pidfile.
Citace
Na tom není špatného celkem nic. Však úplně to samé dělá supervisord. Ošemetné je to, že se naprosto klíčová součást systému, na které veškerá stabilita stojí a padá, nahrazuje něčím, co je pro adminy jenom rizikem a nepřináší to víceméně nic, co by se nedalo udělat i bez něj. (viz níž)
Tak ony jsou 2 argumenty proti systemd - jeden je proti architektuře ve stylu "můžeme to spouštět ze skriptů a taky to funguje" a druhý "systemd je blbě napsaný software se spoustou bugů a neschopnýma (nebo všeho schopnýma) vývojářema". S druhým argumentem souhlasím, ale ten první nechápu. Pořád.
Editovat si init skripty to zavání průšvihem. Nebo snahou administrátora nebýt vyhozen, protože se v tom nikdo jiný nevyzná.

Citace
Tobě jako programátorovi to možná přijde jako super nápad, ale je to jedna z nejhorších věcí, co se dá s logováním udělat. Std{out|err} je totiž stream. A do logu potřebuješ dostat záznamy. Takže musíš do toho stdxxx emitovat nějaký strukturovaný formát, který jde na záznamy rozdělit (nejstupidnější řešení je rozdělit ho pomocí \n). Jaké strukturované formáty umí systemd po stdxxx přijímat? Co když budu chtít použít jiný? Tohle já třeba nevím.
Tak ono taky záleží na tom, co chceš logovat. Nevím, co je stupidního na tom dělit to pomocí \n, když víš, že v té zprávě ten enter nebude. Můžeš si to klidně tisknout v jsonu a pak si to někde v log managementu naparsovat. Popravdě syslog zas tak špatný není, máš tam severitu a to je vlastně asi nejdůležitější. Ale ono je typické takové to "jsem na tomhle systému, z nějakého důvodu mi neběží X, co se stalo". A pokud to něco vypsalo, přes journalctl to snadno najdeš.
Citace
Srovnání s PHP je mimo, protože tam předpokládáš vysoký kvalitativní skok (druhý jazyk je třeba daleko produktivnější). To při téhle změně prostě neplatí. Z hlediska admina je to změna pro změnu "aby to bylo čistější".
Pokud to myslíš z důvodu kvality provedení systemd, tak to nerozporuji. Pokud tím myslíš z důvodu věcí, které systemd přináší, tak teda nesouhlasím, pro mě to teda výrazný krok dopředu je.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Proč jsou všichni proti systemd?
« Odpověď #63 kdy: 19. 05. 2016, 13:46:49 »
Citace
Na tom není špatného celkem nic. Však úplně to samé dělá supervisord. Ošemetné je to, že se naprosto klíčová součást systému, na které veškerá stabilita stojí a padá, nahrazuje něčím, co je pro adminy jenom rizikem a nepřináší to víceméně nic, co by se nedalo udělat i bez něj. (viz níž)
Tak ony jsou 2 argumenty proti systemd - jeden je proti architektuře ve stylu "můžeme to spouštět ze skriptů a taky to funguje" ... ale ten první nechápu. Pořád.
Editovat si init skripty to zavání průšvihem. Nebo snahou administrátora nebýt vyhozen, protože se v tom nikdo jiný nevyzná.
Tak to zkus otočit. Když admin spustí nějakou službu, a ona se nechová jak potřebuje, tak jak to fixne? Správně je samozřejmě upravit ty deklarativní unit soubory. To je ok. Ale co když, chudák, narazí zrovna na bug v init systému? On to potřebuje vyřešit. Hrábnutí do scriptů je sice prasečina největší, ale je to řešení. Službu nahodí, a pak začne řešit, co s tím. Dělat to naopak je děs.

Re:Proč jsou všichni proti systemd?
« Odpověď #64 kdy: 19. 05. 2016, 14:01:16 »
Já si nemůžu pomoct, ale mně to pořád připadá jak lépe organizovaný nepořádek...
Proč nepořádek? Deklarativní popis služby je jenom nastavení nějakých proměnných. U systemd je to v nějakém .ini formátu, u toho, co jsem ti ukázal, je to v shellovém formátu var=val. V čem ti přijde tak zásadní zlepšení shell->.ini? Mně to přijde jako spíš zhoršení, protože v shell formátu si může - pokud budu chtít - načíst hodnoty libovolným spuštěním příkazu. Třeba wgetem z konfiguračního serveru. U systemd to neuděláš. A kdyby to lidi chtěli, tak se zavede další proměnná "ReadConfigFromHttp", pak se zjistí, že k načítání přes HTTP potřebuješ http knihovnu, tak se http knihovna vloží do binárky PID 1 a následujících deset let se v ní budou nacházet bezpečnostní chyby, umožňující eskalaci na roota. Ale hlavně, že to není nepořádek ;)

Tak ony jsou 2 argumenty proti systemd - jeden je proti architektuře ve stylu "můžeme to spouštět ze skriptů a taky to funguje" a druhý "systemd je blbě napsaný software se spoustou bugů a neschopnýma (nebo všeho schopnýma) vývojářema". S druhým argumentem souhlasím, ale ten první nechápu. Pořád.
Jenže ten první argument zní spíš "proč vrtat do něčeho, co funguje?" - každý admin se na změnu dívá stylem "máme silný argument, proč změnu dělat?" a ne "Máme silný argument, proč změnu NEdělat?"

Editovat si init skripty to zavání průšvihem. Nebo snahou administrátora nebýt vyhozen, protože se v tom nikdo jiný nevyzná.
Ale blbost. Buď je ta oprava triviální, nebo si třeba uděláš jiný startup skript bokem. Kařdopádně oboje děláš nějaký configuration managementem (puppet, ansible, salt...), takže je to změna jako každá jiná.

Konkrétní příklad: triviální chyba ve startup skriptu služby v Ubuntu. Ticket bez opravy visí v bugzille rok: https://plus.google.com/+MiroslavPrymek/posts/TAYTy8DHMLq Co myslíš, že má admin udělat? Opravit to a mít stabilní server, nebo rok čekat, až se někdo v Canonicallu rozhoupe?

Tak ono taky záleží na tom, co chceš logovat. Nevím, co je stupidního na tom dělit to pomocí \n, když víš, že v té zprávě ten enter nebude.
Jenže to nikdy nevíš. Logované zprávy typicky citují nějaká vstupní data, kde se \n může objevit i když to nečekáš. A celej logging se ti takovou blbostí může rozesrat. Spolíhat na to, že se ti nikdy v logované zprávě neobjeví BĚŽNÝ znak, je hloupost. Nemluvě o tom, že třeba stacktracy \n vždycky obsahují - a nechceš mít jeden stacktrace rozdělený na dvacet samostatných zpráv. Čili minimálně pro jakýkoliv jazyk, který v případě chyby vyhodí stacktrace je to no-go.

Můžeš si to klidně tisknout v jsonu a pak si to někde v log managementu naparsovat. Popravdě syslog zas tak špatný není, máš tam severitu a to je vlastně asi nejdůležitější. Ale ono je typické takové to "jsem na tomhle systému, z nějakého důvodu mi neběží X, co se stalo". A pokud to něco vypsalo, přes journalctl to snadno najdeš.
Však jo, syslog je v pohodě (když máš nad ním nějaký ten strukturovaný formát). Ale opakuju otázku: jaké strukturované formáty podporuje systemd-logger, pokud aplikace loguje na stderr? Pokud chci jeho logy dostat do rsyslogd, jak mi je předá? Rozdělí podle \n? To ale nechci. Mám možnost ho donutit k jinému chování? Kolik hodin/dní/týdnů to budu zjišťovat? Kolik hacků budu muset udělat, abych dosáhl chování, které už jsem měl odladěné? Kolik hodin/dní/týdnů bude nalezené nové řešení fungovat, než se někdo v upstreamu rozhodne to změnit?

Chápej, tohle jsou otázky, které adminy zajímají. Ne nějakej přiblblej rychlejší boot a "čistější" popisy služeb.

Pokud tím myslíš z důvodu věcí, které systemd přináší, tak teda nesouhlasím, pro mě to teda výrazný krok dopředu je.
No ale ještě jsi neuvedl jedinou věc, která by už dávno nebyla vyřešená i bez systemd a která by zároveň výrazně pálila výrazné množství adminů...
« Poslední změna: 19. 05. 2016, 14:04:23 od Mirek Prýmek »


andy

Re:Proč jsou všichni proti systemd?
« Odpověď #65 kdy: 19. 05. 2016, 14:13:58 »
Citace
Na tom není špatného celkem nic. Však úplně to samé dělá supervisord. Ošemetné je to, že se naprosto klíčová součást systému, na které veškerá stabilita stojí a padá, nahrazuje něčím, co je pro adminy jenom rizikem a nepřináší to víceméně nic, co by se nedalo udělat i bez něj. (viz níž)
Tak ony jsou 2 argumenty proti systemd - jeden je proti architektuře ve stylu "můžeme to spouštět ze skriptů a taky to funguje" ... ale ten první nechápu. Pořád.
Editovat si init skripty to zavání průšvihem. Nebo snahou administrátora nebýt vyhozen, protože se v tom nikdo jiný nevyzná.
Tak to zkus otočit. Když admin spustí nějakou službu, a ona se nechová jak potřebuje, tak jak to fixne? Správně je samozřejmě upravit ty deklarativní unit soubory. To je ok. Ale co když, chudák, narazí zrovna na bug v init systému? On to potřebuje vyřešit. Hrábnutí do scriptů je sice prasečina největší, ale je to řešení. Službu nahodí, a pak začne řešit, co s tím. Dělat to naopak je děs.
Ale on ti nikdo nebrání spustit ten servis z ruky, že?

MP

Re:Proč jsou všichni proti systemd?
« Odpověď #66 kdy: 19. 05. 2016, 14:15:28 »

Konkrétní příklad: triviální chyba ve startup skriptu služby v Ubuntu. Ticket bez opravy visí v bugzille rok: https://plus.google.com/+MiroslavPrymek/posts/TAYTy8DHMLq Co myslíš, že má admin udělat? Opravit to a mít stabilní server, nebo rok čekat, až se někdo v Canonicallu rozhoupe?


Admin ma mit zaplaceny support, aby to ta firma opravila. Bez supportu se vsak vsechno bastli zleva zprava a jsou to pak mnohdy nedokumentovane zmeny, o kterych nikdo nevi.

A co se tyce rozhodovani o zmenach, IT je tak dynamicky obor, ze pokud je nekdo prilis konzervativni, tak je to mnohdy ke skode - klasikou jsou superstare SW, kvuli kterym se musi drzet stary HW/OS, protoze to na novejsim nebezi. A to jsou mnohdy zvysene naklady. On management taky nebude jezdit autem z roku razdva, ale bude radeji pouzivat novejsi.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Proč jsou všichni proti systemd?
« Odpověď #67 kdy: 19. 05. 2016, 14:18:54 »
Citace
Na tom není špatného celkem nic. Však úplně to samé dělá supervisord. Ošemetné je to, že se naprosto klíčová součást systému, na které veškerá stabilita stojí a padá, nahrazuje něčím, co je pro adminy jenom rizikem a nepřináší to víceméně nic, co by se nedalo udělat i bez něj. (viz níž)
Tak ony jsou 2 argumenty proti systemd - jeden je proti architektuře ve stylu "můžeme to spouštět ze skriptů a taky to funguje" ... ale ten první nechápu. Pořád.
Editovat si init skripty to zavání průšvihem. Nebo snahou administrátora nebýt vyhozen, protože se v tom nikdo jiný nevyzná.
Tak to zkus otočit. Když admin spustí nějakou službu, a ona se nechová jak potřebuje, tak jak to fixne? Správně je samozřejmě upravit ty deklarativní unit soubory. To je ok. Ale co když, chudák, narazí zrovna na bug v init systému? On to potřebuje vyřešit. Hrábnutí do scriptů je sice prasečina největší, ale je to řešení. Službu nahodí, a pak začne řešit, co s tím. Dělat to naopak je děs.
Ale on ti nikdo nebrání spustit ten servis z ruky, že?
Ještě aby to tak.

To máš těžký, oni jsou admini rozmazlený z toho, že očekávaj, že ten init bude fungovat. A když nefunguje, tak alespoň, že to de nějak poštelovat.

Takže otázka zní, jde systemd poštelovat, když tam autoři nechají nějakou chybu? A je to argumentace na to, proč je to ve scriptech, proč se obecně adminům nezamlouvá binárka.

K tomu si přičti i skutečnost, že v opravdové nouzi ten admin tu zlobící službu prostě vyřadí, a nějak to spáchá sám. Což ale, jak se zdá, taky tak docela nejde. Respektive SystemD tomu klade tuhý odpor.

Re:Proč jsou všichni proti systemd?
« Odpověď #68 kdy: 19. 05. 2016, 14:19:36 »
Admin ma mit zaplaceny support, aby to ta firma opravila.
:))) Chtěl bych vidět tu cenu supportu za službu "opravíme vám cokoliv do 24 hodin, abyste do ničeho nemuseli sahat". Jistě by to byla velmi výhodná koupě :)

Bez supportu se vsak vsechno bastli zleva zprava a jsou to pak mnohdy nedokumentovane zmeny, o kterych nikdo nevi.
A proč by o nich nikdo neměl vědět? Admin konfiguruje a konfigurace se řeší konfiguračním managementem, každá změna je zdokumentovaná.

To, že je potřeba něco opravit, přece neznamená, že se sshčknu na server, udělám to ručně a do pěti minut zapomenu.

pokud je nekdo prilis konzervativni
Jistě, "příliš X" je vždycky špatně. Třeba příliš obecná tvrzení jsou úplně k ničemu.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Proč jsou všichni proti systemd?
« Odpověď #69 kdy: 19. 05. 2016, 14:20:31 »

Konkrétní příklad: triviální chyba ve startup skriptu služby v Ubuntu. Ticket bez opravy visí v bugzille rok: https://plus.google.com/+MiroslavPrymek/posts/TAYTy8DHMLq Co myslíš, že má admin udělat? Opravit to a mít stabilní server, nebo rok čekat, až se někdo v Canonicallu rozhoupe?


Admin ma mit zaplaceny support, aby to ta firma opravila. Bez supportu se vsak vsechno bastli zleva zprava a jsou to pak mnohdy nedokumentovane zmeny, o kterych nikdo nevi.
Admin je jen Support in House. Co asi myslíš, že ten Support udělá? Je v úplně stejné situaci.

Re:Proč jsou všichni proti systemd?
« Odpověď #70 kdy: 19. 05. 2016, 14:21:18 »
Takže otázka zní, jde systemd poštelovat
A taky shellscripty můžeš poštelovat nezávisle na už běžících službách. Ale zkus si opatchovat PID 1 a spustit pomocí něj novou službu...

andy

Re:Proč jsou všichni proti systemd?
« Odpověď #71 kdy: 19. 05. 2016, 14:25:22 »
Citace
Takže otázka zní, jde systemd poštelovat, když tam autoři nechají nějakou chybu? A je to argumentace na to, proč je to ve scriptech, proč se obecně adminům nezamlouvá binárka.
A co když autoři nechají chybu v libc?

Citace
K tomu si přičti i skutečnost, že v opravdové nouzi ten admin tu zlobící službu prostě vyřadí, a nějak to spáchá sám. Což ale, jak se zdá, taky tak docela nejde. Respektive SystemD tomu klade tuhý odpor.
[/quuote]
Opakuji otázku: ten servis snad nejde spustit z ruky?

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Proč jsou všichni proti systemd?
« Odpověď #72 kdy: 19. 05. 2016, 14:32:29 »
Citace
Takže otázka zní, jde systemd poštelovat, když tam autoři nechají nějakou chybu? A je to argumentace na to, proč je to ve scriptech, proč se obecně adminům nezamlouvá binárka.
A co když autoři nechají chybu v libc?
A jaký je to hukot, když se tam najde?


Citace
K tomu si přičti i skutečnost, že v opravdové nouzi ten admin tu zlobící službu prostě vyřadí, a nějak to spáchá sám. Což ale, jak se zdá, taky tak docela nejde. Respektive SystemD tomu klade tuhý odpor.
Opakuji otázku: ten servis snad nejde spustit z ruky?
Eh, špatně jsem svou odpověď formuloval.

No, tak ji spustím z ruky (předpokládám, že to znamená se přihlásit na ssh). Což znamená, že si musím nějakým způsobem hlídat, že když se server restartne, tak že se mám opět přihlásit, a opět ji pustit. Teď, ono to také nemusí být nutně jen o spouštění, že jo.

No, a nevím jak vy, ale k čemu je mi takovejhle init systém, který mě nutí udržovat si seznam serverů, které musím hlídat, a pak tam ručně něco řešit, protože zautomatizovat to nejde?

Rozdíl je v tom nejde. S hromadou skriptů to zbastlím, bude to hnusný, bude to křehký, a musím to zdokumentovat, a tak, ale běží to samo.

andy

Re:Proč jsou všichni proti systemd?
« Odpověď #73 kdy: 19. 05. 2016, 14:37:09 »
Citace
Takže otázka zní, jde systemd poštelovat, když tam autoři nechají nějakou chybu? A je to argumentace na to, proč je to ve scriptech, proč se obecně adminům nezamlouvá binárka.
A co když autoři nechají chybu v libc?
A jaký je to hukot, když se tam najde?
Takže jsme opět u toho, že problém je, že programátoři systemd jsou neschopní, nikoliv u problému se systemd jako takovým? Platily by vaše námitky úplně stejně, pokud by systemd fungovalo bez chyby a autoři by bugy řešili promptně a rychle?


Citace
Eh, špatně jsem svou odpověď formuloval.

No, tak ji spustím z ruky (předpokládám, že to znamená se přihlásit na ssh). Což znamená, že si musím nějakým způsobem hlídat, že když se server restartne, tak že se mám opět přihlásit, a opět ji pustit. Teď, ono to také nemusí být nutně jen o spouštění, že jo.

No, a nevím jak vy, ale k čemu je mi takovejhle init systém, který mě nutí udržovat si seznam serverů, které musím hlídat, a pak tam ručně něco řešit, protože zautomatizovat to nejde?

Rozdíl je v tom nejde. S hromadou skriptů to zbastlím, bude to hnusný, bude to křehký, a musím to zdokumentovat, a tak, ale běží to samo.
Tak tohle byla odpověď primárně na to, že si tady někteří stěžovali, že když něco nefunguje, tak se systemd nemůžou nic, zatímco s init skriptem "nějak" spustí tu službu a pak jdou řešit problém. Tak "nějak" spustit službu můžou i z ruky.

Jinak napsat něco do /etc/rc.local jde i v systemd, pokud to nějak funguje. Takže to jde i s restartem - než se podaří problém vyřešit nějakým systémovějším způsobem.

Re:Proč jsou všichni proti systemd?
« Odpověď #74 kdy: 19. 05. 2016, 14:44:01 »
Takže jsme opět u toho, že problém je, že programátoři systemd jsou neschopní, nikoliv u problému se systemd jako takovým? Platily by vaše námitky úplně stejně, pokud by systemd fungovalo bez chyby a autoři by bugy řešili promptně a rychle?
Ne, problém je primárně v tom, že u systemd jsi upstreamu víc vydán na milost a nemilost. Což je právě ta nejistota, o které pořád mluvím.