Von der Softwarearchitektur zur Infrastruktur – wie Anforderungen technische Grundlagen formen
Die Entwicklung neuer Softwarelösungen beginnt häufig mit einer fachlichen Idee: ein neues System, das einen bestimmten Geschäftsprozess abbildet oder vereinfacht. Doch schon früh stellt sich die Frage, welche Infrastruktur dafür benötigt wird und wie sich diese aus den Anforderungen ableiten lässt.
Fachliche Analyse als Ausgangspunkt
Am Anfang steht die Analyse der fachlichen Anforderungen. Hier bietet sich ein strukturierter Ansatz wie Domain Driven Design an. Eine saubere fachliche Gliederung erleichtert nicht nur die Implementierung, den Betrieb und die spätere Weiterentwicklung, sondern beeinflusst auch die Auswahl technischer Architekturmuster.
Qualitätsziele präzisieren
Neben den fachlichen Funktionen spielt die Diskussion über nicht-funktionale Anforderungen eine zentrale Rolle. Qualitative Aspekte wie Verfügbarkeit, Skalierbarkeit, Sicherheit oder Änderbarkeit sollten frühzeitig priorisiert werden. Das Software-Produktqualitätsmodell der ISO 25010 bietet hier einen nützlichen Ausgangspunkt, um mit den Beteiligten Klarheit über die wesentlichen Qualitätsziele zu schaffen, denn diese wirken sich direkt auf technische Entscheidungen aus.
Randbedingungen
Technische und organisatorische Rahmenbedingungen, wie z.B. verfügbare Kompetenzen im Team oder vorhandene Systeme, beeinflussen die Architektur ebenfalls. Wichtig ist es, diese Randbedingungen bewusst zu hinterfragen und Unklarheiten früh zu klären.
Architekturentwurf
Je nach Anforderungen und Zielstellung kommen unterschiedliche Architekturstile und -muster in Frage: Microservices, klassische Schichtenarchitekturen, Client-Server-Modelle oder hybride Ansätze… Die Wahl hängt nicht nur von der Aufgabenstellung, sondern auch von den priorisierten Qualitätszielen und den Randbedingungen ab.
Es folgt der Entwurf der technischen Architektur. Hier werden zentrale Themen wie Persistenz, Schnittstellen zu Drittsystemen, Laufzeitumgebungen, Logging oder Sicherheitsanforderungen berücksichtigt.
Infrastruktur
Aus all diesen Überlegungen ergibt sich die benötigte Infrastruktur: Wird dedizierte Server-Hardware benötigt, virtuelle Maschinen oder ganze Container-Orchestrierungssysteme? Wie muss das Netzwerk ausgelegt werden? Wer sorgt für den Betrieb und die Wartung der Infrastruktur? Was ist mit Betriebs- und Sicherheits-Monitoring? Was mit Backups und Redundanzen?
Iterativer Prozess mit engem Abgleich
All diese Entscheidungen erfolgen nicht linear, sondern iterativ. Architektur- und Infrastrukturfragen entwickeln sich mit dem Projekt und müssen regelmäßig mit den Stakeholdern abgestimmt werden. Auch Risikobetrachtungen und die Planung der jeweils nächsten Schritte gehören in diesen Prozess.