Multi-Tenant-Architekturen: Wie Unternehmen skalierbare Cloud-Plattformen aufbauen
Autor: Corporate Know-How Redaktion
Veröffentlicht:
Kategorie: Technologie und Infrastruktur
Zusammenfassung: Multi-Tenant-Architektur: Drei Modelle der Datentrennung, Sicherheit, Skalierung und Framework-Empfehlungen fuer Cloud-Plattformen.
Warum Multi-Tenancy die Grundlage jeder Cloud-Plattform ist
Wer eine Cloud-basierte Software fuer mehrere Kunden betreibt, kommt an einer fundamentalen Architekturentscheidung nicht vorbei: Wie werden die Daten und Ressourcen verschiedener Kunden (Tenants) voneinander getrennt? Die Antwort auf diese Frage bestimmt die Kosten, die Sicherheit, die Skalierbarkeit und die Wartbarkeit der gesamten Plattform fuer Jahre — oft fuer die gesamte Lebensdauer des Produkts.
Multi-Tenant-Architektur bedeutet, dass eine einzige Softwareinstanz mehrere Kunden bedient, wobei jeder Kunde nur seine eigenen Daten sieht und nur seine eigene Konfiguration erhaelt. Im Gegensatz dazu steht die Single-Tenant-Architektur, bei der jeder Kunde eine eigene Instanz erhaelt. Beide Ansaetze haben ihre Berechtigung — die Wahl haengt vom Anwendungsfall ab.
Die drei Modelle der Datentrennung
Modell 1 — Shared Database, Shared Schema: Alle Tenants teilen sich eine Datenbank und dieselben Tabellen. Die Trennung erfolgt ueber eine tenant_id-Spalte in jeder Tabelle. Dieses Modell ist am einfachsten zu implementieren und am guenstigsten zu betreiben, birgt aber das hoechste Risiko: Ein fehlender WHERE-Filter in einer einzigen Datenbankabfrage kann Daten aller Kunden offenlegen.
Modell 2 — Shared Database, Separate Schema: Alle Tenants teilen sich einen Datenbankserver, aber jeder Tenant hat sein eigenes Schema (in PostgreSQL: eigener Schema-Namespace). Die Datentrennung ist staerker als bei Modell 1, da Queries automatisch im Kontext des jeweiligen Schemas laufen. Migrationen werden allerdings komplexer, da sie fuer jedes Schema einzeln ausgefuehrt werden muessen.
Modell 3 — Separate Database per Tenant: Jeder Kunde erhaelt seine eigene Datenbank. Maximale Datenisolation, einfaches Backup und Restore pro Kunde, und die Moeglichkeit, einzelne Tenants auf dedizierte Server zu verschieben. Nachteil: Hoeherer Ressourcenverbrauch und komplexeres Connection Management bei vielen Tenants.
Vor- und Nachteile von Multi-Tenant-Architekturen
| Vorteile | Nachteile |
|---|---|
| Geringere Betriebskosten durch Ressourcenteilung | Risiko von Datenlecks bei fehlerhafter Implementierung |
| Skalierbarkeit bei steigender Tenant-Anzahl | Komplexität bei der Verwaltung individueller Tenant-Anforderungen |
| Einfachere Wartung und Updates durch zentrale Instanz | Herausforderungen bei der Einhaltung regulatorischer Anforderungen |
| Effiziente Ressourcennutzung | Performanceprobleme durch "Noisy Neighbour"-Effekte |
| Flexibilität bei der Implementierung von Funktionen | Höherer Aufwand für Sicherheitsmaßnahmen zur Datenisolierung |
Entscheidungskriterien fuer die richtige Architektur
Die Wahl des richtigen Modells haengt von mehreren Faktoren ab:
- Regulatorische Anforderungen: Branchen wie Finanz, Gesundheit oder oeffentlicher Sektor verlangen oft physische Datentrennung. Hier ist Modell 3 meist Pflicht.
- Erwartete Tenant-Anzahl: Bei wenigen grossen Kunden (10-50) ist Database-per-Tenant praktikabel. Bei tausenden kleinen Kunden wird Shared Schema zur einzig wirtschaftlichen Option.
- Datenvolumen pro Tenant: Wenn einzelne Tenants Millionen Datensaetze erzeugen, profitieren sie von eigenen Datenbanken mit individueller Indexierung und Performance-Optimierung.
- Anpassbarkeit: Wenn Tenants unterschiedliche Schema-Erweiterungen benoetigen, bieten separate Schemas oder Datenbanken mehr Flexibilitaet.
- Budget und Team-Groesse: Shared Schema erfordert weniger DevOps-Aufwand. Separate Databases brauchen Automatisierung fuer Provisioning, Migrationen und Monitoring.
Sicherheit in Multi-Tenant-Systemen
Datenisolation ist die wichtigste Sicherheitsanforderung. Ein einziger Cross-Tenant-Leak kann das Vertrauen aller Kunden zerstoeren und regulatorische Konsequenzen nach sich ziehen. Wirksame Massnahmen umfassen:
Row-Level Security (RLS): PostgreSQL bietet mit Row-Level Security Policies eine datenbankserverseitige Durchsetzung der Tenant-Isolation. Selbst wenn die Anwendungslogik einen Fehler hat, verhindert die Datenbank den Zugriff auf fremde Daten.
Middleware-basierte Tenant-Erkennung: Jeder eingehende Request wird frueh in der Middleware einem Tenant zugeordnet — ueber Subdomain, Header oder JWT-Claim. Alle nachfolgenden Datenbankoperationen laufen automatisch im Kontext dieses Tenants.
Audit-Logging: Jeder datenzugreifende Vorgang wird protokolliert — wer hat wann auf welche Daten zugegriffen. Fuer Compliance-Anforderungen (DSGVO, SOC 2) ist das keine Option, sondern Pflicht.
Penetration Testing: Regelmaessige Sicherheitstests, die speziell auf Tenant-Isolation abzielen: Kann Tenant A auf Daten von Tenant B zugreifen? Koennen API-Keys eines Tenants fuer einen anderen verwendet werden?
Skalierungsstrategien fuer wachsende Plattformen
Multi-Tenant-Systeme stehen vor spezifischen Skalierungsherausforderungen:
Noisy Neighbour Problem: Ein Tenant mit ueberdurchschnittlich hoher Last beeintraechtigt die Performance aller anderen Tenants auf derselben Infrastruktur. Loesungen: Resource Quotas, Tenant-basiertes Rate Limiting, und die Moeglichkeit, stark belastete Tenants auf dedizierte Ressourcen zu verschieben.
Database Sharding: Ab einer bestimmten Datenmenge muss die Datenbank horizontal aufgeteilt werden. Tenant-basiertes Sharding ist die natuerlichste Strategie: Gruppen von Tenants werden auf verschiedene Datenbank-Cluster verteilt.
Caching pro Tenant: Cache-Keys muessen immer den Tenant-Kontext enthalten, um Cross-Tenant-Cache-Pollution zu vermeiden. Redis Namespaces oder Key-Prefixe sind gaengige Implementierungen.
Frameworks und Tools fuer Multi-Tenancy
Moderne Frameworks bieten zunehmend eingebaute Multi-Tenancy-Unterstuetzung:
- Laravel (PHP): Packages wie tenancy/tenancy oder stancl/tenancy bieten vollstaendige Multi-Tenant-Implementierungen mit automatischer Datenbanktrennung, Route-basierter Tenant-Erkennung und Tenant-spezifischen Konfigurationen.
- Django (Python): django-tenants implementiert Schema-basierte Multi-Tenancy fuer PostgreSQL mit automatischer Migration und Tenant-Routing.
- PostgreSQL: Row-Level Security, Schema-Isolation und Connection Pooling mit PgBouncer bieten datenbankserverseitige Multi-Tenancy-Unterstuetzung.
Unternehmen, die eine skalierbare Plattform-Entwicklung planen, sollten die Multi-Tenancy-Strategie in den ersten Architekturworkshops festlegen — denn eine nachtraegliche Umstellung ist einer der aufwendigsten Eingriffe, die es in der Softwareentwicklung gibt.
Fazit: Die Architektur heute bestimmt die Skalierbarkeit von morgen
Multi-Tenant-Architektur ist keine rein technische Entscheidung. Sie hat direkte Auswirkungen auf Betriebskosten, Kundensicherheit, Compliance-Faehigkeit und Wachstumspotenzial. Unternehmen, die frueh die richtige Balance zwischen Isolation und Effizienz finden, legen das Fundament fuer eine Plattform, die mit ihrem Kundenstamm waechst — statt unter ihm zusammenzubrechen.