Community-basiertes Qualitätsmanagement
Verteilte Last
von Gunnar Wrobel
Erschienen im Linux-Magazin
2006/11
Viele Linux-Distributoren stützen sich zur Qualitätssicherung auf einen zentralen, vollzeitlich engagierten Entwicklerstamm. Die Quelltext-basierte Distribution Gentoo zeigt, wie eine stärkere Beteiligung der Community mit der Tradition bricht und dennoch stabile Ergebnisse liefert.
Jede Linux-Distribution muss einen Kompromiss zwischen zwei konkurrierenden Zielen finden: Einerseits wünschen sich die Benutzer aktuelle Versionen der enthaltenen Software. Auf der anderen Seite erwarten sie von Linux kompromisslose Stabilität. Doch die lässt sich nur durch rigides Qualitätsmanagement erzielen, das zwangsläufig die Entwicklung verlangsamt.
Die meisten Distributionen durchlaufen zyklisch für jede Version eine Betatestphase. Die Quellcode-basierte Distribution Gentoo [1] kommt jedoch ohne die üblichen Releases aus: Versionen existieren nur für die Installationsmedien, die Komponenten eines laufenden Systems lassen sich mit dem Paketmanager Portage [2] jederzeit updaten.
Nach der Betaphase im zyklischen Release-Modell sind selten noch alle Pakete aktuell. Die kontinuierliche Entwicklung bei Gentoo bietet dagegen die Möglichkeit, auf neue Versionen flexibel zu reagieren. Dass die Distribution die Testphase auf einzelne Pakete bezieht, erleichtert zudem die Einbindung nicht vollzeitlich engagierter Entwickler. Gentoo kann daher die Community stärker einbinden als andere Distribution, bei denen die Mitarbeit oft auf das Einsenden von Bugreports beschränkt bleibt.
Kompilieren ohne Benutzereingriff
Qualitätsprobleme ergeben sich bei auf Binärpaketen basierenden Distributionen wie Debian, Ubuntu oder Suse oft aus den Abhängigkeiten zwischen den vorkompilierten Paketen. Das Paketmanagement-System Portage installiert die Software jedoch auf der Grundlage des Quellcode. Die Paketdefinitionen liegen als kompakte Shellskripte (so genannte Ebuilds) vor. Sie enthalten Informationen und Codefragmente, die es der Paketverwaltung ermöglichen, den Quellcode herunterzuladen, zu kompilieren und zu installieren (Abbildung 1). Binäre Abhängigkeiten entstehen erst auf dem Rechner des Anwenders.

|
Abbildung 1: Anders als die meisten Paketmanager installiert Portage keine vorkompilierten Binärpakete, sondern baut jedes Paket auf dem Rechner des Anwenders aus den Quellen. Portage kümmert sich dabei um Abhängigkeiten und automatisiert den Übersetzungsprozess.
|
So reicht innerhalb eines Ebuild zum Beispiel die Angabe »DEPEND=dev-libs/openssl«, um sicherzustellen, dass Portage die OpenSSL-Bibliothek installiert, bevor es das neue Paket einspielt. Weil dieses erst auf dem Rechner des Anwenders gegen die vorhandene Version von OpenSSL kompiliert wird, ist eine Angabe der Versionsnummer nicht nötig, solange sich das API der Bibliothek nicht verändert. Folglich lassen sich auch experimentelle Pakete mit komplexen Abhängigkeiten ohne große Probleme in das System integrieren.
Die Freiheit bezahlt Portage aber mit erhöhtem Zeit- und Ressourcenbedarf. Für viele Pakete gibt es zwar alternativ eine vorkompilierte Version. Gentoo-spezifische Vorteile wie Aktualität und Optimierung auf den eigenen Prozessor bieten die Binärpakete jedoch nicht.
Die Paketdefinitionen, die Grundlage für das automatisierte Übersetzen, stellt Gentoo in einem zentralen CVS-Baum zur Verfügung. Die Nutzer können ihr System täglich aktualisieren. Diese dynamische Paketverwaltung erleichtert die Weiterentwicklung der Distribution, hat jedoch andererseits gravierende Auswirkungen auf die Stabilität: Jeder Fehler im CVS-Baum macht sich sofort bei den Nutzern bemerkbar.
Qualitätsmanagement
Um die Herausforderung zu meistern, die durch den direkten Zugriff der Nutzer auf den zentralen Paketbaum entsteht, hat Gentoo eigene Maßnahmen zur Qualitätssicherung entwickelt: Die Software Repoman [3] überprüft neue Ebuilds auf typische Unachtsamkeiten. Hat der Entwickler zum Beispiel Abhängigkeiten zu Bibliotheken auf eine Version beschränkt, die im Portage-Baum nicht vorhanden ist, bemerkt dies Repoman vor dem Commit.
Pakete lassen sich für jede von Gentoo unterstützte Architektur separat als stabil, instabil oder maskiert kennzeichnen. Ein Paket erreicht den stabilen Zustand nicht ohne Ablauf der vorherigen instabilen Testphase.
Das Entwicklungsmodell von Gentoo bietet auf Grund seiner Konzentration auf einzelne Pakete beste Voraussetzungen für eine starke Einbindung der Community. Um Fehler in dem zentralen CVS-Tree zu vermeiden, müssen sich neue Entwickler allerdings erst bewähren, bevor sie Schreibzugriff erhalten. Bei Gentoo hat sich hierfür ein festes Verfahren etabliert.

|
Abbildung 2: Mit so genannten Overlays ermöglicht es Gentoo, experimentelle Pakete aus bestimmten Themenbereichen in ein ansonsten stabiles System einzubinden.
|
| Whitepaper |
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|