Multi-Tenant-Cloud-Hosting ist ein Modell, bei dem ein Satz Server und Software viele Kunden bedient, mit logischer Isolation zwischen den Tenants. Denken Sie an ein Mehrfamilienhaus: Die Parteien teilen sich Gebäude, Leitungen und Strom, aber jede Tür hat ein Schloss. Die Alternative – Single-Tenant-Hosting – ist das freistehende Haus: volle Kontrolle, höhere Miete, und mehr Instandhaltung liegt bei Ihnen.
Das Wichtigste in Kürze
| Frage | Antwort |
|---|---|
| Was es ist | Geteilte Server und Software, viele Kunden, logisch getrennte Daten |
| Warum es existiert | Infrastruktur zu teilen ist das, was Cloud-Preise möglich macht |
| Der schwierige Teil | Isolation – kein Tenant darf die Daten oder die Last eines anderen spüren |
| vs. Single-Tenant | Günstiger, schnelleres Onboarding, ein Update-Zyklus – zum Preis der physischen Trennung |
| Wo Isolation hingehört | In die Datenschicht – nicht in die WHERE-Klausel jeder Abfrage |
Wie Tenant-Daten getrennt bleiben
Jedes Multi-Tenant-System beantwortet zuerst eine Frage: Wo lebt die Isolation? Auf der Datenbankebene gibt es drei kanonische Muster – geteiltes Schema, Schema pro Tenant und Datenbank pro Tenant. Das geteilte Schema ist das Arbeitspferd, und es ist am sichersten, wenn die Datenbank selbst die Grenze durchsetzt:
-- Muster 1: geteiltes Schema — jede Zeile trägt ihren Tenant
CREATE TABLE invoices (
id bigserial PRIMARY KEY,
tenant_id uuid NOT NULL,
amount numeric(10,2) NOT NULL
);
-- Isolation in der Datenbank erzwingen, nicht in jeder Abfrage
ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON invoices
USING (tenant_id = current_setting('app.tenant_id')::uuid);
Mit einer zeilenbasierten Richtlinie gibt eine Abfrage, die ihren Tenant-Filter vergisst, nichts zurück statt alles – der Fehlerfall kippt vom Datenabfluss zur leeren Seite.
Auf einem Backend as a Service drückt sich dasselbe Prinzip als Zugriffskontrolle pro Objekt statt als SQL-Richtlinie aus. Jeder Datensatz trägt eine ACL, die die Tenant-Rolle benennt, die ihn sehen darf, und die Plattform setzt das bei jeder Anfrage durch:
// JavaScript / Node.js — Back4app JS SDK
const doc = new Parse.Object('Invoice');
doc.set('amount', 480);
const acl = new Parse.ACL();
acl.setPublicReadAccess(false); // invisible to every other tenant
acl.setRoleReadAccess('tenant-acme', true);
acl.setRoleWriteAccess('tenant-acme', true);
doc.setACL(acl);
await doc.save(); // Flutter / Dart — Back4app Flutter SDK
final doc = ParseObject('Invoice')..set('amount', 480);
final acl = ParseACL();
acl.setPublicReadAccess(allowed: false);
acl.setRoleReadAccess('tenant-acme', true);
acl.setRoleWriteAccess('tenant-acme', true);
doc.setACL(acl);
await doc.save(); // iOS / Swift — Back4app Swift SDK
var doc = Invoice()
doc.amount = 480
var acl = ParseACL()
acl.publicRead = false
acl.setReadAccess(roleName: "tenant-acme", value: true)
acl.setWriteAccess(roleName: "tenant-acme", value: true)
doc.ACL = acl
doc.save { _ in } // Android / Kotlin — Back4app Android SDK
val doc = ParseObject("Invoice").apply { put("amount", 480) }
val acl = ParseACL().apply {
publicReadAccess = false
setRoleReadAccess("tenant-acme", true)
setRoleWriteAccess("tenant-acme", true)
}
doc.acl = acl
doc.saveInBackground() Isolation ist ein Spektrum, kein Schalter
Zwischen “alles geteilt” und “alles dediziert” liegen die drei Deployment-Formen, aus denen die meisten realen Systeme wählen:
Reife Plattformen mischen die Modelle: die vielen kleinen Tenants poolen, die mittelgroßen per Bridge trennen und die wenigen isolieren, die reguliert, enorm oder laut sind. Der Fehler besteht darin, diese Wahl als globale zu behandeln – sie lässt sich pro Tarif treffen, und sogar pro Komponente.
Multi-Tenant- vs. Single-Tenant-Hosting
| Dimension | Multi-Tenant | Single-Tenant |
|---|---|---|
| Kosten pro Tenant | Niedrig – die Infrastruktur amortisiert sich | Hoch – dedizierter Stack pro Kunde |
| Datenisolation | Logisch (Richtlinien, ACLs, Schemas) | Physisch (getrennte Instanz und Datenbank) |
| Schadensradius | Ein Vorfall kann viele Tenants treffen | Auf einen Kunden begrenzt |
| Noisy Neighbors | Möglich; brauchen Quoten und Throttling | Keine – die Ressourcen sind privat |
| Aktualisierungen | Ein Rollout aktualisiert alle | Jede Instanz wird einzeln gepatcht |
| Onboarding | Konfigurationsänderung, Minuten | Bereitstellung, Stunden bis Wochen |
| Anpassbarkeit | Konfiguration und Feature Flags | Tiefe Änderungen pro Instanz möglich |
| Compliance-Eignung | Für die meisten ausreichend; Reibung unter strengen Regimen | Bevorzugt bei strikten Isolationsauflagen |
| Typischer Einsatz | SaaS, BaaS, geteilte Cloud-Plattformen | Regulierte Branchen, Premium-Enterprise-Tarife |
Zwei Bedeutungen, die man trennen sollte
“Multi-Tenant-Cloud-Hosting” wird auf zwei verschiedenen Flughöhen verwendet, und die meisten Erklärungen verwischen sie:
- Als Hosting-Stufe: geteiltes Hosting – Ihre Workload läuft auf denselben physischen Maschinen wie die anderer Kunden. Das ist der Standardmodus jeder Public Cloud; die NIST-Definition führt das Bündeln von Ressourcen über Tenants hinweg als wesentliches Merkmal des Cloud Computing selbst auf.
- Als Anwendungsarchitektur: Ihr eigenes Produkt bedient seine Kunden aus einem geteilten Backend – so wird Abonnementsoftware gebaut. Hier sind Sie der Vermieter, und Tenant-Isolation wird Ihre Verantwortung; genau dort greifen die Muster von oben.
Beides setzt sich zusammen: Ein SaaS-Produkt (Multi-Tenancy auf Anwendungsebene) läuft üblicherweise auf gebündelter Cloud-Infrastruktur (Multi-Tenancy auf Hosting-Ebene), wobei jede Schicht ihre eigenen Tenants isoliert.
Das Noisy-Neighbor-Problem
Teilen heißt Konkurrenz um Ressourcen: Der Massenimport eines Tenants kann den Checkout eines anderen verlangsamen. Die üblichen Gegenmittel, in aufsteigender Schärfe:
- Quoten und Rate Limiting pro Tenant – deckeln, was ein Tenant pro Zeitfenster verbrauchen darf.
- Ressourcenplanung und Autoscaling – Spitzen abfangen, bevor sie zur Latenz eines anderen werden.
- Trennung der Workloads – schwere Jobs (Exporte, Analytik) in Hintergrund-Queues abseits des Anfragepfads verschieben.
- Teilweises Siloing – wenn ein Tenant dauerhaft am Anschlag läuft, bekommt die umkämpfte Komponente (meist die Datenbank) eine eigene Partition, der Rest bleibt gepoolt.
Typische Anwendungsfälle
- SaaS-Produkte. Jede Abo-Anwendung, die alle Kunden aus einer Codebasis bedient – der kanonische Fall und der Grund, warum es das Muster gibt.
- BaaS und Plattform-Hosting. Plattformen betreiben Tausende Anwendungen auf geteilter, isolierter Infrastruktur, sodass die Bereitstellung jeder einzelnen nahezu nichts kostet – das Modell hinter kostenlosen Tarifen.
- B2B-Anwendungen mit Tenant-Workspaces. Ein Deployment, viele Kundenorganisationen, jede mit eigenen Benutzern, Rollen und Datengrenzen.
- Interne Plattformen. Ein Analytik- oder Werkzeug-Deployment, das sich Abteilungen teilen, isoliert nach Team.
- Agenturen mit vielen Kundenanwendungen. Eine geteilte Plattform darunter, ein isoliertes Backend pro Kunde darüber.
Multi-Tenant, Single-Tenant oder gemischt? Eine Entscheidungsmatrix
| Multi-Tenant, wenn … | Single-Tenant, wenn … | Gemischt, wenn … |
|---|---|---|
| Sie viele Kunden mit einem Produkt bedienen | Regulierung oder Verträge physische Isolation verlangen | Die meisten Tenants Standard sind, wenige reguliert |
| Die Kosten pro Kunde gegen null gehen müssen | Das SLA eines Kunden dedizierte Kapazität rechtfertigt | Ein Tenant 100× größer ist als der Median |
| Sie einen Update-Zyklus für alle wollen | Tiefe Anpassung pro Kunde das Produkt ist | Sie einen Premium-Tarif “dediziert” brauchen |
| Onboarding im Self-Service und sofort laufen muss | Sich Ihre Kunden an einer Hand abzählen lassen | Ein lauter Tenant eine eigene Datenbank braucht |
Beginnen Sie standardmäßig multi-tenant und weichen Sie nur dort davon ab, wo ein Tenant es verdient – Tenancy nachträglich in eine Single-Tenant-Codebasis einzuziehen ist weit schwerer, als später einen heißen Kunden in ein Silo zu stellen.
Grenzen und Trade-offs
- Isolation ist nur so gut wie ihre Durchsetzung. Ein vergessener Tenant-Filter im Anwendungscode ist das klassische Leck zwischen Tenants. Schieben Sie die Grenze in die Datenschicht – zeilenbasierte Richtlinien, ACLs pro Objekt –, damit die Plattform im Zweifel sperrt statt öffnet.
- Geteilter Schadensradius. Ein Ausfall, ein schlechtes Deployment oder ein Einbruch kann alle Tenants auf einmal treffen. Gestaffelte Rollouts und Backups pro Tenant verkleinern den Schaden, nicht das Teilen.
- Noisy Neighbors sind strukturell. Quoten und Planung verwalten die Konkurrenz; nur teilweises Siloing beseitigt sie, zum Preis eines Teilsilos.
- Obergrenze der Anpassbarkeit. Tenants teilen sich eine Codebasis, also lebt tenantspezifisches Verhalten in Konfiguration und Feature Flags – eine Einschränkung, die Single-Tenant-Kunden nicht haben.
- Tenant-Kontext überall. Jede Abfrage, jeder Cache-Schlüssel, jeder Job und jede Logzeile muss den Tenant kennen; die Komplexität wandert von der Infrastruktur in die Anwendung – genau die Last, die verwaltete Isolation in der Datenschicht abnehmen soll.
Multi-Tenant-Hosting mit Back4app
Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Sie ist auf beiden Flughöhen multi-tenant. Als Plattform betreibt sie Tausende isolierter App-Backends auf geteilter Infrastruktur – deshalb steht ein neues Backend im kostenlosen Tarif in Minuten bereit. Für die Tenants Ihrer Anwendung ist Isolation ein Feature der Datenschicht statt einer Konvention: Jedes Objekt trägt eine ACL, Rollen gruppieren Benutzer pro Tenant, und Klassenberechtigungen setzen Regeln für das ganze Schema, alles von Back4app bei jeder Anfrage durchgesetzt. Die technische Vertiefung zu Row-Level Security zeigt das vollständige Muster auf einer Dokumentdatenbank – ohne Disziplin bei der WHERE-Klausel.
Häufige Fragen
Was ist Multi-Tenancy im Cloud Computing?
Eine Architektur, in der eine einzige Software-Instanz – und die Infrastruktur darunter – mehrere Kunden bedient, die Tenants genannt werden (deutsch: Mandantenfähigkeit). Die Tenants teilen sich Rechenleistung, Speicher und eine Codebasis, aber die Daten jedes Tenants sind logisch isoliert und für die anderen unsichtbar. Es ist das Muster, das die Ökonomie der Cloud überhaupt funktionieren lässt: Einen Kunden aufzunehmen ist eine Konfigurationsänderung, keine neue Hardware.
Was ist der Unterschied zwischen Multi-Tenant- und Single-Tenant-Hosting?
Single-Tenant gibt jedem Kunden eine eigene Instanz und Datenbank – maximale Kontrolle und physische Isolation zu einem höheren Preis, wobei jede Instanz einzeln gepatcht und aktualisiert wird. Multi-Tenant teilt eine Instanz unter allen Kunden – niedrigere Kosten pro Tenant, ein Update-Zyklus für alle, und eine Isolation, die logisch statt physisch durchgesetzt wird. Die meisten SaaS-Produkte laufen multi-tenant; regulierte oder sehr große Kunden rechtfertigen gelegentlich Single-Tenant.
Ist eine Multi-Tenant-Cloud sicher?
Ja, wenn die Isolation korrekt durchgesetzt wird – Tenants können die Daten der anderen nicht sehen. Die verbleibenden Risiken sind Anwendungsfehler, die einen Tenant-Filter überspringen, und der größere Schadensradius eines geteilten Systems: Ein Einbruch oder ein Ausfall kann jeden Tenant treffen. Deshalb schieben die robustesten Entwürfe die Isolation hinunter in die Datenschicht – zeilenbasierte Richtlinien und Zugriffskontrolle pro Objekt – statt darauf zu vertrauen, dass jede Abfrage an ihre WHERE-Klausel denkt.
Was ist das Noisy-Neighbor-Problem?
Die intensive Nutzung geteilter CPU, geteilten Arbeitsspeichers oder geteilter I/O durch einen Tenant, die die Leistung für alle anderen auf derselben Infrastruktur verschlechtert. Gegenmittel sind Quoten und Rate Limiting pro Tenant, Ressourcenplanung, Autoscaling und – wenn ein Tenant dauerhaft am Anschlag läuft – die Abtrennung der umkämpften Komponente, meist der Datenbank, in ein eigenes Silo.
Wie bleiben Tenant-Daten in einer geteilten Cloud getrennt?
Auf der Datenbankebene gibt es drei kanonische Muster: ein geteiltes Schema, in dem jede Zeile eine Tenant-Kennung trägt (höchste Dichte, meist gepaart mit Row-Level Security), ein Schema pro Tenant in einer geteilten Datenbank, und eine Datenbank pro Tenant (stärkste Isolation, höchste Kosten). Darunter fügt die Infrastruktur eigene Schichten hinzu: virtuelle Maschinen, Container-Namespaces und Micro-VMs halten die Workloads der Tenants auseinander.
Ist Multi-Tenancy dasselbe wie Virtualisierung?
Nein. Virtualisierung zerlegt eine physische Maschine in isolierte virtuelle Maschinen; Multi-Tenancy teilt eine Anwendungsinstanz unter vielen Kunden. Beides ergänzt sich – Virtualisierung ist einer der Mechanismen, mit denen Anbieter die Workloads der Tenants trennen, während Multi-Tenancy das Architekturmuster ist, das überhaupt erst entscheidet, was geteilt wird.
Wann sollten Sie stattdessen Single-Tenant wählen?
Wenn strenge regulatorische Vorgaben oder Verträge physische Isolation oder Datenresidenz verlangen, wenn ein Kunde tiefgreifende Anpassungen pro Instanz braucht, oder wenn garantierte Leistung für einen hochwertigen Kunden die Kosten aufwiegt. Die zunehmend übliche Antwort ist gemischte Tenancy: die meisten Tenants auf geteilter Infrastruktur poolen und die wenigen isolieren, die reguliert, riesig oder laut sind.
Warum ist Multi-Tenancy für SaaS so wichtig?
Sie ist die Architektur, auf der Abonnementsoftware aufbaut. Eine Codebasis bedient jeden Kunden, sodass Korrekturen und Features alle Tenants gleichzeitig erreichen; die Auslastung der Hardware verteilt sich über den gesamten Kundenstamm; und einen neuen Kunden aufzunehmen kostet fast nichts. Ohne Multi-Tenancy trüge jedes Abonnement den Preis dedizierter Server und einer Wartung pro Kunde.