iwebforyou
Projekt starten
Alle Artikel

SaaS

Wie die Daten der Kunden in einem SaaS getrennt bleiben

In einer SaaS-Plattform bleiben die Daten der Kunden mit einem von drei AWS-Modellen getrennt. Im Silo hat jeder Kunde eigene Ressourcen, im Pool teilen sich die Kunden Ressourcen, und Bridge verbindet beides. Das Modell wird im Systementwurf gewählt, bevor Code entsteht.

Herausgeber: iwebforyouVeröffentlicht Aktualisiert 5 Min. Lesezeit

Wie die Daten der Kunden in einem SaaS getrennt bleiben

Wenn Sie ein SaaS-Produkt planen, lautet eine der ersten Fragen: Wie streng werden die Daten jedes Kunden getrennt? Die Antwort beeinflusst Kosten und Sicherheit, und sie lässt sich später nur schwer ändern. Dieser Artikel erklärt die drei Optionen von AWS mit einfachen Beispielen, damit Sie das Thema mit Ihrem Team besprechen können.

Was ist ein Tenant?

Ein Tenant ist ein Kunde des SaaS-Produkts, samt seinen Nutzern und Daten. Ein Unternehmen, das Ihre Plattform nutzt, ist ein Tenant, und seine Organisation sieht das Produkt, als wäre es ihr eigenes. In Wirklichkeit bedient dieselbe Software Dutzende oder Hunderte Tenants gleichzeitig.

Deshalb ist die Trennung der Tenants so wichtig. Das Well-Architected SaaS Lens von AWS nennt sie ein grundlegendes Thema, dem sich jeder SaaS-Anbieter stellen muss. Es fügt hinzu, dass eine Verletzung dieser Grenze, auf welchem Weg auch immer, für ein SaaS-Unternehmen ein schwerwiegendes und wahrscheinlich nicht umkehrbares Ereignis wäre. Ein Kunde, der Daten eines anderen sieht, verliert sein Vertrauen in einem Augenblick.

Was ist das Silo-Modell?

Im Silo-Modell hat jeder Tenant eigene, exklusive Ressourcen. AWS nennt zwei Beispiele: eine völlig eigenständige Infrastruktur für jeden Tenant oder eine eigene Datenbank für jeden. Wenn ein Teil oder alle Ressourcen eines Tenants ihm allein gehören, spricht man von einem Silo.

Auch dann bleiben laut AWS Identität, Anmeldung und Betrieb für alle gemeinsam. Das unterscheidet ein SaaS von einem Dienst, bei dem jeder Kunde eine eigene Version des Produkts betreibt. Der Gewinn ist eine starke Trennung, weil die Daten an einem anderen Ort liegen. Der Preis ist mehr Arbeit im Betrieb, denn jede Änderung muss alle Ressourcen erreichen.

Was ist das Pool-Modell?

Im Pool-Modell teilen sich die Tenants dieselben Ressourcen. AWS beschreibt es als die klassischste Bedeutung von Multi-Tenancy: gemeinsame, skalierbare Infrastruktur, die Skaleneffekte, einfachere Verwaltung und schnelle Änderungen bringt. Geteilt werden können Rechenleistung, Speicher oder Nachrichtenwarteschlangen.

Hier entsteht die Trennung nicht aus der Struktur. Sie entsteht aus dem Code, der bei jeder Abfrage an die Datenbank nach Tenant filtern muss. Fehlt der Filter in einer Ansicht, können Daten eines anderen Kunden sichtbar werden. Darum braucht der Pool systematische Kontrolle, mit Tests, die genau nach diesem Fehler suchen. Für den Kunden fühlt sich sein Konto wie ein eigenes Produkt an, auch wenn die Daten in denselben Tabellen liegen.

Was ist das Bridge-Modell?

Bridge ist die Kombination aus beiden. AWS weist darauf hin, dass SaaS-Produkte nicht immer reine Silos oder Pools sind und dass viele Systeme eine Mischform haben. So kann zum Beispiel ein Dienst des Systems ein Silo sein und ein anderer ein Pool.

Was spricht für ein Silo? AWS nennt das regulatorische Profil der Daten und den Effekt des „lauten Nachbarn“, bei dem ein Tenant mit hoher Last die anderen ausbremst. Was spricht für einen Pool? Flexibilität, die Art des Zugriffs und die Kosten. In der Praxis bleiben Daten mit erhöhten Anforderungen getrennt, während sich die übrigen Funktionen Ressourcen teilen.

