systemd, der nächste Horror für BSD?

Status
Für weitere Antworten geschlossen.
Bist du selber Admin, oder hast du nur mal mit welchen gesprochen?

Ich bin eigentlich Softwareentwickler im Bereich Middleware und viel in Integrationsprojekten in Unix-lastigen Branchen unterwegs.
Dadurch bin ich reichlich in Kontakt mit solchen Problematiken unter diversen Betriebssystemen (Linux, Solaris, AIX, aber auch gelegentlich Windows) konfrontiert, die zur Umsetzung der Integrationsprobleme in den Griff gebracht werden müssen.

Das gibt es sehr selten und für seltene Fälle optimiert man keine Software, vor allem nicht wenn das Konzept lächerlich wird.

Unterschätze nicht die gigantische Menge an Individualsoftware, die genau solche Probleme hat, weil sie über Jahre und Jahrzehnte gewachsen ist, immer wieder angepasst wurde und entsprechende Abhängigkeiten zu externen Systemen hat. Ich war schon in vielen Unternehmen unterwegs, die mehr Individualsoftware in Betrieb haben als FreeBSD Ports hat.

Verhaltensanalyse, Workarounds... jede Menge Sachen sind möglich. Es ist halt teuer, sich mich mülliger Software zu beschäftigen, deswegen sollte diese im Müll landen, bevor sie Unkosten und oft auch Katastrophen verursacht.

Die Software mag oftmals alt, nicht besonders sexy und nach heutigen Maßstäben in vielen Fällen hoffnungslos veraltet sein.
Es ist aber auch die Software, mit der ein beträchtlicher Teil der Unternehmen ihr Geld verdient. Natürlich wäre es schön, diese Software in aller Ruhe auf der grünen Wiese neu zu entwickeln, aber dabei landet man sehr schnell bei astronomischen Kosten - für Software, die erstmal nicht mehr kann als der Vorgänger. Von Integrationstests, Migrationen und sonstigen Risiken ganz zu schweigen. Und dafür soll ein Unternehmen dann mal eben Millionen oder - je nach Größe - Milliarden ausgeben, mit ungewissem Ausgang?

Namhafte Firmen haben oft fähige Leute, die sofort sehen, dass eine Software schlecht ist und suchen nach Alternativen.

Wärst du mal in namhaften Firmen unterwegs, würdest du erschrecken, wieviel hochkarätige Leute an vermeintlich schlechter Software arbeiten, die aber hier, jetzt und heute funktioniert und dafür sorgt, dass das jeweilige Unternehmen überhaupt existiert. Für die es keine Alternativen gibt, weil sie genau die Aufgaben löst, die dieses Unternehmen hat. Für die es keine vergleichbare Software am Markt gibt und deren Ablösung unbezahlbar ist. Wie soll hier die Alternative aussehen?

1) Die Lösung ist angemessen in der Komplexität. Wenn sie ja so viele Millionen kostet, dann kann man auch Millionen investieren damit sie sich korrekt verhält, oder wie siehst Du das?

Es gibt reichlich Software, die historisch gewachsen ist und dadurch einfach Macken hat, die sich mit vertretbarem Aufwand nicht beheben, sondern nur in den Griff kriegen lassen.
Software, für die vielleicht ein Nachfolger in Sicht ist, dessen Produktionsreife sich aber noch Jahre (oder auch ein Jahrzehnt) hinziehen wird. In der Zwischenzeit muss die Software funktionieren.

2) systemd ist wie Du sagtest deklativ. Die Workarounds sind meistens nur mit prozess-/skriptorientieren Sprachen konstruierbar.

Mit systemd kann man eben viele Konstellationen, die man vorher nur mit reichlich 3rd-Party-Software und Skripts in den Griff bekommen hat, rein deklarativ lösen - mit deutlich weniger Aufwand und höherer Zuverlässigkeit.
Es wird natürlich auch bei systemd das eine Prozent Spezialfälle geben, bei denen man zusätzlich ein Skript haben möchte - deren Integration hat systemd aber auch vorgesehen.

Das sind sie auch out-of-the-box mit init. Da sind oft 10 Zeilen Konfiguration pro Dienst bei FreeBSD. Total einfach.

