Server-Architekturoptionen

Einordnung

Dieser Artikel untersucht mögliche Architekturen für die Server-Komponenten der Einsatzsoftware.

Ziel ist es, den Lösungsraum auf der Serverseite systematisch zu beschreiben und dabei diejenigen Eigenschaften herauszuarbeiten, die für spätere Architekturentscheidungen relevant sind.

Die Betrachtung erfolgt unabhängig von der späteren Programmiersprache. Im Vordergrund stehen zunächst Betriebsmodell, Robustheit, Offline-Fähigkeit, Wartbarkeit und Eignung für die definierten Anwendungsszenarien.

Ausgangslage

Die Einsatzsoftware muss in sehr unterschiedlichen Umgebungen betrieben werden können.

Dazu gehören insbesondere:

  • lokale Systeme in Fahrzeugen
  • lokale Systeme in Führungsstellen
  • zentrale Systeme in Lage- und Koordinierungsstellen
  • serverseitige Systeme in Rechenzentrums- oder Behördenumgebungen

Dabei ist zu berücksichtigen, dass Netzverbindungen im Einsatz nicht dauerhaft verfügbar sein müssen. Die Serverarchitektur darf daher nicht ausschließlich unter der Annahme eines stabilen und breitbandigen Netzes entworfen werden.

Die Anforderungen an den Betrieb ohne durchgehende Netzverbindung werden im Artikel Netzausfall näher beschrieben.

Grundsätzliche Aufgaben von Server-Komponenten

Server-Komponenten können in der Einsatzsoftware unterschiedliche Aufgaben übernehmen.

Dazu gehören beispielsweise:

  • Bereitstellung gemeinsamer Datenbestände
  • Synchronisation zwischen mehreren Arbeitsplätzen
  • zentrale Benutzer- und Rechteverwaltung
  • Bereitstellung von Schnittstellen
  • Aggregation und Auswertung von Daten
  • Versorgung von Lage- und Visualisierungssystemen

Nicht jede dieser Aufgaben muss in jeder Betriebssituation zentralisiert sein.

Gerade im Einsatzkontext ist zu prüfen, welche Funktionen zwingend einen Server benötigen und welche Funktionen notfalls lokal auf einzelnen Systemen weiterlaufen können.

Architekturoptionen

Im Folgenden werden die wesentlichen Server-Architekturoptionen beschrieben.

Zentrale Serverarchitektur

Bei einer zentralen Serverarchitektur werden die wesentlichen Server-Komponenten an einem zentralen Ort betrieben.

Typische Merkmale sind:

  • zentrale Datenhaltung
  • zentrale Benutzerverwaltung
  • zentrale APIs
  • einheitlicher Systemzustand

Vorteile:

  • einfache Administration
  • klare Zuständigkeiten
  • gute Kontrollierbarkeit
  • einfache Datensicherung
  • einheitliche Updates

Nachteile:

  • hohe Abhängigkeit von Netzverbindungen
  • zentrale Ausfallwirkung
  • im Einsatz nur eingeschränkt robust
  • bei Netzausfall sinkt die Nutzbarkeit stark

Eine rein zentrale Serverarchitektur ist daher für den Katastrophenschutz allein nicht ausreichend.

Lokale Serverarchitektur

Bei einer lokalen Serverarchitektur werden Server-Komponenten direkt in Fahrzeugen, Führungsstellen oder anderen Einsatzbereichen betrieben.

Dies kann beispielsweise auf einem Laptop, Mini-PC oder einem anderen lokalen System geschehen.

Typische Merkmale sind:

  • lokale Datenhaltung
  • lokale APIs
  • lokale Benutzeroberfläche
  • Betrieb ohne externe Infrastruktur möglich

Vorteile:

  • sehr gute Offline-Fähigkeit
  • geringe Abhängigkeit von externen Netzen
  • hohe Einsatzrobustheit
  • gute Beherrschbarkeit im kleinen Rahmen

Nachteile:

  • verteilte Administrationsaufwände
  • erschwerte zentrale Aktualisierung
  • Datenabgleich zwischen mehreren Standorten notwendig
  • höhere Anforderungen an Synchronisationsmechanismen