Wie wählen wir das Modell für ein Projekt?

Wir wählen nach den Anforderungen des Projekts, nicht nach der Vorliebe für eine Technik. In der ersten Phase halten wir drei Dinge fest: welche Daten gespeichert werden, wie viele Tenants zu erwarten sind und was Ihre Kunden von Ihnen verlangen. Damit wird der Vergleich einfach.

Frage

Neigt zum Silo

Neigt zum Pool

Wie sensibel sind die Daten?

Sehr sensibel oder reguliert

Übliche Geschäftsdaten

Wie viele Tenants sind zu erwarten?

Wenige, große

Viele, kleine

Wie stark unterscheidet sich die Last je Tenant?

Stark

Wenig

Welche Priorität haben die Betriebskosten?

Nachrangig

Hoch

Das Ergebnis steht im Systementwurf, den Sie freigeben. So wissen Sie von Anfang an, was jede Option kostet, und die Diskussion findet nicht später statt, wenn der Code schon existiert.

Was haben wir bei Praion AI gewählt?

In unserem eigenen Produkt Praion AI hat jeder Kunde seine eigene Datenbank. Wir beschreiben das ausführlich in der Fallstudie zu Praion AI. Dort liegen Gespräche, Kontakte und private Notizen, Daten, von denen der Kunde wissen will, dass sie nur ihm gehören. Deshalb wurde die Trennung in die Struktur gebaut und nicht in die Aufmerksamkeit dessen, der den Code schreibt.

Die Wahl hat einen Preis, den wir bewusst in Kauf genommen haben: Jedes Update muss alle Datenbanken erreichen. Bei einem anderen Projekt, mit weniger sensiblen Daten und vielen kleinen Kunden, könnte dieselbe Überlegung zu einem Pool führen. Das ist die Logik, der wir folgen, und kein fester Rezeptplan. Die nächste Frage, nämlich welcher Nutzer innerhalb jedes Kunden was sieht, erklären wir im Artikel über Rollen und Rechte. Zusammen legen beide Entscheidungen fest, wer auf welche Daten zugreifen darf.

Häufig gestellte Fragen: Wie die Daten der Kunden in einem SaaS getrennt bleiben

Welches Modell ist das beste?

Keines ist in allen Fällen das beste. Das Silo bietet stärkere Trennung bei mehr Arbeit im Betrieb. Der Pool bietet Einsparungen und einfachere Verwaltung, verlangt aber systematische Kontrolle des Codes. Die Wahl wird pro Projekt getroffen.

Kann das Modell später geändert werden?

Das ist möglich, kostet aber. Die Änderung betrifft die Datenbank, den Code und den Betrieb der Plattform. Darum wird die Entscheidung am Anfang festgehalten und freigegeben, wenn ihre Änderung nichts kostet.

Genügt ein Filter pro Tenant bei jeder Abfrage?

Im Pool ist der Filter nötig, aber es genügt nicht, dass er im Code steht. Es braucht auch Tests, die prüfen, dass jede Ansicht und jeder Bericht nur Daten des richtigen Tenants zeigen. Dieser Fehler fällt mit wenigen Testdaten kaum auf.

Was hat das mit den Rechten der Nutzer zu tun?

Es sind zwei verschiedene Ebenen. Die Trennung der Tenants legt fest, welche Daten zu welchem Kunden gehören. Rollen und Rechte legen fest, was jeder Nutzer innerhalb seines Kontos tut. Das Thema erklären wir im Artikel über Rollen und Rechte in einem SaaS.

Möchten Sie, dass wir Ihre eigene Plattform entwerfen?

Wenn Sie ein SaaS-Produkt oder eine interne Plattform für mehrere Kunden bauen, ist das Datenmodell das erste Thema, das sich zu besprechen lohnt. Beschreiben Sie Ihr Projekt in der Projektanfrage, dann sehen wir es gemeinsam an, in der Phase der Anforderungen. Sehen Sie sich auch die Seite zu den SaaS-Plattformen an.

Quellen: Wie die Daten der Kunden in einem SaaS getrennt bleiben

In der Praxis: Wie die Daten der Kunden in einem SaaS getrennt bleiben

Projekt starten

Möchten Sie eine Website, die Ihre Besucher sofort verstehen? Wir helfen Ihnen, sie richtig zu organisieren.

Planen Sie eine neue Website?

So bauen wir Unternehmenswebsites