Das reicht eben für einen professionellen Betrieb oftmals nicht aus. Warum gibt es wohl so viele Projekte (launchd, upstart, openrc, systemd, smf, etc.), die sich genau solchen Problemen widmen?
Der klassische SysVinit/BSDinit reicht nur für triviale Fälle aus und wird heutigen Anforderungen nicht mehr gerecht.

Wie schon gesagt: mit Dienstestarten und -beenden hatte ich noch nie Probleme.

Die Toleranz wächst mit der Distanz zum Problem.

Nein. Kann es nicht. Es kann nicht eine spezifische wählbare Reaktion auf einen Exitcode implementieren, sondern nur auf Verhaltensklassen einige (auf einer Hand) abzählbare Reaktionen verursachen. Das ist bei den vielen Sachen, die man als Admin vor hat nicht genügend.

Auch daran wurde in systemd gedacht, die Flexibilität hat man. Mittels ExecStopPost kannst du auch beliebige Kommandos (inklusive Auswertung des Exitcode) ausführen, falls die umfangreichen deklarativen Möglichkeiten nicht ausreichen.

Man möchte da unendliche Flexibilität (eine Turing-vollständige Sprache eben).

Nein - man möchte unendliche Flexibilität haben, wenn man sie braucht. Ansonsten möchte man möglichst keinen Code schreiben. Jede Zeile Code muss geschrieben, verstanden, debugged und gewartet werden.

Aus all diesen Gründen und vielen mehr: Why systemd is winning the init wars and other things aren't.
 
Mal schauen, ob Debian als Community das überlebt.
Ich frag mich eh, warum die Debianer nichht einfach gesagt haben, man bringt ein Image mit systemd und eines mit, sagen wir mal, OpenRC raus. Klappt ja mit KDE/Gnome/LXDE/XFCE auch

Wie du schon bei den BSDs mal gesagt hattest: BSD wurde über die Jahre hinweg schon mehrmals tot gesagt und hat es immer wieder überstanden. Genauso wird es bei Debian auch laufen. Zu viele Leute, die nicht auf Redhat oder Suse setzen wollen, mögen Debian, weil es eine der großen Distributionen ist, für die du viel Support findest.
 
Ich seh da kein Problem. Erstes deren jetziges init ist ohnehin ein Fork, dessen unterstützte Plattformen bedingen das auch. Die Lizenz ist GPL oder meinst du jetzt die CLA, die ist eigentlich fast in jeden größeren OSS Projekt gegeben. Mit systemd spart man sich den Entwicklungsaufwand, aber mal ehrlich wieviele Commits und Weiterentwicklung gibts denn jetzt? Wieviel Anpassungen brauchts damit für Debian verwendbar ist?
 
...
Unterschätze nicht die gigantische Menge an Individualsoftware, die genau solche Probleme hat, weil sie über Jahre und Jahrzehnte gewachsen ist, immer wieder angepasst wurde und entsprechende Abhängigkeiten zu externen Systemen hat.
...
Die Software mag oftmals alt, nicht besonders sexy und nach heutigen Maßstäben in vielen Fällen hoffnungslos veraltet sein.
...
Es gibt reichlich Software, die historisch gewachsen ist und dadurch einfach Macken hat, ...

Der klassische SysVinit/BSDinit reicht nur für triviale Fälle aus und wird heutigen Anforderungen nicht mehr gerecht.

?

Wenn ich Dich richtig verstehe, dann ist diese alte gewachsene Software mit alten init Systemen entwickelt worden und für diese gedacht - meiner Erfahrung nach gibt es immer eine Umgebung in der so etwas "am stabilsten" läuft.
Warum also dafür ein neues Init-System anstatt dieser Software eine möglichst optimale Umgebung zu gönnen?

Wenn mit dieser Software einer Millionen verdient, dann verdient der die nur deshalb weil er seine Admins und Softwareentwickler bescheiden bezahlt und zu knickerig ist seiner geliebten Software eine passende altmodische Umgebung zu gönnen.

Die Toleranz wächst mit der Distanz zum Problem.

Eben.


Nur weil etwas was gewinnt/ablöst heißt nicht, daß das ein richtiger Schritt in die Zukunft ist.

[Godwins Law]
Auch die Nazis haben irgendwann mal die Wahlen gewonnen ...
[/Godwins Law]

;)
 
