Wikis auf Knopfdruck: BlueSpice automatisiert seine Softwareentwicklung

FANUC_R2000iB_AtWork
Mixabest, FANUC R2000iB at work, Public domain, via Wikimedia Commons

Die Installation von Wikis und die Qualitätskontrolle der Wikisoftware ist heute noch vielfach Handarbeit. Das treibt natürlich die Kosten für die Kunden in die Höhe. Und auch für die Softwarehersteller sind diese repetitiven Arbeiten nicht besonders befriedigend.

Docker, Puppet, Ansible: eine Fülle neuer Steuerungssysteme

So ist es nicht verwunderlich, dass auf den MediaWiki-Konferenzen der letzten Jahre das Thema Automatisierung der Softwareentwicklung zum Thema geworden ist. Ausschlaggebend war jedoch, dass zahlreiche neue Technologien verfügbar sind, die im Cloud-Umfeld entwickelt wurden, um große Mengen an Server- und Anwendungssoftware zu verteilen und zu pflegen:

  • Composer: Eine Paketverwaltung für ein PHP-Skript ähnlich dem Extensioninstaller in WordPress.
  • Docker und Vagrant: Software, um „virtuelle Maschinen“ zu bauen und zu steuern.
  • Puppet, SaltStack, Ansible, Chef: Steuerungssysteme, die Systemumgebungen und Abläufe konfigurieren.

Diese Technologien revolutionieren die gesamte Sofwareentwicklung. Genauer gesagt, sie revolutionieren die Entwicklung von Standardsoftware. Wie in einer Fabrik, wird die Software auf Knopfdruck gebaut, getestet und ausgeliefert. Distributoren wie Red Hat oder SuSE stellen beispielsweise so ihre Distributionen zusammen. Aber auch die Wikimedia Foundation verwaltet ihre Wiki-Server über Puppet und andere Steuerungssysteme.

BlueSpice Factory – das neue Rückgrat der Softwareentwicklung

Auch an BlueSpice geht diese Entwicklung nicht vorüber. Unter dem Arbeitstitel BlueSpice Factory bauen wir an einer einheitlichen, vollautomatisierten Produktions- und Testumgebung für BlueSpice. Neue Builds der Software werden tagesaktuell erstellt, paketiert, automatisch getestet und abgelegt. Spätestens mit der Auslieferung von BlueSpice 3 soll BlueSpice Factory das neue Rückgrat unserer Entwicklung sein.

Dies ist ein großer Schritt für die Stabilität des Produkts. Denn über die BlueSpice Factory werden alle Arbeitsschritte so weit wie möglich vereinheitlicht und automatisiert. Zudem sollen sehr viel mehr automatisierte Tests als heute über das System laufen. Die Factory soll die Paketierung übernehmen, Free- und Pro-Pakete, vielleicht RPMs, vielleicht Packages automatisch auswerfen und ablegen. Und nicht zuletzt sollen Produktverbesserungen schneller an die Nutzer weitergeben werden können.

Wir denken auch darüber nach, dass die BlueSpice Factory die Auslieferung in Live-Systeme übernehmen könnte und das Einspielen von Patches. Technisch ist das nicht so schwierig. Wir machen gerade die ersten Erfahrungen mit unseren eigenen, internen Wikis.
Entscheidend ist hier vielmehr der Kunde: Sind die dafür nötigen Technologien beim Kunden verfügbar? Und wie muss ein möglicher Updating-Prozess organisiert sein? Schließlich soll der Kunde ja die Kontrolle über Updating-Prozesse behalten können.

Unsere Aufgabe ist es, eine möglichst stabile Lösung für die Wartung der Wikisysteme zu bieten. Und so machen wir Technologien, die anderswo bereits im Einsatz sind, auch für die Wikiwelt außerhalb des Wikimedia-Universums verfügbar.

Auf der Suche nach dem richtigen Technologie-Stack

Die aktuelle Herausforderung liegt für uns in der richtigen Kombination der unterschiedlichen Tools und auch die Stufen die Produktionslinie sind noch nicht 100% ausdefiniert.

Aktuell stellen wir mit Puppet ein Grundsystem bereit. Auf dieser Basis holen wir alles, was wir für ein Wiki benötigen, also die jeweils aktuellen Softwarekomponenten, und installieren ein komplettes Wiki. Wir klären gerade, wann was getestet werden soll. Die präferierte Lösung ist, mit Puppet über die Versionsverwaltung Git die Quellen zu holen. Wir bauen mit einem Buildscript  – auch ein Puppetsystem – ein Paket, installieren das Paket und testen dann in der Reihenfolge: Unittest, Performanztest und Seleniumtest. Das geschieht alles automatisch. Im Anschluss gibt es eine Freigabe. Nach der Freigabe ist der nächste Schritt die Verteilung der Pakete an die Kundensysteme. Auch das kann über Puppet erfolgen. Über die Integrationssoftware Jenkins (Sauce Labs) wird das gesamte Verfahren orchestriert.

Man sieht, die genaue Konstellation umfasst ein sehr großes Technologiespektrum. Und da im gesamten Feld der Softwareautomatisierung gerade eine sehr große Dynamik zu beobachten ist, wird sich hier sicher auch über die Zeit noch einiges ändern. Aber man muss auch auf die Gefahr hin, dass man später alles wieder umbaut, einfach mal beginnen und Erfahrungen sammeln. Man kann die Automatisierungstechnologie nicht am Reißbrett entwickeln.

Dies könnte Ihnen auch gefallen

Schreiben Sie einen Kommentar