Cloud-native vs. On-Premise in regulierten Branchen: Muster, die in der Praxis tragen

Das Grundproblem vorweg: In regulierten Industrien – Bahn, Verteidigung, Fertigung, Energie – kollidieren zwei Kräfte. Auf der einen Seite stehen moderne Cloud-native Entwicklungspraktiken, die Geschwindigkeit, Automatisierung und Skalierbarkeit versprechen. Auf der anderen Seite stehen harte Randbedingungen: Datenhoheit, Netzsegmente ohne Internetzugang, Nachvollziehbarkeit über Jahre, Auditierbarkeit und ein Betriebsumfeld, in dem Änderungsfenster kurz und Sicherheitsanforderungen lang sind.

Dieser Text beschreibt konkrete Architektur- und Betriebs-Muster, die sich in solchen Umgebungen bewährt haben. Ohne Hype, mit klaren Trade-offs. Unser Blickwinkel: Wir haben Plattformen für Vermessungssysteme, Fleet Intelligence und Trainingsplattformen gebaut und betrieben – on-premise, DSGVO-konform, ohne US-Cloud-Abhängigkeit. Ergebnis: Cloud-native Prinzipien bleiben wertvoll, aber man muss sie in on-premise Realitäten übersetzen.

Ausgangslage und Randbedingungen

Bevor man über Technologie spricht, klärt man die Systemgrenzen. Typische Rahmenbedingungen in regulierten Umgebungen:

  • Daten- und Betriebs-Souveränität: Keine Abhängigkeit von externen Cloud-Diensten im laufenden Betrieb. Updates sind möglich, aber planbar, signiert, reproduzierbar.
  • Netzwerktopologie: Air-gapped Segmente, intermittierende Verbindungen zwischen Standorten, strikte Ost-West-Segmentierung, DMZs.
  • Lebensdauer: 7–15 Jahre Laufzeit von Systemen; Ersatzteil- und Treiberprobleme sind real. API-Stabilität und Migrationspfade sind Pflicht, nicht Kür.
  • Auditierbarkeit: Änderungen müssen reproduzierbar, signiert, dokumentiert sein. SBOMs, reproduzierbare Builds, Change-Logs.
  • Echtzeit/Nahe-Echtzeit: Steuerungs- und Überwachungsaufgaben, die Latenz- und Jittergrenzen haben, oft nahe an der Maschine.

Aus diesen Nebenbedingungen ergeben sich Architekturentscheidungen. Was in einem hyper-skalierten SaaS sinnvoll ist, ist vor Ort in einem Werk, an Bord eines Fahrzeugs oder in einem Trainingszentrum oft ein Overkill – oder schlicht nicht machbar. Es geht nicht um “Cloud vs. On-Prem”, sondern um: Welche Cloud-native Ideen möchte ich behalten, und wie materialisiere ich sie on-prem?

Deployment-Modelle: Von Bare Metal bis On-Prem Kubernetes

Es gibt keine pauschale Empfehlung. Die wichtigste Entscheidung: Wie viel Orchestrierungs- und Abstraktionsaufwand steht in gesundem Verhältnis zur Betriebsumgebung?

Option 1: Systemd-Services auf Bare Metal/VMs

  • Wann: Kleine bis mittlere Deployments, deterministische Echtzeitanteile, sehr strikte Umgebungen (keine Container erlaubt).
  • Vorteile: Wenig bewegliche Teile, klare Fehlerdomänen, geringe Lernkurve im Betriebsteam.
  • Nachteile: Packaging, Isolation und Updates sind schwieriger zu standardisieren; Skalierung über mehrere Knoten braucht manuelle Arbeit oder eigene Automatisierung.

Option 2: Container ohne Cluster-Orchestrator (Docker/Podman + Compose)

  • Wann: 1–3 Knoten pro Standort, klar abgegrenzte Services, kein dynamisches Scheduling nötig.
  • Vorteile: Reproduzierbare Builds, saubere Paketierung, weniger Overhead als Kubernetes.
  • Nachteile: High Availability und Rolling Updates sind Handarbeit; Logging/Monitoring/Secrets müssen bewusst integriert werden.