Was waren nochmal die grundlegenden Probleme von den bisherigen Init-Implementierungen, dass man sie unbedingt ersetzen muss (bzw. dies glaubt zu müssen)?
 
Schwer zu sagen, nachdem Systemd Fans die Wiki Seiten dahingehend bearbeitet haben, damits auf ihren Favoriten gut passt. Ich würde meinen die meisten Features sind Nice-To-Have.
 
Das man etwa mit daemon supervisorn überprüfen musste, ob die daemons noch laufen und eventuell neu startet. Aber ein extra Program zu haben, dass dir den daemon startet, find ich passender, da modular.
Ein weiteres Argument sind die Abhängigkeiten, da du etwa noch keine NFS-Shares mounten solltest, falls das Netzwerk noch nicht da ist.
 
lechindianer schrieb:
Ein weiteres Argument sind die Abhängigkeiten, da du etwa noch keine NFS-Shares mounten solltest, falls das Netzwerk noch nicht da ist.
Also das ist nun wirklich kein gutes Beispiel. Jedes halbwegs zurechnungsfähige Init-System nach 1975 ermöglicht es Abhängigkeiten zwischen den Diensten zu definieren und spätestens 1998 wurde dies Problem durch NetBSD mittels rcorder(8) abschließend gelöst.
 
Was sagen eigentlich die, die zum Beispiel bei FreeBSD das Sagen haben zu dieser Problematik wenn es für sie eine solche sein sollte?
 
Weil Systemd Abhängigkeiten in freie Projekte streuen. Mir fallen da spontan Wayland, Gnome, X, KDE(in Planung) ein.
 
Das sehe ich sehr pragmatisch. Ein System ist doch kein Selbstzweck. Wenn Linux auf den Desktop mit allen Anwendungen besser nutzbar ist (ich bin kein Softwareentwickler) nehme ich eben ein passendes Linux.

BSD ist leichter verständlich, strukturierter, ich muss nicht jeden Monat neue Tools lernen, nur weil irgendwer meint was neues entwickeln zu müssen. Außerdem kann ich hier auch Sachen für unsere Server entwickeln/testen, ohne durch irgendwelche Reifen springen zu müssen. Schonmal versucht, Interface Bonding auf Linux zu machen? Unter den BSDs sind das Einzeiler.
 
Das Problem dabei ist, dass du dann halt wieder ein System mehr zu lernen hast. Ein Grund warum ich zu den BSDs gewechselt hab, war die einfachere Handhabung, da ich mich nur mit den Befehlen von Open und Free auseinandersetzen muss. Unter den verschiedenen Distributionen herrscht halt doch ziemlicher Wildwuchs.
Außerdem ist es als Portsmaintainer schon praktisch dein Zeug auch mal auf echter Hardware zu testen...
 
BSD ist leichter verständlich, strukturierter, ich muss nicht jeden Monat neue Tools lernen, nur weil irgendwer meint was neues entwickeln zu müssen. Außerdem kann ich hier auch Sachen für unsere Server entwickeln/testen, ohne durch irgendwelche Reifen springen zu müssen. Schonmal versucht, Interface Bonding auf Linux zu machen? Unter den BSDs sind das Einzeiler.

BSD ist leichter verständlich. Für wen? Für den normalen Nutzer ist Verständlichkeit nicht von Bedeutung. Sein System muß funktionieren. Er will keinen Streß haben.
 
Das Problem dabei ist, dass du dann halt wieder ein System mehr zu lernen hast. Ein Grund warum ich zu den BSDs gewechselt hab, war die einfachere Handhabung, da ich mich nur mit den Befehlen von Open und Free auseinandersetzen muss. Unter den verschiedenen Distributionen herrscht halt doch ziemlicher Wildwuchs.
Außerdem ist es als Portsmaintainer schon praktisch dein Zeug auch mal auf echter Hardware zu testen...

Es ist ja nicht so, daß ich von FreeBSD auf dem Desktop unbedingt weg will. Mittlerweile kann ich ganz gut (ist relativ) damit umgehen und mit fluxbox und diversen scripts kann ich auch auf Gnome und Konsorten verzichten. Wenn aber die Anwendungen langsam aber sicher den Bach runtergehen gibt es keine Alternative. Noch aber ist es nicht so weit.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben