Federlesen #2: Infrastruktur und Prozesse als Erfolgsrezept

Apache-Techniken sind von Anfang an eng mit der Entwicklung des Internet verbunden. Eine herausragende Rolle gebührt hier sicherlich dem Apache-HTTP-Server, doch auch andere Apache-Projekte dürfen als Marktführer gelten. Gründe, sich das "Erfolgsgeheimnis" genauer anzuschauen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 8 Min.
Von
  • Frank Pientka
Inhaltsverzeichnis

Apache-Techniken sind von Anfang an eng mit der Entwicklung des Internet verbunden. Eine herausragende Rolle gebührt hier sicherlich dem Apache-HTTP-Server, den nach den Webstatistiken von Netcraft die meisten Webseiten verwenden, doch auch andere Apache-Projekte dürfen als Marktführer gelten. Es sei daher ein Blick hinter die Kulissen des Softwareentwicklungsprozesses bei den "Apachen" geworfen und auf ihr "Erfolgsgeheimnis" eingegangen.

Die Anforderungen an den Apache-Webserver sind gegenüber der ersten 1995 veröffentlichten Apache Version gestiegen. Wurde sie ursprünglich auf Basis des NCSA-HTTPd-Servers mit acht Personen entwickelt, geschieht das heute mit über 2300 Committern. Reichten am Anfang noch eine einfache Mailingliste und ein CVS-Repository, stellt sich heute die Frage, wie man die verteilte Entwicklung von Open-Source-Software mit Milliarden Zeilen Code am besten organisiert.

Eine gute Vorarbeit für den, in Federlesen #1 beschriebenen "Apache Way" hat einige Jahre vorher die Free Software Foundation (FSF) mit dem GNU-Projekt und der GPL (GNU Public Licence) geleistet. Anders als die GPL enthält die Apache Software Licence (ASL) allerdings kein Copyleft, sondern es reicht bei ihrer Verwendung einfach, den Lizenztext beizufügen. Inzwischen ist die Apache-Lizenz in der Version 2.0 kompatibel mit der GPL 3.0. Es gibt jedoch immer noch einige rechtliche und inhaltliche Unterschiede, die gerade für Firmen und Produkthersteller wichtig sind, sodass die Apache-Lizenz auch außerhalb der Apache Software Foundation (ASF) gern verwendet wird. Es finden sich unter anderem auf sourceforge.net fast 6000 Projekte unter dieser Lizenz. Das "Open Source Ressource Center" von Black Duck listet die Apache-Lizenz auf Platz 7 der am meisten verwendeten Open-Source-Lizenzen.

Gerade im Vergleich zur klassischen Softwareentwicklung scheint die Arbeit an Open-Source-Software für Außenstehende etwas chaotisch und unorthodox. Angelehnt an agile Softwareprozesse ist es der ASF wichtig, einen Minimalkonsens von Regeln, Rollen und Aktivitäten zu beschreiben, damit die eigentliche Entwicklung der Software effizient und für alle transparent stattfinden kann.

Zu den Zutaten für erfolgreiche Open-Source-Projekte gehört eine gute Infrastruktur mit einheitlichen Werkzeugen für das Versions-, Anforderungs-, Fehler-, Änderungs-, Qualitätssicherungs- und Build-Management. Den allgemeinen administrativen und projektübergreifenden Aspekten steht der ASF-Verwaltungsrat (Board of Directors) vor, der regelmäßig aus den rund 300 Mitgliedern gewählt wird. Für die tägliche Arbeit benennt der Rat, dem der Vorstand und der Schatzmeister vorstehen, sogenannte Offiziere mit Spezialaufgaben wie Marketing, Fundraising, Infrastruktur, Rechtsfragen, Konferenzplanung und Zusammenarbeit mit Standardgremien. Auf Projektebene sind die Rollen PMC-Vorsitzender (Project Management Chair; Projektleiter), PMC-Mitglied, Committer, Entwickler und Nutzer festgelegt.

Entwickler und Committer unterscheiden sich durch die Rechte bei der Sourcecode-Verwaltung der Projekte. Neben allgemeinen Apache-Kommunikations- und Abstimmungsregeln kann das PMC weitere Regularien erstellen und selbst über die eingesetzte Infrastruktur oder die Verwendung von Nicht-Apache-Software entscheiden, soweit die allgemeinen Regeln eingehalten werden.

Mehr Infos

Wer mehr über weitere Erfolgsprinzipien bei der Erstellung von Open-Source-Software erfahren möchte, findet Informationen in Karl Fogels frei verfügbarem Buch "Producing Open Source Software: How to Run a Successful Free Software Project " beschrieben. Darunter gibt es neben der "konsensbasierten Demokratie", "Null-Toleranz für schlechtes Benehmen" auch das politisch unkorrekte "gütige Diktator"-Prinzip.

Der Committer-Status mit Änderungsrechten an den Projektdateien wird durch eine öffentliche Abstimmung auf Basis der vorher gesammelten Verdienste (Meriten) öffentlich verliehen. Dieses für ein Engagement bei Open Source wichtige Prinzip bezeichnet man als Meritokratie. Prinzipiell sind alle Committer gleich, doch manche haben spezielle Aufgaben (Releasemanager oder Architekt einer Unterkomponente). Für die Freigabe von Softwareversionen ist ein formaler Ablauf über Abstimmungen festgelegt.

Für die Kommunikation unerlässlich sind bei jedem Apache-Projekt die beiden Mailinglisten für Nutzer (user@) und Entwickler (dev@). Ergänzen lassen sie sich um allgemeine Mailinglisten für die Bekanntgabe wichtiger Produktinformationen wie Releases (announce@), Patches (security@, notifications@, issues@) oder Quelländerungen (scm@, cvs@, commits@). Da die Mailinglisten auch archiviert werden, sind sie eine wichtige, transparente Quelle, damit das Rad nicht immer neu erfunden oder diskutiert werden muss.

Für die Pflege und das Verwalten des Quellcodes und der Dokumentation setzen die Projekte unterschiedliche Werkzeuge ein. Bis Ende 2005 diente als Versionskontrollwerkzeug CVS. Inzwischen sind alle Projekte auf Subversion migriert. Zum Verwalten der Anforderungen und Fehler sowie die damit zusammenhängende Releaseplanung werden heute entweder Bugzilla oder zumeist JIRA eingesetzt.

Bei einem monatlichen Download-Volumen von circa 100 Terabyte ist die Last auf mehrere weltweit verteilten Servern zu verteilen, um eine gute Leistung und Verfügbarkeit zu erreichen. Dazu stehen 289 Spiegel-Server in 56 Regionen zur Verfügung, wobei die HTTP- gegenüber den FTP-Servern dominieren. Neben den externen Mailarchivservern betreibt Apache noch einen eigenen Archiv-Server für Software und Maillisten und zwei Backup-Server, die auch ältere, nicht mehr auf den Spiegeln vorhandene Releases enthalten .

Obwohl jedes Apache-Projekt seinen eigenen Charakter hat, ist ein "Apache-interner" Vergleich interessant. Um die Verbreitung oder das Interesse an Open-Source-Software zu messen, gibt es unterschiedliche Herangehensweisen. Die meisten enthalten eine große Schätzungenauigkeit. Deswegen ist es am besten, an der Quelle selbst zu messen.

Ein guter Anlaufpunkt ist Ohloh.net und für Apache Vadim Gritsenkos Webseite, die Statistiken zu vielen Apache-Projekten bis September 2009 bereithält. Die am häufigsten besuchten Seiten sind die des HTTP- und des Tomcat-Servers, die auch die ältesten und bekanntesten Apache-Produkte sind. Überraschenderweise werden beide bei den Download-Zahlen von dem Webframework Struts überholt. Das Projekt mit dem größten Release-Volumen ist Geronimo. Das ist kaum verwunderlich, da er als "Java EE"-Referenzprojekt viele andere Apache-Komponenten enthält und sich in sechs Varianten herunterladen lässt.

Wichtiger als die Zahl der einem Projekt zugehörigen Committer sind die Aktivitäten in den Mailing-Listen mit durchschnittlich 50.000 Mails pro Monat. In Ken Coars Auswertungen unter den zehn aktivsten Apache-Mailinglisten tauchen nach der Anzahl der täglichen Beiträge sowohl Entwicklerlisten (hadoop, derby, geronimo) als auch Benutzerlisten (wicket, maven, tomcat, struts) auf. Es überrascht, dass bei den Entwicklerlisten zwei Datenbankprodukte (derby, hadoop) vertreten sind und bei den Benutzerlisten Wicket als Webframework zumindest in der Popularität mit Struts bereits mithalten kann. Bei der Gesamtanzahl der Listen-Abonnenten führt nach den allgemeinen Bekanntmachungen Tomcat vor dem HTTP-Server, was ihre große Verbreitung und das öffentliche Interesse an ihnen verdeutlicht.

Die Apache-Gemeinschaft hat immer wieder innovative und leistungsfähige Produkte hervorgebracht, die Eingang in viele kommerzielle Produkte gefunden haben. Die Server HTTP und Tomcat haben eine weite Verbreitung bei der Entwicklung von Webanwendungen erlangt. Im Bereich Java ist Apache bei den Webframeworks (Struts, Wicket), Webservices (Axis, CXF), Build-Werkzeugen (Ant, Maven), Versionsverwaltung (SVN) und bei den eingebetteten Datenbanken weit verbreitet. In dem neuen Bereichen OSGi (Felix, Karaf) und NoSQL (Hadoop, Cassandra und CouchDB) spielt Apache wieder eine gewichtige Rolle. Die Open-Source-Organisation steht mit ihren Produkten und Prozessen für "offene" Innovationen bei gleichzeitiger Rechtssicherheit und Langlebigkeit. Es lässt sich dadurch viel über die verteilte Erstellung von erfolgreicher Open-Source-Software lernen.

Alle Gründer der ASF, darunter Brian Behlendorf und Roy Fielding, sind auch nach dem 15. Geburtstag des Apache HTTP Server immer noch mit dessen Aufzucht und Pflege beschäftigt. Doch die Apache-Familie wird monatlich größer, deswegen sei auch am Ende des Jahres ein weiterer Rück- und Ausblick gegeben.

Frank Pientka
ist Senior Software Architect bei der Materna GmbH in Dortmund und Autor des Geronimo-Buchs im dpunkt Verlag.
(ane)