Eine rein lokale Architektur ist robust, skaliert aber organisatorisch nur begrenzt.

Föderierte Serverarchitektur

Bei einer föderierten Architektur existieren mehrere eigenständige Server-Instanzen, die jeweils lokal arbeitsfähig sind, aber bei vorhandener Verbindung miteinander Daten austauschen können.

Beispiele:

  • ein lokaler Server im Fahrzeug
  • ein lokaler Server in einer Führungsstelle
  • ein zentraler Server für übergreifende Lagen

Typische Merkmale sind:

  • lokale Autarkie
  • verteilte Datenhaltung
  • kontrollierter Datenaustausch
  • mehrere Betriebszustände möglich

Vorteile:

  • hohe Robustheit gegen Netzausfälle
  • gute Anpassung an reale Einsatzlagen
  • schrittweise Skalierbarkeit
  • Kombination aus lokaler Arbeitsfähigkeit und zentraler Zusammenführung

Nachteile:

  • höhere Komplexität
  • klare Regeln für Datenabgleich erforderlich
  • aufwändigere Fehleranalyse
  • höhere Anforderungen an Versionierung und Konfliktbehandlung

Für die im Projekt beschriebenen Einsatzszenarien ist diese Architektur grundsätzlich besonders naheliegend.

Rechenzentrumsorientierte On-Premise-Architektur

Bei dieser Variante werden zentrale Server in einer Behördennahmen oder organisationsinternen Umgebung betrieben, also nicht in einer öffentlichen Cloud, sondern auf eigener oder kontrollierter Infrastruktur.

Typische Merkmale sind:

  • Betrieb auf eigenen Servern oder virtuellen Maschinen
  • Kontrolle über Datenhaltung und Netzsegmente
  • Integration in vorhandene Verwaltungs- und Sicherheitsstrukturen

Vorteile:

  • gute Kontrollierbarkeit
  • hohe Akzeptanz in Behördenumgebungen
  • Integration in bestehende Prozesse möglich
  • kein Zwang zu externen Cloud-Diensten

Nachteile:

  • ohne ergänzende lokale Komponenten nicht ausreichend einsatzrobust
  • zentrale Infrastruktur bleibt ausfallkritisch
  • zusätzlicher Betriebsaufwand

Diese Variante ist für zentrale Komponenten sinnvoll, reicht allein für den Einsatzbetrieb aber nicht aus.

Cloud-zentrierte Architektur

Bei einer cloud-zentrierten Architektur befinden sich die wesentlichen Server-Komponenten in externen oder zentral bereitgestellten Cloud-Umgebungen.

Typische Merkmale sind:

  • zentrale Bereitstellung über Internet-Zugriff
  • elastische Skalierung
  • geringe lokale Infrastruktur

Vorteile:

  • einfache Skalierung
  • schneller zentraler Rollout
  • geringe lokale Betriebsaufwände

Nachteile:

  • hohe Abhängigkeit von Internet und Netzinfrastruktur
  • im Katastrophenschutz nur eingeschränkt robust
  • kritisch bei längerem Netzausfall
  • zusätzliche Diskussionen zu Datenschutz, Kontrolle und Abhängigkeiten

Für einsatzkritische Kernfunktionen ist eine rein cloud-zentrierte Architektur daher nicht geeignet.

Containerbasierte Serverarchitektur

Container beschreiben keine eigene fachliche Architektur, sondern eine technische Form des Betriebs.

Im gegebenen Projektkontext sind insbesondere folgende Varianten relevant:

  • Docker
  • Podman

Vorteile:

  • reproduzierbare Deployments
  • klare Trennung von Komponenten
  • gute Portabilität
  • vereinfachte Wartung

Nachteile:

  • zusätzlicher Betriebs-Layer
  • höhere technische Komplexität
  • nicht jeder lokale Einsatzserver muss zwingend containerisiert betrieben werden

Container können sinnvoll sein, sind aber keine eigenständige Antwort auf die fachliche Architekturfrage.

Microservices

Microservices teilen ein System in viele kleine, eigenständig deploybare Dienste auf.

Vorteile:

  • technische Entkopplung
  • unabhängige Skalierung einzelner Dienste
  • klare fachliche Trennung möglich

