Joachim Arrasz synyx GmbH & Co. KG

Ein ordentlich adressiertes Konfigurationsmanagement gehört unbedingt in das Set-up einer langlaufenden Lösung und deren Betrieb.

Sascha Rüssel synyx GmbH & Co. KG

Keine Software ist einfach fertig. Mit dem ersten Release, der Version 1.0, geht die eigentliche Arbeit erst los.

In Zeiten immer kleiner werdender und schneller evolutionierender Softwaresysteme rückt ein bislang eher stiefmütterlich betrachteter Arbeitsteil eines Entwicklungsteams mehr und mehr in den Fokus: der stabile Softwarebetrieb.

Keine Software ist einfach fertig. Mit dem ersten Release, der Version 1.0, geht die eigentliche Arbeit erst los. Nun wird sich zeigen, ob das Entwicklungsteam auch den nachhaltigen Betrieb der Lösung im Auge hatte. Um Struktur und Priorität in das Thema zu bekommen, haben wir es in drei einzelne Artikel aufgespalten, die sich auf je eine Anforderung fokussieren (Abb. 1).

Abb.1: Phasen eines Softwareprojekts

Abb.1: Phasen eines Softwareprojekts

Los geht es mit der Herausforderung, die Weichen für die weitere Entwicklung in einem Projekt zu stellen, obwohl es aktiv in Produktion ist. Man muss Anpassungen an vorhandenen und neuen Features sowie Bugfixes planen. Diese Änderungen sollten die Stabilität der Anwendung weiter verbessern – oder zumindest erhalten. Um das zu erreichen, stellen wir zuerst einmal jene Weichen, mit denen aktuelle Versionen der Entwicklung schneller an den Kunden gebracht werden können. Das erreichen wir über Automatisierung möglichst vieler betriebsrelevanter Themen. Wir bekommen deutlich früher Feedback zu den Änderungen und der Kunde kann so früher von den Änderungen profitieren. Darüber hinaus schaffen wir es über die Automatisierung, den Menschen als Fehlerfaktor herauszunehmen. Somit entwickeln wir einen stabilen Pfad, um unsere Entwicklungsleistung auch zu installieren. Grundvoraussetzung für einen solchen Pfad ist eine vereinheitlichte Konfiguration.

Was bisher geschah

In einer vorangegangenen Artikelserie im Java Magazin haben wir gezeigt, wie man grundlegende Aspekte der Softwareentwicklung so gestaltet, dass die Software sauber und nachhaltig zu betreiben ist. Dabei haben wir aufgezeigt, wie wichtig unter anderem das so unbeliebte Logging ist. Konkret gingen wir auf Perfomance und Failover bzw. Loadbalancing-Problemstellungen ein und wie man diese Risiken minimieren kann. Wegzaubern geht leider immer noch nicht. Zu guter Letzt haben wir gezeigt, wie wir aus den statistischen Informationen Trends ableiten können, die uns letztlich helfen, eine stabile, produktive Umgebung bereitzustellen.

Es gibt verschiedene Werkzeuge, die uns dabei unterstützen, den Infrastrukturcode vom Businesscode zu trennen und die Konfiguration für verschiedene Umgebungen, Tests und Produktion, aber auch diverse Plattformen herzustellen. Diese Gedanken sollte man sich bereits zu Beginn einer Entwicklung machen.

Ein wichtiger Faktor ist die Laufzeit des Projekts. Lohnt es sich überhaupt, den Aufwand für eine solche Lösung zu betreiben? Ist die geplante Laufzeit weniger als zwei Jahre, kann man erfahrungsgemäß davon ausgehen dass es real circa drei bis vier Jahre werden, in Ausnahmefällen sicherlich noch mehr. Nun stellt sich die Frage, ob der gewählte Technikstack in dieser Zeit mehr als ein Major-Version-Update erhalten wird oder nicht. Erfahrungsgemäß wird das beispielsweise in der Java-EE-Welt eher nicht der Fall sein, in anderen Umgebungen ist das unter Umständen eher zu erwarten. Bei Laufzeiten darüber hinaus, wie man sie im Besonderen in der Industrie und der Logistik vorfindet, ist es aus unserer Sicht unerlässlich. Um Investitionen, die man in die Entwicklung einer Lösung gesteckt hat, vor dem Verfall zu schützen, sollte man sich zuvor Gedanken machen, ob das überhaupt relevant und nötig ist. Um unsere These zu untermauern, wollen wir euch auf eine kurze Reise durch ein exemplarisches Projekt einladen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 1.17 - "Ich habe fertig!"

Alle Infos zum Heft
579750559Nach dem Deployment ist die Arbeit noch nicht getan
X
- Gib Deinen Standort ein -
- or -