Multi-Tenant-Architekturen: Wie Unternehmen skalierbare Cloud-Plattformen aufbauen

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.