Prüfliste für das Entwerfen und Erstellen von mehrinstanzenfähigen Lösungen in Azure
Wenn Sie Ihre mehrinstanzenfähige Lösung in Azure erstellen, müssen Sie zahlreiche Elemente berücksichtigen. Verwenden Sie diese Prüfliste als Startpunkt, um dazu beizutragen, Ihre mehrinstanzenfähige Lösung zu entwerfen und zu erstellen. Diese Prüfliste ist eine Begleitressource für die Artikelreihe Architecting multitenant solutions on Azure (Entwerfen von mehrinstanzenfähigen Lösungen in Azure). Die Prüfliste basiert auf den geschäftlichen und technischen Überlegungen und den fünf Säulen des Azure Well-Architected Frameworks.
Tipp
Nachdem Sie diese Checkliste durchgegangen sind, sollten Sie Ihr SaaS-Produkt anhand der SaaS Journey Review bewerten, indem Sie Ihr Verständnis der mandantenfähigen Architektur und deren Ausrichtung an den bewährten Methoden des SaaS-Betriebs analysieren.
Geschäftsüberlegungen
- Seien Sie sich darüber im Klaren, welche Art von Lösung Sie erstellen, z. B. Business-to-Business (B2B), Business-to-Consumer (B2C) oder Ihre Unternehmenssoftware, und wie sich Mandanten von Benutzern unterscheiden.
- Definieren Sie Ihre Mandanten. Seien Sie sich darüber im Klaren, wie viele Mandanten Sie anfänglich unterstützen werden, und berücksichtigen Sie ihre Wachstumspläne.
- Definieren Sie Ihr Preismodell, und stellen Sie sicher, dass es mit dem Verbrauch von Azure-Ressourcen durch Ihre Mandanten übereinstimmt.
- Erfahren Sie, ob Sie Ihre Mandanten in verschiedene Ebenen untergliedern müssen. Ebenen können über unterschiedliche Preise, Features, Leistungszusagen, geografische Standorte usw. verfügen.
- Entscheiden Sie sich basierend auf den Anforderungen Ihrer Kunden für die Mandantenmodelle, die für verschiedene Teile Ihrer Lösung geeignet sind.
- Wenn Sie bereit sind, verkaufen Sie Ihre mehrinstanzenfähige B2B-Lösung über den Microsoft Commercial Marketplace.
Überlegungen in Bezug auf die Zuverlässigkeit
- Lesen Sie die Azure Well-Architected Zuverlässigkeitsprüfliste, die für alle Workloads gilt.
- Machen Sie sich mit dem Noisy Neighbor-Antimuster vertraut. Verhindern Sie, dass einzelne Mandanten die Verfügbarkeit des Systems für andere Mandanten beeinträchtigen.
- Entwerfen Sie Ihre mehrinstanzenfähige Lösung für das erwartete Wachstumsniveau. Aber lassen Sie sich beim Erstellen nicht von unrealistischen Wachstumserwartungen mitreißen.
- Definieren Sie Servicelevel-Zielpunkte (SLOs) und optional Vereinbarungen zum Servicelevel (SLAs) für Ihre Lösung. SLAs und SLOs sollten auf den Anforderungen Ihrer Mandanten basieren.
- Testen Sie die Skalierung Ihrer Lösung. Stellen Sie sicher, dass die Leistung bei allen Lastebenen gut ist und dass sie ordnungsgemäß skaliert wird, wenn die Anzahl der Mandanten zunimmt.
- Wenden Sie Chaos Engineering-Prinzipien an, um die Zuverlässigkeit Ihrer Lösung zu testen.
Sicherheitshinweise
- Wenden Sie die Prinzipien von Zero Trust und der geringsten Rechte auf allen Ebenen Ihrer Lösung an.
- Stellen Sie sicher, dass Sie Benutzeranforderungen ordnungsgemäß Mandanten zuordnen können. Erwägen Sie, den Mandantenkontext als Teil des Identitätssystems oder mithilfe einer anderen Möglichkeit wie der Mandantenautorisierung auf Anwendungsebene zu verwenden.
- Entwurf für Mandantenisolation. Testen Sie Ihr Isolationsmodell kontinuierlich.
- Stellen Sie sicher, dass Ihr Anwendungscode mandantenübergreifenden Zugriff oder Datenlecks verhindert.
- Führen Sie fortlaufende Penetrationstests und Sicherheitscodeüberprüfungen durch.
- Machen Sie sich mit den Compliance-Anforderungen Ihrer Mandanten, einschließlich der Datenresidenz und aller Compliance- oder gesetzlichen Standards, die Sie erfüllen müssen, vertraut.
- Verwalten Sie Domänennamen ordnungsgemäß, und vermeiden Sie Sicherheitsrisiken wie verwaiste DNS und Unterdomänenübernahmeangriffe.
- Befolgen Sie die dienstspezifischen Anleitungen zur Mehrinstanzenfähigkeit.
Überlegungen zur Kostenoptimierung
- Lesen Sie die Azure Well-Architected Kostenoptimierungsprüfliste, die für alle Workloads gilt.
- Stellen Sie sicher, dass Sie den Verbrauch pro Mandant angemessen messen und mit Ihren Infrastrukturkosten korrelieren können.
- Antimuster vermeiden Antimuster umfassen das Nichtverfolgen von Kosten, das Nachverfolgen von Kosten mit unnötiger Genauigkeit, Echtzeitmessungen und die Verwendung von Überwachungstools für die Abrechnung.
Überlegungen zum optimalen Betrieb
- Verwenden Sie die Automatisierung, um den Mandantenlebenszyklus zu verwalten, z. B. Onboarding, Bereitstellung und Konfiguration.
- Machen Sie sich mit den Unterschieden zwischen Steuerungsebene und Datenebene in Ihrer mehrinstanzenfähigen Lösung vertraut.
- Finden Sie das richtige Gleichgewicht für die Bereitstellung von Dienstupdates. Berücksichtigen Sie sowohl die Anforderungen Ihrer Mandanten als auch Ihre eigenen betrieblichen Anforderungen.
- Überwachen Sie die Integrität des gesamten Systems sowie der einzelnen Mandanten.
- Konfigurieren und testen Sie Warnungen, damit sie Sie benachrichtigen, wenn bei bestimmten Mandanten Probleme auftreten oder deren Nutzungslimits überschritten werden.
- Organisieren Sie Ihre Azure-Ressourcen für Isolation und Skalierung.
- Vermeiden Sie Bereitstellungs- und Konfigurationsantimuster. Antimuster umfassen die Ausführung separater Versionen der Lösung für jeden Mandanten, die Hartcodierung mandantenspezifischer Konfigurationen oder Logik sowie manuelle Bereitstellungen.
Überlegungen zur Leistungseffizienz
- Lesen Sie die Checkliste zur Leistungseffizienz von Azure Well-Architected, die für alle Workloads gilt.
- Wenn Sie eine freigegebene Infrastruktur verwenden, sollten Sie planen, wie Sie Noisy Neighbor-Bedenken abschwächen. Stellen Sie sicher, dass ein Mandant die Leistung des Systems für andere Mandanten nicht reduzieren kann.
- Bestimmen Sie, wie Sie Compute-, Speicher-, Netzwerk- und andere Azure-Ressourcen skalieren, um die Anforderungen Ihrer Mandanten zu erfüllen.
- Berücksichtigen Sie die Skalierungslimits der einzelnen Azure-Ressourcen. Organisieren Sie Ihre Ressourcen entsprechend, um Antimuster der Ressourcenorganisation zu vermeiden. Entwerfen Sie Ihre Lösung beispielsweise nicht zu detailliert, um unrealistische Skalierungsanforderungen zu erfüllen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Arsen Vladimirskiy | Principal Customer Engineer
- Bohdan Cherchyk | Senior Customer Engineer
Andere Mitwirkende:
- John Downs | Principal Software Engineer
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
- Lesen Sie die Architekturüberlegungen für mehrinstanzenfähige Lösungen.
- Lesen Sie die Architekturansätze für Mehrinstanzenfähigkeit.
- Lesen Sie die dienstspezifischen Anleitungen zur Mehrinstanzenfähigkeit.
- Weitere Informationen finden Sie unter Ressourcen für Architekten und Entwickler mehrinstanzenfähiger Lösungen.