Bearbeiten

Freigeben über


Architekturansätze für mehrinstanzenfähige Lösungen

Azure

Es gibt viele verschiedene Möglichkeiten, mehrinstanzenfähige Lösungen in Azure zu entwerfen und zu erstellen. In einem Extremfall können Sie jede Ressource in Ihrer Lösung für alle Ihre Mandanten freigeben. Im anderen Extremfall können Sie isolierte Ressourcen für jeden Mandanten bereitstellen. Es mag einfach erscheinen, separate Ressourcen für jeden Mandanten bereitzustellen, und es kann für eine kleine Anzahl funktionieren. Das bietet jedoch in der Regel keine Kosteneffizienz, und es kann schwierig werden, Ihre Ressourcen zu verwalten. Es gibt verschiedene Ansätze, die zwischen diesen beiden Extremen liegen, und alle sind mit Kompromissen in den Bereichen Skalierung, Isolation, Kosteneffizienz, Leistung, Implementierungskomplexität und/oder Verwaltbarkeit verbunden.

In diesem Abschnitt werden die Hauptkategorien von Azure-Diensten erläutert, die eine Lösung bilden – einschließlich Compute, Speicher und Daten, Netzwerk, Bereitstellungen, Identität, Messaging, künstliche Intelligenz und maschinelles Lernen sowie IoT. Für jede Kategorie werden die wichtigsten Muster und Ansätze beschrieben, die beim Entwerfen einer mehrinstanzenfähige Lösung in Betracht kommen, sowie einige zu vermeidende Antimuster.

Muster mit Bereitstellungsstempeln

Das Muster mit Bereitstellungsstempeln wird häufig in mehrinstanzfähigen Lösungen verwendet. Es umfasst die Bereitstellung einer dedizierten Infrastruktur für einen Einzelmandanten oder eine Mandantengruppe. Ein einzelner Stempel kann mehrere Mandanten enthalten oder für einen Einzelmandanten reserviert sein.

Diagramm eines Bereitstellungsstempelmusters. Jeder Mandant hat seinen eigenen Stempel, der eine Datenbank beinhaltet.

Bei Einzelmandantenstempeln ist das Muster mit Bereitstellungsstempeln meist einfach zu implementieren, da die einzelnen Stempel wahrscheinlich nichts von den anderen wissen, sodass keine mehrinstanzenfähige Logik oder Funktionen in die Anwendungsschicht integriert werden müssen. Wenn jeder Mandant seinen eigenen dedizierten Stempel hat, bietet dieses Muster den höchsten Grad an Isolierung und entschärft das Noisy Neighbor-Problem. Außerdem können Mandanten entsprechend ihrer Anforderungen konfiguriert oder angepasst werden, z. B. bei Anforderung einer bestimmten geopolitischen Region oder von Hochverfügbarkeit.

Bei Stempeln mit mehreren Mandanten müssen andere Muster berücksichtigt werden, um Mehrinstanzenfähigkeit innerhalb des Stempels zu verwalten, wobei das Noisy Neighbor-Problem weiterhin auftreten kann. Durch Verwendung des Musters mit Bereitstellungsstempel können Sie Ihre Lösung auch weiterhin skalieren, sobald sie wächst.

Das größte Problem beim Muster mit Bereitstellungsstempel bei Bereitstellung für einen einzelnen Mandanten sind in der Regel die Kosten der Infrastruktur. Bei Stempeln mit Einzelmandanten muss jeder Stempel über eigene Infrastruktur verfügen, die nicht mit anderen Mandanten gemeinsam genutzt wird. Sie müssen auch sicherstellen, dass die für einen Stempel bereitgestellten Ressourcen ausreichen, um die Spitzenlast der Workload dieses Mandanten zu erfüllen. Stellen Sie sicher, dass Ihr Preismodell die Kosten der Bereitstellung von Infrastruktur für den Mandanten ausgleicht.

Stempel mit Einzelmandanten funktionieren häufig gut, wenn es eine kleine Anzahl von Mandanten gibt. Wenn die Zahl Ihrer Mandanten wächst, ist es möglich, aber zunehmend schwieriger, einen Bestand von Stempeln zu verwalten (siehe diese Fallstudie als Beispiel). Das Muster mit Bereitstellungsstempel eignet sich, um einen Bestand mehrinstanzfähiger Stempel zu erstellen, die Vorteile beim Teilen von Ressourcen und Kosten bieten können.

Zur Implementierung des Musters der Bereitstellungsstempel müssen automatisierte Bereitstellungsansätze zum Einsatz kommen. Je nach Bereitstellungsstrategie können Sie Ihre Stempel innerhalb Ihrer Bereitstellungspipelines verwalten, indem Sie deklarative Infrastructure-as-Code-Lösungen wie Bicep bzw. ARM- oder Terraform-Vorlagen verwenden. Alternativ können Sie auch benutzerdefinierten Code zum Bereitstellen und Verwalten der einzelnen Stempel erstellen, z. B. mit den Azure SDKs.

Zielpublikum

Die Artikel in diesem Abschnitt richten sich an Lösungsarchitekten und leitende Entwickler von Anwendungen mit mehreren Mandanten. Dies schließt auch unabhängige Softwarehersteller (Independent Software Vendors, ISVs) und Startups ein, die SaaS-Lösungen entwickeln. Ein Großteil der Anleitungen in diesem Abschnitt ist generisch und gilt für mehrere Azure-Dienste innerhalb einer Kategorie.

Nächste Schritte

Es wird empfohlen, sich mit den Ansätzen zur Ressourcenorganisation in einer Lösung mit mehreren Mandanten vertraut zu machen, bevor Sie die Anleitungen zu bestimmten Kategorien von Azure-Diensten lesen.