Inhaltsverzeichnis
1. Architektur-Prinzipien
| Prinzip | Beschreibung |
|---|---|
| On-Premises First | Alle Kernsysteme laufen im eigenen Rechenzentrum auf Kubernetes |
| Zero Trust | Kein implizites Vertrauen, jede Anfrage wird verifiziert |
| API-First | Alle Komponenten kommunizieren über definierte APIs |
| Event-Driven | Asynchrone Verarbeitung wo möglich, Events als Backbone |
| Security by Design | Sicherheit ist Architekturbestandteil, kein Addon |
| Compliance by Default | Jede Aktion wird auditierbar protokolliert |
| Resilience | Ausfallsicherheit durch redundante Komponenten und HA-Cluster |
| Cloud-Services gezielt | Nur M365 (Graph API) und Anthropic Claude API als externe Cloud-Services |
2. High-Level Architektur
On-Premises Architecture Overview
┌──────────────────────────────────┐
│ BENUTZER-SCHICHT │
│ │
│ Web Portal │ Teams Bot │ Mobile │
└──────────┬───────────────────────┘
│ HTTPS/WSS
▼
┌───────────────────────────────────┐
│ NGINX INGRESS + ModSecurity WAF │
│ (Reverse Proxy, Rate Limiting) │
└───────────────┬───────────────────┘
│
┌───────────────▼───────────────────┐
│ API GATEWAY (Kong/Traefik) │
│ Rate Limiting, Auth, Routing, TLS │
└───────────────┬───────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌─────────▼────────┐ ┌─────────▼────────┐ ┌─────────▼────────┐
│ RKE2 KUBERNETES │ │ EXTERNE CLOUD │ │ ON-PREM INFRA │
│ CLUSTER │ │ SERVICES │ │ │
│ │ │ │ │ • Active Dir. │
│ • Portal App │ │ • Microsoft 365 │ │ • DNS/DHCP │
│ • AI Gateway │ │ (Graph API) │ │ • VMware vSphere │
│ • Microservices │ │ • Anthropic │ │ • SAN Storage │
│ • Databases │ │ Claude API │ │ • Backup (Veeam) │
│ • Message Bus │ │ │ │ • Netzwerk-Infra │
│ • Monitoring │ │ │ │ │
│ • Security Svc │ │ │ │ │
└──────────────────┘ └──────────────────┘ └──────────────────┘
3. Netzwerk-Topologie
3.1 VLAN-Architektur
VLAN-Segmentierung im Rechenzentrum
┌─────────────────────────────────────────────────────────────┐
│ RECHENZENTRUM HAFS │
│ │
│ ┌── VLAN 10: Management ────────────────────────────────┐ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ vCenter │ │ Rancher │ │ Bastion Host │ │ │
│ │ │ Server │ │ Server │ │ (Jump Server) │ │ │
│ │ │ 10.10.1.x│ │ 10.10.2.x│ │ 10.10.3.x │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌── VLAN 20: Kubernetes Cluster ────────────────────────┐ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ RKE2 │ │ RKE2 │ │ RKE2 Worker │ │ │
│ │ │ Control │ │ Control │ │ Nodes (5-15) │ │ │
│ │ │ Plane 1 │ │ Plane 2/3│ │ 10.20.2.x │ │ │
│ │ │ 10.20.1.1│ │ 10.20.1.x│ │ │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌── VLAN 30: Datenbank & Storage ───────────────────────┐ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │PostgreSQL│ │ MongoDB │ │ MinIO │ │ │
│ │ │ Patroni │ │ Replica │ │ Object Storage │ │ │
│ │ │ HA (3) │ │ Set (3) │ │ (S3-kompatibel) │ │ │
│ │ │ 10.30.1.x│ │ 10.30.2.x│ │ 10.30.3.x │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Redis │ │Elastic- │ │ HashiCorp │ │ │
│ │ │ Sentinel │ │ search │ │ Vault │ │ │
│ │ │ (3) │ │ Cluster │ │ HA (3) │ │ │
│ │ │ 10.30.4.x│ │ 10.30.5.x│ │ 10.30.6.x │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌── VLAN 40: Identity & Directory ──────────────────────┐ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Active │ │ Active │ │ Entra ID Connect │ │ │
│ │ │ Directory│ │ Directory│ │ (Hybrid Sync) │ │ │
│ │ │ DC 1 │ │ DC 2 │ │ 10.40.3.x │ │ │
│ │ │ 10.40.1.x│ │ 10.40.2.x│ │ │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌── VLAN 50: DMZ / Reverse Proxy ───────────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ NGINX Ingress (HA) + ModSecurity WAF │ │ │
│ │ │ 10.50.1.x │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌── VLAN 60: Monitoring & Logging ──────────────────────┐ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │Prometheus│ │ Grafana │ │ Loki / Jaeger │ │ │
│ │ │ + Alert │ │ │ │ │ │ │
│ │ │ Manager │ │ │ │ │ │ │
│ │ │ 10.60.1.x│ │ 10.60.2.x│ │ 10.60.3.x │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
│
│ Internet (nur für M365 / Anthropic Claude API)
│ via Proxy / Firewall
▼
┌──────────────────────────────────────────────────────────────┐
│ EXTERNE CLOUD-SERVICES │
│ │
│ ┌──────────────┐ ┌──────────────────────────────────────┐ │
│ │ Microsoft 365│ │ Anthropic Claude API │ │
│ │ (Graph API) │ │ (LLM für Chatbot, RAG, Copilot) │ │
│ │ Teams, │ │ │ │
│ │ Exchange, │ │ Endpoint: api.anthropic.com │ │
│ │ SharePoint │ │ Region: EU │ │
│ └──────────────┘ └──────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
3.2 Konnektivität
| Verbindung | Typ | Bandbreite | Zweck |
|---|---|---|---|
| Intern → K8s Cluster | VLAN-übergreifend | 10 Gbps | Applikationszugriff |
| K8s → Datenbank-VLAN | Firewall-kontrolliert | 10 Gbps | Datenbankzugriff |
| DMZ → Internet | Proxy/Firewall | 1 Gbps | M365 + Claude API |
| Benutzer → DMZ | LAN/VPN | LAN-Speed | Portal-Zugriff |
| Management → alle VLANs | Firewall-kontrolliert | 10 Gbps | Administration |
4. Komponenten-Architektur
4.1 Frontend Layer
Frontend Architecture
┌──────────────────────────────────────────────────┐ │ FRONTEND LAYER │ │ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ React SPA │ │ Teams Bot │ │ Mobile PWA │ │ │ │ (Portal) │ │ Framework │ │ (Optional) │ │ │ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ │ │ └────────────────┼────────────────┘ │ │ ▼ │ │ ┌─────────────────────────┐ │ │ │ BFF (Backend for │ │ │ │ Frontend) – Next.js │ │ │ └─────────────────────────┘ │ └──────────────────────────────────────────────────┘
4.2 Service Layer (Microservices auf RKE2)
Service Layer on RKE2 Kubernetes
┌─────────────────────────────────────────────────────────┐ │ SERVICE LAYER (RKE2 Kubernetes) │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ │ Ticket │ │ AI Service │ │ Identity │ │ │ │ Service │ │ Gateway │ │ Service │ │ │ │ │ │ │ │ │ │ │ │ • CRUD │ │ • Chat │ │ • SSO │ │ │ │ • Workflow │ │ • NLP │ │ • RBAC │ │ │ │ • SLA │ │ • RAG │ │ • MFA │ │ │ │ • Escalation│ │ • Classify │ │ • Provisioning │ │ │ └─────────────┘ └─────────────┘ └─────────────────┘ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ │ Security │ │ Governance │ │ Notification │ │ │ │ Service │ │ Service │ │ Service │ │ │ │ │ │ │ │ │ │ │ │ • IAM Mgmt │ │ • Policy │ │ • Email │ │ │ │ • PAM Proxy │ │ • Audit │ │ • Teams │ │ │ │ • Incident │ │ • Risk │ │ • Push │ │ │ │ • Threat │ │ • Reporting │ │ • Webhook │ │ │ └─────────────┘ └─────────────┘ └─────────────────┘ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ │ Automation │ │ Knowledge │ │ Analytics │ │ │ │ Engine │ │ Service │ │ Service │ │ │ │(Norm) │ │ │ │ │ │ │ │ • Flows │ │ • Search │ │ • Dashboards │ │ │ │ • Module │ │ • Indexing │ │ • Reporting │ │ │ │ • Scheduler │ │ • AI Enrich │ │ • Predictive │ │ │ │ • Webhook │ │ • Feedback │ │ • KPIs │ │ │ └─────────────┘ └─────────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────┘
4.3 Data Layer
Data Layer – On-Premises
┌─────────────────────────────────────────────────────────┐ │ DATA LAYER │ │ │ │ ┌── On-Premises (K8s / VMs) ────────────────────────┐ │ │ │ │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────────┐ │ │ │ │ │PostgreSQL │ │ MongoDB │ │ MinIO │ │ │ │ │ │ Patroni │ │ ReplicaSet│ │ Object │ │ │ │ │ │ (Tickets, │ │ (Sessions,│ │ Storage │ │ │ │ │ │ Config) │ │ Cache) │ │ (Dokumente) │ │ │ │ │ └───────────┘ └───────────┘ └───────────────┘ │ │ │ │ │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────────┐ │ │ │ │ │Elastic- │ │ Redis │ │ RabbitMQ / │ │ │ │ │ │ search │ │ Sentinel │ │ NATS │ │ │ │ │ │ (Knowledge│ │ Cache │ │ (Message Bus) │ │ │ │ │ │ + Vector)│ │ │ │ │ │ │ │ │ └───────────┘ └───────────┘ └───────────────┘ │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ ┌── Bestandssysteme ────────────────────────────────┐ │ │ │ │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────────┐ │ │ │ │ │ Active │ │ Legacy │ │ HashiCorp │ │ │ │ │ │ Directory │ │ SQL Server│ │ Vault │ │ │ │ │ │ │ │ │ │ (Secrets) │ │ │ │ │ └───────────┘ └───────────┘ └───────────────┘ │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘
5. Datenfluss-Prinzipien
5.1 Datenklassifizierung & Speicherort
| Datenklasse | Klassifizierung | Speicherort | Verschlüsselung |
|---|---|---|---|
| Ticket-Daten | Intern | PostgreSQL (On-Prem) | TDE + TLS 1.3 |
| Benutzerprofile | Vertraulich | On-Prem AD + Entra ID (Sync) | At-Rest + In-Transit |
| PAM-Credentials | Streng Vertraulich | HashiCorp Vault (On-Prem) | Seal/Unseal + TLS |
| AI-Kontextdaten | Intern | MinIO (On-Prem, verschlüsselt) | SSE-S3 |
| Audit-Logs | Compliance | Elasticsearch (On-Prem) | Immutable Index |
| Knowledge Base | Intern | Elasticsearch (Vector + Volltext) | TLS |
| Chat-Verläufe | Vertraulich | MongoDB (TTL: 90 Tage) | At-Rest + TLS |
| Security Events | Streng Vertraulich | SIEM Add-on (Elasticsearch) | At-Rest + In-Transit |
5.2 Datensouveränität
Datensouveränität
Alle Daten On-Premises: Sämtliche Daten verbleiben im eigenen Rechenzentrum
AI-Verarbeitung: Anfragen an Anthropic Claude API enthalten nur anonymisierte/bereinigte Daten
M365-Daten: Verbleiben in Microsoft Cloud (EU-Region), Zugriff via Graph API
Kein Cloud-Lock-in: Alle Kernsysteme sind Open-Source-basiert und portabel
6. Sicherheitsarchitektur
Defense in Depth – 6 Security Layers
┌─────────────────────────────────────────────────────────┐ │ SECURITY LAYERS │ │ │ │ Layer 1: Perimeter │ │ ┌─────────────────────────────────────────────────┐ │ │ │ NGINX Ingress + ModSecurity WAF + Rate Limiting │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Layer 2: Netzwerk │ │ ┌─────────────────────────────────────────────────┐ │ │ │ VLAN-Segmentierung + Calico Network Policies │ │ │ │ + Firewall Rules zwischen VLANs │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Layer 3: Identität │ │ ┌─────────────────────────────────────────────────┐ │ │ │ On-Prem AD + Entra ID (Hybrid) + MFA │ │ │ │ + Conditional Access + IAM/PAM Add-on │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Layer 4: Applikation │ │ ┌─────────────────────────────────────────────────┐ │ │ │ OWASP Protection + Input Validation + CSP │ │ │ │ + Pod Security Standards + OPA/Gatekeeper │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Layer 5: Daten │ │ ┌─────────────────────────────────────────────────┐ │ │ │ Encryption at Rest + in Transit + HashiCorp Vault│ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Layer 6: Monitoring │ │ ┌─────────────────────────────────────────────────┐ │ │ │ SIEM Add-on + Prometheus/Grafana + Loki + Alerts│ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘
7. Hochverfügbarkeit & Disaster Recovery
| Komponente | RTO | RPO | Strategie |
|---|---|---|---|
| Portal Frontend | 5 min | 0 | Multi-Pod, Ingress HA |
| API Services | 10 min | 0 | RKE2 Multi-Node, Auto-Scaling (HPA) |
| Datenbank (PostgreSQL) | 15 min | 5 min | Patroni HA (3 Nodes), Streaming Replication |
| MongoDB | 15 min | 5 min | ReplicaSet (3 Nodes), Auto-Failover |
| AI Services (Claude API) | 30 min | N/A | Retry + Circuit Breaker, Fallback-Responses |
| Elasticsearch | 15 min | 5 min | Cluster (3+ Nodes), Snapshot/Restore |
| On-Prem Infrastruktur | 60 min | 15 min | VMware HA, vMotion, Veeam Backup |