Im Mai wurde mit der Version 8 das nächste Release von Red Hat Enterprise Linux (RHEL) veröffentlicht. Nach 5 Jahren Entwicklungszeit stellt der amerikanische Distributor eine neue Generation des Flaggschiffs vor, die alte Zöpfe abschneidet und frische Veränderungen verspricht. Zeit einen Blick auf die vielversprechenden Änderungen zu werfen.
Lesezeit: 9 Minuten
Application Streams
Die auffälligste Veränderung stellen die sogenannten Application Streams dar. Das modulare Konzept unterscheidet zukünftig zwischen konservativen und moderneren Software-Paketen – früher wurden sämtliche Pakete der Distribution stets konservativ behandelt. So hat der Benutzer beispielsweise die Möglichkeit neuere Python- oder Datenbank-Versionen einzusetzen, als die im BaseOS veröffentlichten Varianten. Hiermit will Red Hat bewusst schnelllebige Bereiche ansprechen, die bisher aufgrund veralteter Pakete nicht auf RHEL gesetzt haben – beispielsweise die Bereiche Web, Python und Ruby.
Dieser Grundgedanke dürfte Anwendern der Software Collections (SCLs) (hier klicken) bekannt vorkommen – hier ist es ebenfalls möglich, für einige auserwählte Programme und Technologien parallel neuere Paketversionen auf älteren RHEL-Releases zu installieren. Neuere Versionen werden konsequent in dedizierten Ordnerstrukturen installiert, um das Überschreiben von Systemdateien zu verhindern. Einzelne Programme lassen sich dadurch anschließend in abgeschotteten Umgebungen starten. Allerdings ist dies in der Praxis häufig problematisch – so gestalten sich beispielsweise vor allem Abhängigkeiten bei neueren PHP-Versionen als schwierig.
Während RHEL generell 10 Jahre – und gegen weitere Bezahlung bis zu 13 Jahre – unterstützt wird, gelten für Application Stream-Pakete kürzere Wartungszeiten. Das ermöglicht Red Hat einerseits neuere Technologien schneller in RHEL zu integrieren und reduziert andererseits auch den internen Wartungsaufwand. Technisch betrachtet sind verkürzte Laufzeiten an manchen Stellen auch durchaus sinnvoll, denn wer möchte schon bei der Installation einer modernen Ruby on Rails-Webanwendung auf eine stark veraltete Version 1.2 zurückgreifen, auch wenn diese 10 Jahre gepflegt wird?
Der Lebenszyklus von Application Stream-Paketen beträgt in der Regel zwischen 2 und 5 Jahren. Produkte mit besonders aktiver Entwicklung (z.B. PHP, Ruby, Node.js) haben kürzere Lebenszyklen, während Technologien mit geringerer Halbwertszeit (wie beispielsweise MySQL, Apache, PostgreSQL) länger gepflegt werden. Red Hat pflegt eine entsprechende Datenbank mit Lebenszyklus-Informationen (hier klicken). Am Ende eines jeden Produktlebenslebenszyklus muss dann ein Upgrade auf die nächsthöhere Version erfolgen, um weiterhin mit Patches versorgt zu werden.
Unified ISO
Die Installationsmedien wurden ebenfalls aktualisiert – die Binary DVD passt aufgrund von Application Stream-Paketen mit knappen 7 GB nun auf keine Single Layer-DVD mehr. Die Boot ISO kann nur noch zum Booten des Installationssystems benutzt werden – Pakete müssen anschließend via Netzwerk übertragen werden. Mit lorax-composer wird ein Werkzeug zur Erstellung eigener QCOW-, ISO- und Cloud-Abbilder mitgeliefert.
Container aus den eigenen Reihen
Gegenüber der vorherigen Version 7 wurde das Docker-Paket aus der Distribution entfernt. Neben Differenzen zwischen Docker und Red Hat dürfte vor allem der Wartungsaufwand eine entscheidende Rolle gespielt haben. Aufgrund der langen Wartung der Pakete konnte Red Hat an dieser Stelle nicht mit der sehr aktiven Entwicklung von Docker mithalten und lieferte stets stark veraltete Versionen aus. Das Fehlen von Docker ist somit weniger schmerzhaft, da die meisten Benutzer ohnehin auf die offiziellen Pakete zurückgreifen, die Docker für sämtliche Linux-Distributionen bereitstellt.
Neu hingegen sind die Eigenentwicklungen namens Podman, Buildah und Skopeo. Das Trio macht das fehlende Docker wieder wett. Podman ist eine Container-Engine, die ohne Hintergrunddienst und Root-Rechte auskommt. Damit ist die Architektur sicherer als die Dockers, welche klassische Server/Clients implementiert. Mittlerweile auch von anderen Linux-Distributionen verwendet, positioniert sich Podman als Docker-Alternative. Für die Erleichterung des Umstiegs wurde eine Kompatibilität zu Docker-Kommandos implementiert. Zudem lassen sich offizielle Images des Docker Hubs verwenden.
Mithilfe von Buildah lassen sich Container nach den Vorgaben der Open Container Initiative (OCI) erstellen. Es werden unter anderem Dockerfiles und leere Container als Einstiegspunkt unterstützt. Gegenüber Docker sind Buildah-Container kleiner in ihrer Dateigröße.
Die dritte Entwicklung im Bunde (Skopeo) dient zum Container-Austausch zwischen Registries und ermöglicht auch das Auslesen von Container-Informationen, ohne diese dabei herunterzuladen. So können sämtliche Eigenschaften wie beispielsweise Layer eines Containers vor dem Download angezeigt werden.
Neuer Paketmanager: DNF
Mit DNF (Dandified Yum) erhält RHEL seit der ersten Version 2.1 erstmals einen neuen Paketmanager. Dieser beerbt den in die Jahre gekommenen YUM (Yellowdog Update Modified). DNF entstand 2012 als Fork von YUM 3 und wurde mit einem Augenmerk auf höhere Geschwindigkeit und geringeren Arbeitsspeicherbedarf entwickelt. Ein weiteres Highlight ist die verbesserte Abhängigkeitsauflösung – hierfür wird die von SUSE entwickelte libsolv verwendet, die auch in Zypper zum Einsatz kommt. Um den Umstieg zu erleichtern, unterstützt DNF bisherige YUM-Kommandos.
Ist weniger wirklich mehr?
Wie bereits vorab angekündigt, erhält die KDE Plasma-Desktopumgebung keinen Einzug mehr in RHEL 8. Damit zieht Red Hat mit Canonical und SUSE gleich, die den Desktop schon vor längerer Zeit entfernt haben. GNOME wird in Version 3.28 ausgeliefert und startet standardmäßig auch im Wayland-Modus, sofern keine nicht unterstützten Grafikkarten-Treiber (u.a. nvidia) zum Einsatz kommen. In diesem Fall erfolgt der Start über den immer noch gepflegten X.org-Server.
Das Dateisystem XFS wurde aktualisiert und unterstützt nun Copy-on-Write. Nicht mehr unterstützt wird hingegen Btrfs. Dieser Schritt erscheint unverständlich, da sich besagtes Dateisystem stetig wachsender Beliebtheit erfreut – somit bietet RHEL kein modernes, transaktionsbasiertes und Snapshot-orientiertes Dateisystem. Abhilfe schaffen soll der Einsatz von Stratis, einem Storage-Manager. Dieser setzt auf XFS auf und vereint Volume Management, Thin Provisioning und Snapshots und integriert sich in Device Mapper. Stratis ist seit zwei Jahren in Entwicklung und kürzlich in der Version 1.0 erschienen – die tatsächliche Marktreife wird sich in den nächsten Monaten zeigen.
Abbildung 1: Der aktualisierte GNOME 3.28-Desktop
Community
CentOS ist eine kostenfreie Linux-Distribution, die auf dem RHEL-Quellcode basiert. Nach dem Veröffentlichen neuer RHEL-Versionen dauert es erfahrungsgemäß einige Zeit, bis die Änderungen im CentOS-Projekt vollzogen werden. Die Arbeiten an CentOS 8 sind bereits in Gange und sollen nach Aussage des CentOS-Teams voraussichtlich bis September abgeschlossen sein. Der konkrete Fortschritt kann im Wiki des Projekts eingesehen werden.
Fazit
Mit RHEL 8 vollzieht Red Hat einige radikale Veränderungen. Begrüßenswert ist das neue modulare Software-Modell, mit dem es RHEL nun auch gelingen könnte, in kurzlebigeren Anwendungsgebieten eine höhere Marktrelevanz zu generieren. Dass Red Hat lange unterstützte, stabile Betriebssysteme beherrscht, gilt als bewiesen – wie es rundum die Hype-Themen des Webs aussieht, werden die nächsten Monate zeigen.
Etwas verwunderlich erscheint jedoch das vehemente Verweigern von Btrfs, welches bei der Konkurrenz schon länger in Produktionsumgebungen eingesetzt werden darf. Inwieweit die Alternative Stratis hier eine Praxistauglichkeit liefern kann bleibt abzuwarten.
Mit dem neuen Container-Trio (Podman, Buildah, Skopeo) wird es mal wieder zur richtigen Zeit spannend auf dem Markt. Alternativen gibt es inzwischen einige, die dem Container-Monolithen Docker den Defacto-Schneid abkaufen wollen. Podman weiß mit seiner Leichtgewichtigkeit, Sicherheit und Umsteigerfreundlichkeit durchaus zu gefallen.