Option 3: On-Prem Kubernetes (K3s, K8s-Distributionen, OpenShift)

  • Wann: Standort-Cluster mit mehreren Services, Bedarf an Isolierung, Self-Healing, deklarativer Konfiguration, GitOps.
  • Vorteile: Saubere Trennung von Anwendungs- und Betriebslogik, standardisierte Deployments, gute Grundlage für Policy/Compliance.
  • Nachteile: Komplexität. Ohne klaren SRE-Prozess und Tooling wird der Overhead zum Selbstzweck. Im Air-Gap muss alles – Images, Charts, CRDs – gespiegelt werden.

Bewährtes Muster:

  • Pro Standort ein Single-Tenant-Cluster (oder Compose-Stack). Keine mandantenübergreifende Orchestrierung über Standorte hinweg.
  • Innerhalb des Standorts so wenig Services wie nötig. Ein “modularer Monolith” oder wenige grob geschnittene Services sind oft besser als 30 Microservices, die niemand patchen kann.
  • Für harte Echtzeit: Prozess nahe an der Maschine (C++/Rust), Prozessintegration via lokale Queues oder Shared Memory, Upstream-Kommunikation asynchron.

Software-Lieferkette und Air-Gap-Delivery

Cloud-native ohne Internet? Geht – wenn die Lieferkette stimmt.

  • Build-Pipeline im Connected Zone: CI/CD baut deterministische Artefakte (Container, Pakete), erzeugt SBOM und Signaturen.
  • Staging-Repository: Alles, was das Zielsystem berührt, liegt in internen Repos (Container Registry, Helm/Chart-Repo, Paket-Repos). Keine Laufzeit-Pulls aus dem Internet.
  • Promotion: Freigaben sind ein Änderungsobjekt (Change Request) mit kryptografisch signierten Artefakten. Air-Gap-Transfer via Offline-Medien oder kontrollierten Replikationskanälen.
  • Installation vor Ort: GitOps-Spiegelung (Repo-Mirror), oder ein lokaler Installer, der signierte Bundles inkl. Abhängigkeiten entpackt und validiert.
  • Reproduzierbarkeit: Gleiche Checksummen von Build bis Deployment. Kein “apt-get update” im Feld; Basisschichten und Dependencies sind Teil des Release-Bundles.

Wichtig: Signaturvalidierung im Feld darf nicht am NTP scheitern. Zeitquellen und Zertifikatskette offline durchdenken (Offline-Root-CA, Intermediate-CAs, CRL/OCSP-Strategie).

Datenflüsse bei intermittierender Konnektivität

Zentrale Antipatterns sind synchrone Kopplung und “genau einmal” Zustellung über unzuverlässige Netze.

Bewährte Muster:

  • Event-getriebene Kernintegration: Innerhalb des Standorts ein Message-Broker als Rückgrat. Services sind Producer/Consumer mit klaren Topics.
  • Outbox-Pattern: Änderungen in der Business-Datenbank werden transaktionssicher in eine Outbox geschrieben und asynchron publiziert. Idempotente Konsumenten.
  • Store-and-Forward: Für Standort-zu-Zentrale-Replikation lokale Persistenz mit Warteschlange; Backpressure, Retry mit Exponential Backoff, Deduplizierung über Event-IDs.
  • Konsistenzmodell: Eventual Consistency by Design. Konfliktlösungs-Policy definieren (letzter Schreiber, domänenbasiert, CRDTs, Merge-Logik).
  • Schema-Evolution: Contract-first. Abwärtskompatible Änderungen (Felder nur hinzufügen, Standardwerte klar definiert). Producer und Consumer versionieren.

Trade-off:

  • Streng transaktionale, synchrone APIs zwischen Standorten erhöhen Kopplung und Ausfallraten.
  • Asynchrone, event-getriebene Replikation minimiert Latenzspitzen und erhöht Resilienz, erfordert aber Disziplin bei Idempotenz und Dublettenbehandlung.

Observability ohne SaaS

Telemetry ist kein nice-to-have. Aber ohne Internetzugang braucht es lokale Lösungen.