Wie das eigenständige App-Muster ermöglicht die Verwendung von Single-Tenant-Datenbanken eine starke Mandantenisolation. In jeder App, deren Modell nur Einzelmandantendatenbanken angibt, kann das Schema für eine bestimmte Datenbank angepasst und für ihren Mandanten optimiert werden. Diese Anpassung wirkt sich nicht auf andere Mandanten in der App aus. Möglicherweise benötigt ein Mandant Daten, die über die grundlegenden Datenfelder hinausgehen, die alle Mandanten benötigen. Darüber hinaus benötigt das zusätzliche Datenfeld möglicherweise einen Index. Das Ziel dieses Kurses besteht darin, eine Einführung in die Kernterminologie, Strategien und Muster zu geben, die beim Erstellen von SaaS-Produkten auf AWS angewendet werden, und ein Vokabular und ein mentales Modell zu erstellen, mit dem dann weitere technische SaaS-Inhalte tiefer eintauchen können. Dieses Lernmodul behandelt eine Einführung in die Grundprinzipien von SaaS, die Agilitätsmotive, die typischerweise hinter dem Wechsel einer Organisation zu einem SaaS-Bereitstellungsmodell stehen, die Betriebsansicht von SaaS und die zentralen architektonischen Elemente von SaaS-Umgebungen. Die meisten SaaS-Anwendungen greifen jeweils auf die Daten von nur einem Mandanten zu. Dieses Zugriffsmuster ermöglicht die Verteilung von Mandantendaten auf mehrere Datenbanken oder Shards, wobei alle Daten für einen Mandanten in einem Shard enthalten sind. In Kombination mit einem Datenbankmuster mit mehreren Mandanten ermöglicht ein Shardmodell eine nahezu unbegrenzte Skalierung.
Azure SQL-Datenbank verfügt über viele Verwaltungsfunktionen, die für die Verwaltung einer großen Anzahl von Datenbanken im Maßstab entwickelt wurden, z. B. über 100.000 Datenbanken. Diese Features machen das Datenbank-pro-Mandanten-Muster plausibel. Ein weiteres verfügbares Muster besteht darin, viele Mandanten in einer Datenbank mit mehreren Mandanten zu speichern. Die Anwendungsinstanz kann über eine beliebige Anzahl von Datenbanken mit mehreren Mandanten verfügen. Das Schema einer Datenbank mit mehreren Mandanten muss über eine oder mehrere Mandantenbezeichnerspalten verfügen, damit die Daten eines bestimmten Mandanten selektiv abgerufen werden können. Darüber hinaus erfordert das Schema möglicherweise einige Tabellen oder Spalten, die nur von einer Teilmenge von Mandanten verwendet werden. Statische Code- und Referenzdaten werden jedoch nur einmal gespeichert und von allen Mandanten gemeinsam genutzt. Dieses nächste Muster verwendet eine mehrinstanzenfähige Anwendung mit vielen Datenbanken, die alle Einzelmandantendatenbanken sind. Für jeden neuen Mandanten wird eine neue Datenbank bereitgestellt. Die Anwendungsebene wird vertikal skaliert, indem mehr Ressourcen pro Knoten hinzugefügt werden.
Oder die App wird horizontal horizontal skaliert, indem weitere Knoten hinzugefügt werden. Die Skalierung basiert auf der Arbeitsauslastung und ist unabhängig von der Anzahl oder Skalierung der einzelnen Datenbanken. Das einfachste Datenbankmuster mit mehreren Mandanten verwendet eine einzelne Datenbank, um Daten für alle Mandanten zu hosten. Wenn mehr Mandanten hinzugefügt werden, wird die Datenbank mit mehr Speicher- und Computeressourcen skaliert. Diese Skalierung könnte alles sein, was benötigt wird, obwohl es immer eine ultimative Skalierungsgrenze gibt. Lange bevor diese Grenze erreicht ist, wird die Datenbank jedoch schwerzuverwalten. Als Gegenleistung für die Zahlung der Miete erhält jeder Mieter Zugriff auf Ihre SaaS-Anwendungskomponenten und hat seine Daten im SaaS-System gespeichert.