- Update Conveyor: Eine vorgelagerte, gehärtete Staging-Zone mit Internetzugang spiegelt ausgewählte Upstream-Artefakte in eine interne Registry, versieht sie mit Unternehmenssignaturen und SBOMs. Von dort werden offline-Bundles in die sichere Zone übertragen.
- Chart- und Operator-Disziplin: Nur whiteliste Operators/CRDs nutzen. Versionen sind freigegeben und getestet; CRD-Änderungen durchlaufen Migrationspfade mit Backups.
- Datenbank-Migrationen als First-Class: Migrationen sind versioniert, wiederholbar und im selben Promotionsprozess wie die App-Artefakte. Rollback-Pfade sind dokumentiert.
- Digital Twin des Clusters: Ein Test-Cluster in der Staging-Zone spiegelt Hardware-Klassen (inkl. GPU). Jede Änderung muss hier grün sein, bevor sie als Bundle exportiert wird.
Ressourcen- und Laufzeitmanagement für ML/LLM-Workloads
- GPU-Orchestrierung: Dedizierte GPU-Nodes mit Device Plugins; bei Bedarf MIG-Partitionierung für bessere Auslastung. NUMA-Awareness und Pinning helfen, Jitter zu vermeiden.
- Modellgewichte lokal cachen: NVMe-basierte Cache-Layer für große Modellartefakte; Lesezugriffe minimieren Start-Latenzen. Lokaler Objektspeicher (S3-kompatibel) für Modelle und Artefakte.
- Scheduling für Durchsatz vs. Latenz: Batch-Inferenz bündelt Anfragen für Effizienz; interaktive Assistenz priorisiert Latenz. Gang-Scheduling (z. B. via Batch-Scheduler) für verteilte Trainings oder große Inferenzjobs.
- Netzwerk-Tuning: Für Multi-GPU- oder Multi-Node-Setups ist die Interconnect-Bandbreite kritisch. Topologie bewusst planen, Cross-Rack-Kommunikation vermeiden.
- Tooling-Pragmatismus: Für reine Inferenz setzen wir bevorzugt auf leichtgewichtige, reproduzierbare Stacks (z. B. TensorRT-LLM, Triton Serving oder vLLM – je nach Modell und Ziel). Kern ist: deterministische Builds, messbare Latenz-/Durchsatzprofile, keine versteckten Telemetriepfade.
Architekturbausteine: Was sich on-prem bewährt
- Infrastruktur
- Bare Metal für GPU/KI-Workloads, optional Virtualisierung für Management-Dienste.
- Software-Defined Storage (z. B. verteilte, replizierte Block-/Objektspeicher), Performance-sensitives Material lokal auf NVMe.
- Netz mit klaren Zonen, East-West-Isolation, eBPF-basierte Policies.
- Plattform-Schicht
- Kubernetes als Orchestrator; CNI mit feingranularen Policies.
- Zertifikats-Management On-Premise (eigene CA), kurzlebige Zertifikate, automatische Rotation.
- Secrets-Management mit striktem Rechtekonzept, Integrationspfade für HSM/KMS.
- Private Registries für OCI-Artefakte; Signaturen Pflicht.
- GitOps-Controller als alleinige Deployment-Automation.
- Policy-Engine, die Build- und Deploy-Gates durchsetzt (Signaturen, CVE-Budgets, Lizenz-Policies).
- Observability-Stack lokal, mit klar definierten Ex- und Importpfaden.
- Daten- und Integrationsschicht
- Ereignisbus (Kafka oder NATS JetStream) als Rückgrat für Telemetrie und Domänenereignisse; Schema-Registrierung, Retention, ACLs.
- Relationale Systeme für transaktionale Teile (z. B. Postgres-HA); Caching/Streams für Lese-Skalierung.
- Objektspeicher für große Binärdaten (Modelle, Telemetrie-Bundles, Bildsequenzen).
- Applikationsschicht
- API-Gateway/Ingress mit mTLS, AuthN via Unternehmens-IdP, AuthZ über Policies.
- Services mit stabilen, versionierten APIs; consumer-driven Contracts.
- KI-Dienste mit klarer Trennung von Modell, Serving, Governance. Alpi-M als Observability/Governance-Layer für LLM-Agenten und ihre Tool-Aufrufe.
Microservices vs. Monolith in der souveränen Plattform
On-Premise verleitet zu “weniger ist mehr” – zurecht. Nicht jede Domäne braucht Dutzende Microservices. Bewährt hat sich:
- Start mit wenigen, wohldefinierten Services pro Domäne. Ein technisch modularer Monolith kann für frühe Phasen überlegen sein (weniger Betriebs-Overhead).
- Event-Driven statt Chatty-Sync: Entkoppelung über Ereignisse, Idempotenz, Replays. So bleiben Services robust gegen kurzzeitige Netz-/Lastspitzen.
- Stabilität der Verträge: Langlebige APIs und Contracts schlagen kurzfristige Flexibilität. Offline-Standorte danken es mit weniger Update-Schmerz.
Sicherheits- und Compliance-Aspekte, die oft vergessen werden
- Zeit und Identität: Ohne zuverlässige Zeitquelle kippen Zertifikate und Token. Redundante Zeitserver und klare Fallbacks sind Pflicht.
- Offline-fähige CRLs/OCSP: Zertifikatsprüfungen dürfen nicht vom Internet abhängen, sonst kommt es zu Totalausfällen im Air-Gap.
- Forensikfreundliche Logs: Append-only Speicher für Audits, manipulationssicher, mit klarer Aufbewahrungsfrist.
- Getrennter Datenraum für Tests: Keine Produktionsdaten in Testumgebungen; synthetische Daten oder dedizierte Anonymisierungspipelines.
Wann Public Cloud trotzdem sinnvoll sein kann
- Nicht-sensitive Lasttests, Benchmarking, Evaluierung neuer Modell-Backends. Ergebnisse werden als Profile übernommen; Artefakte selbst bleiben intern.
- Training mit vollständig synthetischen Daten zur Architekturvalidierung.
- Build-Farmen für Open-Source-Abhängigkeitsanalysen in einer isolierten, vorgelagerten Zone. Der sichere Raum sieht nur geprüfte Ergebnisse.
Antipatterns aus der Praxis
- Vollständige Replik der Hyperscaler-PaaS-Landschaft On-Premise: Zu teuer, zu komplex. Fokus auf das, was die Domäne wirklich braucht.
- Unkontrollierte Operator-Wildwiese: Jeder Operator ist eine Erhöhung der Angriffs- und Ausfallfläche. Knappe, freigegebene Liste fahren.
- Hidden Egress: Container-Basen mit eingebauten Telemetrie-Calls nach draußen. Basis-Images reviewen, hart machen, signieren.
- Über-Fragmentierung: Mikroservices ohne klare Domänengrenzen führen On-Premise zu operativer Überlast.
Ein pragmatischer Migrationspfad
Phase 1 – Lab und Referenzarchitektur:
- Minimal-Cluster im Lab, GitOps und Registry aufsetzen, Observability integrieren.
- Ein echter, aber risikoarmer Anwendungsfall (z. B. Telemetrieaufnahme, internes Dashboard) produktionsnah bauen.
Phase 2 – Härtung und Supply Chain:
- Signaturen, SBOMs, Policy-Gates verpflichtend machen.
- Digital Twin-Cluster und Promotionsringe etablieren.
- Notfall- und Recovery-Übungen fahren.
Phase 3 – Edge- und Air-Gap-Rollout:
- Update Conveyor einführen, Offline-Bundles operationalisieren.
- Standort für Standort onboarden, mit klaren SLOs und Betriebsrunbooks.
- LLM-/KI-Dienste anschließen, Governance-Layer (z. B. Alpi-M) in den Audit-Stream integrieren.
Kosten- und Betriebsrealität
- CapEx vs. OpEx: GPU- und Storage-Kosten sind planbar, wenn Workloads und SLOs klar sind. Overprovisioning minimieren, Lastprofile messen.
- Team-Skills: Ein kleines, starkes Plattformteam (Infra+SRE) ist effektiver als verteilte Ad-hoc-Admins. Verantwortlichkeiten und On-Call klar regeln.
- Runbooks und Automatisierung: Wiederholbarkeit schlägt Heldentum. Jeder Eingriff ist skriptbar, dokumentiert, testbar.
Fazit