Nachteile:

  • hoher Betriebsaufwand
  • verteilte Fehlersuche
  • höhere Anforderungen an Monitoring, Logging und Deployment
  • für kleine bis mittlere Systeme oft unnötig komplex

Im vorliegenden Kontext ist besondere Vorsicht geboten. Eine zu frühe Aufteilung in viele Einzelkomponenten erhöht die Komplexität stark, ohne zwingend einen praktischen Nutzen zu bringen.

Modularer Monolith

Ein modularer Monolith ist ein zusammenhängendes System mit klar getrennten Modulen, das jedoch als einheitliche Anwendung betrieben wird.

Typische Merkmale sind:

  • ein gemeinsamer Deployable
  • klare Modulgrenzen innerhalb des Systems
  • geringe Betriebs- und Integrationskomplexität

Vorteile:

  • gute Wartbarkeit
  • geringerer Betriebsaufwand als Microservices
  • einfache lokale Installation
  • gut geeignet für schrittweisen Ausbau

Nachteile:

  • spätere Aufteilung in getrennte Dienste muss bewusst vorbereitet werden
  • falsche Modulgrenzen können langfristig Probleme verursachen

Für das hier betrachtete Projekt ist ein modularer Monolith serverseitig grundsätzlich sehr attraktiv.

Architekturfragen mit besonderer Relevanz

Unabhängig von der konkreten Serverarchitektur sind mehrere Fragen zwingend vorab zu klären.

Lokale Betriebsfähigkeit

Es muss geklärt werden, welche Server-Funktionen lokal im Fahrzeug oder in einer Führungsstelle lauffähig sein müssen.

Dies betrifft insbesondere:

  • lokale Datenhaltung
  • lokale Synchronisationsfunktionen
  • lokale Visualisierung
  • lokale Benutzeroberflächen

Zentrale Zusammenführung

Es muss geprüft werden, welche Funktionen zwingend zentral gebündelt werden sollen.

Dies kann insbesondere betreffen:

  • überregionale Lagebilder
  • organisationsweite Benutzerverwaltung
  • zentrale Berichte
  • organisationsweite Schnittstellen

Betriebsgrenzen

Es ist zu definieren, ab wann eine lokale Instanz genügt und ab wann eine zentrale Instanz benötigt wird.

Diese Abgrenzung ist wichtig, um spätere Diskussionen über unnötige Zentralisierung oder unnötige Dezentralisierung zu vermeiden.

Vorläufige Bewertung

Für die beschriebenen Einsatzszenarien lassen sich bereits mehrere Aussagen treffen.

Erstens ist eine rein zentrale oder rein cloudbasierte Serverarchitektur für einsatzkritische Funktionen nicht ausreichend, da sie zu stark von stabilen Netzverbindungen abhängt.

Zweitens ist eine rein lokale Architektur zwar robust, führt aber bei größeren Lagen zu erhöhtem Administrations- und Abstimmungsaufwand.

Drittens spricht vieles für eine Architektur, die lokale Arbeitsfähigkeit mit zentraler Zusammenführung kombiniert.

Viertens ist auf technischer Ebene ein modularer Monolith im gegebenen Projektkontext deutlich naheliegender als eine frühe Microservice-Architektur.

Schlussfolgerung

Für die Einsatzsoftware kommen mehrere Server-Architekturoptionen in Betracht.

Aus heutiger Sicht erscheinen insbesondere folgende Kombinationen sinnvoll:

  • lokale Server-Komponenten für den Einsatzbetrieb
  • zentrale Server-Komponenten für organisationsweite Funktionen
  • containerbasierter Betrieb, wo er organisatorisch sinnvoll ist
  • modularer Monolith statt früher Zerlegung in viele kleine Dienste

Die wahrscheinlich sinnvollste Richtung ist damit keine rein zentrale und keine rein lokale Architektur, sondern ein föderierter Ansatz mit lokal arbeitsfähigen Instanzen und zentralen Zusammenführungsmöglichkeiten.

Die genaue Ausgestaltung dieser Architektur ist in späteren Design-Schritten weiter zu präzisieren.