In Diskussionen über Softwarearchitekturen taucht häufig das Wort „Tenancy“ auf. Unabhängig davon, ob Sie eine cloudbasierte Anwendung kaufen oder eine eigene Softwareplattform aufbauen möchten, müssen Sie sich zwangsläufig zwischen Multi-Tenancy und Single-Tenancy entscheiden. Aber was bedeuten diese Begriffe eigentlich? Welche Vorteile hat das eine gegenüber dem anderen? Was ist schwieriger zu implementieren? Wir klären auf.
Softwareanwendungen dienen in der Regel verschiedenen Kunden oder Benutzergruppen. Jeder Kunde bzw. jede Benutzergruppe kann als Tenant betrachtet werden. Multi-Tenancy ist eine Architektur, die eine einzige Softwarebereitstellung für mehrere Tenants ermöglicht. Die zugrunde liegenden Ressourcen werden von allen Tenants gemeinsam genutzt, doch gleichzeitig lässt sich für jeden einzelnen Tenant Datenschutz und bestimmte benutzerdefinierte Konfigurationsanpassungen gewährleisten.
Eine Single-Tenant-Architektur hingegen unterstützt nur einen Tenant pro Instanz. Jeder Tenant erhält einen eigenen, dedizierten Satz von Ressourcen. Single-Tenancy ermöglicht es Softwareanbietern auch, maßgeschneiderte Produkte zu liefern, die auf die persönlichen Bedürfnisse der Kunden zugeschnitten sind.
In einer Multi-Tenant-Webanwendung beispielsweise bearbeitet derselbe Webserver die Anfragen aller Kunden. Die Daten aller Kunden werden in derselben Datenbank gespeichert. Kunden sind jedoch in der Lage, die konfigurierbaren Elemente der Anwendung zu personalisieren, z. B. Darstellung, Modus usw. Sie können allerdings keine Anpassungen des Quellcodes anfordern.
Sie können sich eine Multi-Tenancy-Bereitstellung wie ein Wohngebäude vorstellen. Ein und dasselbe Wohngebäude bietet verschiedenen Mietern (englisch: tenants) eigenständige Wohnungen mit Sicherheitsdienst und Versorgungsleistungen. Auf die gleiche Weise kann eine einzige Instanz einer Softwareanwendung die Bedürfnisse verschiedener Kunden erfüllen, ohne jemals den Datenschutz des jeweiligen Kunden oder die Servicebereitstellung zu gefährden.
So wie jedem Mieter in einem Wohngebäude eine eigene Wohneinheit zugewiesen ist, kann eine Multi-Tenant-Anwendung für jeden Kunden eigene Ressourcen reservieren. Eine Anwendung kann z. B. verschiedene Prozesse starten, um die Anfragen verschiedener Kunden zu bearbeiten. Sie kann auch verschiedene Tabellen für verschiedene Kunden innerhalb derselben Datenbank erstellen.
Die Bereitstellung von Multi-Tenant-Anwendungen ist einfach Sie müssen nur eine einzige Instanz einer Softwareanwendung einrichten, die alle Ihre Kunden abdeckt
Multi-Tenant-Architekturen ermöglichen eine effiziente Nutzung von Rechen- und Hardwareressourcen
Die Gesamtbetriebs- und Wartungskosten werden auf mehrere Kunden aufgeteilt, was die Gesamtkosten reduziert
Das Hinzufügen neuer Kunden erfordert in der Regel nur Konfigurationsänderungen und keine Provisionierung neuer Ressourcen
Eine einzelne Softwareinstanz kann viel einfacher gewartet, geschützt und optimiert werden
Der Entwurf und die Entwicklung einer effizienten, zukunftssicheren Multi-Tenant-Architektur kann schwierig sein
Im Falle einer Sicherheitsverletzung sind die Daten aller Kunden gefährdet
Die vollständige Trennung der Ressourcen ermöglicht die bestmögliche Leistung und den bestmöglichen Durchsatz
Die Isolierung von Kundendaten verringert das Risiko eines Cyberangriffs, der mehrere Kunden betrifft
Jeder Kunde kann das Produkt in vollem Umfang individuell an seine jeweiligen Bedürfnisse anpassen
Die Migration von Single-Tenant-Anwendungen ist einfacher, da nur die Daten eines einzigen Kunden berücksichtigt werden
Da es so viele Softwareinstanzen wie Kunden gibt, sind Ressourcen oft nicht optimal ausgelastet
Die Bereitstellung von Single-Tenant-Anwendungen dauert länger, da jeder Kunde eine eigene Instanz erhält
Die Gesamtbetriebs- und Wartungskosten sind sehr viel höher
Wenn Sie einen neuen Kunden hinzufügen, müssen Sie eine neue Instanz hinzufügen, was mehr Ressourcen und höhere Kosten bedeutet
Die Wartung, Absicherung und Optimierung mehrerer Softwareinstanzen ist schwierig und erfordert ein viel größeres Team
Beim Erstellen einer Softwareanwendung eignet sich Multi-Tenancy unter folgenden Bedingungen:
Sie möchten mehrere Kunden in einer kosteneffizienten Cloud-Umgebung unterstützen
Sie möchten eine große Infrastruktur vermeiden
Sie verfügen über kein großes Team für Bereitstellung, Wartung und Support
Sie wünschen sich reibungslosere Skalierbarkeit
Sie haben ein Team von erfahrenen Entwicklern und Architekten
Beim Kauf einer Softwareanwendung eignet sich Multi-Tenancy unter folgenden Bedingungen:
Ihr Unternehmen erlaubt die gemeinsame Nutzung von Ressourcen oder Daten
Die Konfigurationsanpassungen und der Funktionsumfang des Produkts sind für Ihre Zwecke ausreichend
Sie möchten ein optimales Preis-Leistungs-Verhältnis erzielen
Beim Erstellen einer Softwareanwendung eignet sich Single-Tenancy unter folgenden Bedingungen:
Sie verfügen über ein großes Team für Bereitstellung, Wartung und Support
Sie haben nicht viele Kunden
Sie können eine große Infrastruktur verwalten
Sie haben keine Budgetbeschränkungen
Sie möchten Leistung und Durchsatz auf völlig neuem Niveau bereitstellen
Sie haben kein Team von erfahrenen Entwicklern und Architekten
Beim Kauf einer Softwareanwendung eignet sich Single-Tenancy unter folgenden Bedingungen:
Eine Unternehmensrichtlinie in Ihrem Unternehmen erlaubt keine gemeinsame Nutzung von Ressourcen oder Daten
Sie möchten das Produkt vollständig gemäß Ihren Anforderungen anpassen
Sie sind damit einverstanden, einen viel höheren Betrag für eine geringfügig höhere Leistung zu zahlen
Obwohl beide Architekturparadigmen ihre Vor- und Nachteile haben, ist Multi-Tenancy für die meisten Szenarien die bessere Wahl. Richtig angewendet können Sie mit Multi-Tenancy eine zukunftssichere Plattform erstellen, welche die Ressourcenauslastung optimiert und viel einfacher zu warten ist.
Multi-Tenancy ist ebenfalls ein Cloud-first-Ansatz. Die meisten Cloud-Plattformen sind selbst auf Multi-Tenant-Architekturen aufgebaut. Sie nutzen dieselben zugrunde liegenden Hardwareressourcen, um Hunderttausende von Kunden zu unterstützen.
Wenn Ihre Branche oder Ihr Unternehmen jedoch strenge Sicherheitsrichtlinien erfüllen muss (z. B. im Gesundheitswesen, Finanzsektor), kann sich eine Single-Tenant-Architektur besser für Ihre Anforderungen eignen.