Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihre Software as a Service (SaaS)-Anwendung muss auf einer Computeplattform ausgeführt werden. Wie andere Komponenten in Ihrer Architektur müssen sie die Geschäftsanforderungen erfüllen und entsprechend Ihrem Geschäftsmodell entworfen werden. Die Wahl der Computeplattform ist eine wichtige Entwurfsentscheidung. Ihre Entscheidung wirkt sich auf die Kundenisolation, Leistung und Resilienz aus, und Ihre Computeplattform beeinflusst, wie Ihre gesamte SaaS-Lösung skalieren und wachsen kann.
In diesem Artikel werden die Aspekte bei der Auswahl Ihres Hostingmodells, die betrieblichen Aspekte dieses Modells sowie die Optimierung der Technologieoptionen beschrieben, die Ihnen dabei helfen, Ihre Service-Level-Agreements (SLAs) und Service-Level-Objectives (SLOs) einzuhalten.
Auswählen einer Computeplattform
Die Wahl der richtigen Computing-Plattform für Ihre SaaS-Workload ist wichtig, aber die Fülle der verfügbaren Optionen kann schnell überwältigend wirken. Die beste Plattform hängt von Faktoren wie Anwendungsarchitektur, Skalierung, Leistungsanforderungen und dem Mandantenisolationsmodell ab. Was für eine Anwendung optimal ist, ist möglicherweise nicht für eine andere geeignet.
Überlegungen zum Entwurf
Hostingmodell. Azure bietet verschiedene Hostingmodelle, in erster Linie infrastruktur as a Service (IaaS) und Plattform as a Service (PaaS), jede mit ihren eigenen Vorteilen und Kompromissen. Bewerten Sie die Anforderungen Ihrer Anwendung, und wählen Sie das am besten geeignete Modell aus.
IaaS bietet virtuelle Computer (VMs) und umfassende Kontrolle über sie, einschließlich Netzwerk und Speicher. Es erfordert jedoch das Verwalten und Patchen, was betriebsintensiv sein kann. Beispiele hierfür sind Skalierungssätze für virtuelle Computer und Azure Kubernetes Service (AKS)-Cluster.
Mit PaaS können Sie Anwendungen bereitstellen, ohne die zugrunde liegende Infrastruktur zu verwalten. Es enthält integrierte Features für die automatische Skalierung und den Lastenausgleich. Beispiele sind Azure-App Dienst- und Azure-Container-Apps.
PaaS-Dienste bieten im Vergleich zu IaaS weniger Kontrolle, was problematisch sein kann, wenn Ihre Anwendung eine bestimmte Konfiguration benötigt. Ihre Anwendung kann beispielsweise auf einem Betriebssystem ausgeführt werden, das vom PaaS-Dienst nicht unterstützt wird.
Workloadtyp. Einige Plattformen sind auf bestimmte Workloads spezialisiert, während andere vielseitig sind. Der App-Dienst ist beispielsweise für Webanwendungen konzipiert, während AKS allgemeiner ist. Sie kann Web-Apps, KI-Workloads und Batchberechnungsaufgaben hosten.
Entwickeln Sie Teamkompetenz. Große Änderungen können schwierig sein, wenn das Team keine Erfahrung mit der neuen Plattform hat. Bewerten Sie die Fähigkeiten Ihres Teams, und passen Sie sie ihren Plattformanforderungen an. Beginnen Sie mit einer einfachen Plattform und entwickeln Sie Ihre Architektur schrittweise, anstatt direkt zu einer erweiterten Option zu springen.
Wenn Sie beispielsweise eine containerisierte Anwendung erstellen, beginnen Sie mit Container-Apps für eine einfache Verwaltung. Da Ihre Anforderungen komplexer werden, können Sie zu AKS wechseln, wenn Sie im Laufe der Zeit ein besseres Verständnis der Plattform gewinnen.
Verwaltungsaufwand. Rechenplattformen schaffen ein Gleichgewicht zwischen Mehraufwand und Kontrolle. Mehr Verwaltungsverantwortung, die sich von Ihrem Team entfernt hat, bedeutet weniger Kontrolle über die Plattform.
IaaS bietet z. B. eine hohe Kontrolle über VMs, verfügt aber über einen erheblichen Mehraufwand. Wenn Ihre Anwendung in der Umgebung eines Kunden bereitgestellt wird, haben Sie möglicherweise eingeschränkten Zugriff auf Verwaltungsvorgänge. Bewerten Sie, ob diese Kompromisse akzeptabel und machbar sind.
Leistungsanforderungen. Verstehen Sie die Leistungsanforderungen Ihrer Anwendung, indem Sie CPU, Arbeitsspeicher, Netzwerk, einschließlich Bandbreite und Latenz, GPU und Verfügbarkeitsanforderungen modellieren. Sie sollten auch zukünftiges Wachstum in Betracht ziehen. Verwenden Sie diese Informationen, um die entsprechenden Computeressourcen auszuwählen, z. B. die Datenreihe und Größe von virtuellen Computern. Möglicherweise müssen Sie auch bestimmte Regionen auswählen, die bestimmte VM-Reihen unterstützen, um spezielle Anforderungen zu erfüllen.
Zuverlässigkeitsanforderungen. Berücksichtigen Sie die Zuverlässigkeitsfeatures Ihrer Computeplattform, und stellen Sie sicher, dass sie Ihre Zuverlässigkeitsziele erfüllen. Möglicherweise müssen Sie bestimmte Dienstebenen verwenden, um mehrere Instanzen Ihrer Lösung zu verwenden oder über Verfügbarkeitszonen hinweg bereitzustellen, um die Zuverlässigkeit zu erhöhen.
Informationen zum Definieren von Zuverlässigkeitszielen finden Sie in den RE:04-Empfehlungen.
Anwendungssicherheit und -compliance. Bewerten Sie die Sicherheitsfeatures und Compliance-Zertifizierungen jeder Computeplattform, um sicherzustellen, dass sie Ihren Anforderungen entsprechen. Wenn Sie z. B. ausgehenden Datenverkehr überwachen und filtern müssen, müssen Sie möglicherweise bestimmte Computedienste oder -ebenen auswählen.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Bewerten Sie die Berechnungsleistungsanforderungen, indem Sie die Dimensionen CPU, Arbeitsspeicher, Netzwerk und GPU-Skalierung schätzen. Führen Sie Lasttests durch, um genauere Daten zu erfassen, die als Grundlage für Ihre Modellierungsübung dienen. |
Diese Aufgaben helfen Ihnen, die geeignete Größenanpassung für Ihre Computeplattform auszuwählen und entsprechend zu skalieren, wenn die Auslastung des Systems zunimmt. |
| Bewerten Sie die Kenntnisse Ihres Teams, und beginnen Sie mit der am wenigsten komplexen Plattform, die Ihren Anforderungen entspricht, oder einer, mit dem das Team bereits vertraut ist. | Sie stellen einen reibungsloseren Betrieb sicher und vermeiden es, Ihr Team zu überlasten, indem Sie eine Computeplattform auswählen, mit der sie vertraut sind. |
| Seien Sie flexibel in Ihrem Design. Setzen Sie auf eine Lösung, die Sie im Laufe der Zeit schrittweise weiterentwickeln können, um sie an sich wandelnde geschäftliche und technische Anforderungen anzupassen. | Mit Flexibilität können Sie sich im Laufe der Zeit leichter an Änderungen und Verbesserungen anpassen. Sie können effektiv auf sich entwickelnde geschäftliche und technische Anforderungen reagieren. |
| Bewerten Sie die Gesamtkosten des Besitzes (TCO), einschließlich der Kosten des Betriebs der Lösung. | Sie haben ein klares Verständnis der Kosten, was bei der Planung Ihres Preismodells und der Sicherstellung von kostenwirksamen Vorgängen von entscheidender Bedeutung ist. |
| Bewerten Sie, ob Sie aufgrund Ihres Technologiestapels bestimmte Computeplattformen verwenden müssen. Einige Computeplattformen eignen sich besser für bestimmte Programmiersprachen, Tools und Betriebssysteme. Bemühen Sie sich, Plattformen zu verwenden, die Ihre Technologieentscheidungen nativ unterstützen. | Sie vermeiden die Kosten für die Neugestaltung Ihrer Architektur, was die Migration zu einer neuen Plattform umfassen kann. |
| Bewerten Sie die Zuverlässigkeitsfeatures der Plattform und berücksichtigen Sie die Garantien Ihres Clouddienstanbieters in Ihren SLOs. | Sie verringern das Risiko lokalisierter Rechenzentrumsausfälle, indem Sie Zuverlässigkeitsfeatures planen und Verfügbarkeitszonen verwenden, wenn diese verfügbar sind. |
Mandantenmodell und Isolation
Ihr SaaS-Geschäftsmodell bestimmt, ob Sie Ressourcen für Kunden hosten oder in der Umgebung des Kunden verwalten. Die meisten SaaS-Anbieter hosten Ressourcen im Auftrag ihrer Kunden, die Flexibilität im Computeplattformdesign ermöglichen. Isolieren Sie Kundenarbeitslasten effektiv, um die Kosteneffizienz zu optimieren, ohne die Benutzerfreundlichkeit oder Leistung zu beeinträchtigen.
Überlegungen zum Entwurf
Planen Sie Ihr Mandantenmodell. Ihr Mandantenmodell bestimmt die Ressourcenteilung zwischen Kunden und wird durch Ihre Geschäfts- und Preismodelle beeinflusst. Einzelmandantenmodelle haben höhere Kosten pro Kunde im Vergleich zu vollständigen Mehrinstanzenmodellen. Ihre Preise sollten diese Unterschiede widerspiegeln.
Kundenanforderungen. Einige Kunden haben möglicherweise spezifische Anforderungen für die Datenhaltung, Leistungsgarantien oder Sicherheitscompliance. Wenn diese Anforderungen höhere Isolationsstufen benötigen als üblich, sollten Sie berücksichtigen, wie die erhöhten Kosten in Ihrem Geschäftsmodell widergespiegelt werden.
Lautes Nachbarproblem. Beachten Sie das Noisy-Neighbor-Problem, wenn sich mehrere Mandanten Ressourcen teilen. Computeressourcen sind am meisten betroffen. Weitere Informationen finden Sie unter Noisy Neighbor Antipattern.
Wenn Sie ein Mandantenmodell auswählen, sollten Sie zwischen den Kosteneinsparungen durch gemeinsame Ressourcennutzung und der Notwendigkeit abwägen, die Performance für Kunden zu gewährleisten. Eine übermäßige gemeinsame Nutzung von Ressourcen oder das Zulassen eines übermäßigen Verbrauchs kann das Kundenerlebnis beeinträchtigen.
Kompromiss: Leistung und Kosten. Das Freigeben von Ressourcen für Kunden kann kosteneffizient sein, aber wenn einige Kunden mehr Ressourcen als erwartet verwenden, kann dieser Ansatz die Leistung für andere beeinträchtigen. Um dies zu verhindern, führen Sie eine geeignete Ressourcen-Governance ein, um sicherzustellen, dass die Nutzung durch Mandanten im erwarteten Rahmen bleibt.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Bewerten Sie die Isolationsfunktionen der Rechenplattform, um sicherzustellen, dass sie die Anforderungen Ihres Mandantenmodells erfüllt. | Sie vermeiden die Überarbeitung Ihrer Plattform, indem Sie zuerst die kritische Konfiguration überprüfen. |
| Setzen Sie Ihr Isolationsmodell durch. Seien Sie vorsichtig mit gemeinsam genutzten Ressourcen wie lokalen Festplatten-Caches, Systemspeicher und externen Caches, da sie unbeabsichtigt Daten zwischen Mandanten preisgeben können, wenn sie nicht ordnungsgemäß verwaltet werden. Für hohe Isolationsanforderungen erzwingen Sie die Isolation innerhalb der Computeplattform und in der Anwendung. |
Eine starke Isolation reduziert das Risiko von mandantenübergreifenden Datenlecks, einem schwerwiegenden Sicherheitsvorfall. |
| Führen Sie Ressourcen-Governance und -Überwachung ein, mit Einblick in Metriken auf Kundenebene. Überwachen Sie proaktiv den Ressourcenverbrauch jedes Kunden, um laute Nachbarprobleme zu erkennen und zu mindern. |
Sie verhindern, dass Probleme andere Kunden beeinträchtigen, indem Sie den Ressourcenverbrauch überwachen und Probleme frühzeitig verringern. |
Konfigurieren für Skalierbarkeit und Kosteneffizienz
Ihre Kunden können Ihre Anwendung mit unterschiedlichen Leistungsprofilen verwenden. Sie erwarten, dass die Anwendung steigende Benutzeranforderungen, umfangreiche Daten und komplexe Workloads verarbeiten kann, ohne die Geschwindigkeit und Leistung zu beeinträchtigen. Ihre Systemarchitektur muss skalierbarkeit und optimale Leistung gewährleisten, unabhängig davon, ob sie Hunderte oder Millionen von Benutzern verwaltet, und gleichzeitig leistungsanforderungen und -kosten ausgleichen.
Kompromiss: Leistung und Kosten. Die Verbesserung der Leistung umfasst in der Regel das Hinzufügen von Ressourcen, wodurch die Kosten erhöht werden. Überprüfen Sie Workloads ganzheitlich, um zu ermitteln, welche Ressourcen den größten Nutzen für die zusätzlichen Kosten bieten. Das Isolieren Ihres wichtigsten Kunden auf dedizierter Infrastruktur kann beispielsweise den zusätzlichen Aufwand wert sein, um Leistungsprobleme von anderen Workloads zu vermeiden.
Weitere Informationen zur Kostenverwaltung finden Sie unter Abrechnung und Kostenverwaltung für SaaS-Workloads in Azure.
Überlegungen zum Entwurf
Strategien zur horizontalen und vertikalen Skalierung. Horizontale und vertikale Skalierungsansätze sind für den Umgang mit erhöhter Last geeignet. Der von Ihnen verwendete Ansatz hängt von der Fähigkeit Ihrer Anwendung ab, über mehrere Instanzen hinweg zu skalieren.
- Die horizontale Skalierung umfasst das Hinzufügen weiterer Instanzen von Computeknoten. Ihre Architektur benötigt einen Lastenausgleich, um eingehenden Datenverkehr über mehrere Server oder Instanzen zu verteilen.
- Die vertikale Skalierung umfasst die Erhöhung von Ressourcen wie CPU und Arbeitsspeicher auf einem einzelnen Server. Verwenden Sie diesen Ansatz für zustandsbehaftete Anwendungen, die keine externen Zustandsspeicher wie Caches benötigen. Die vertikale Skalierung kann zu kurzen Dienstunterbrechungen führen und einen Ressourcengrenzwert auf einem einzelnen Server haben.
Weitere Informationen zur Skalierung und Partitionierung finden Sie in den PE:05-Empfehlungen.
Automatische Skalierung. Systeme müssen unterschiedliche Anforderungen effizient bewältigen. Da sich der Benutzerdatenverkehr erhöht, müssen Ihre Anwendungsressourcen skaliert werden, um die Leistung aufrechtzuerhalten. Wenn die Nachfrage verringert wird, reduzieren sich die Ressourcen, um die Kosten zu steuern, ohne sich auf die Benutzererfahrung zu auswirken. Faktoren wie CPU-Auslastung, Tageszeit oder eingehende Anforderungen führen zu diesen Anpassungen. Durch die automatische Skalierung können Sie die Leistung und die Kosten ausgleichen und die Auswirkungen der hohen Nachfrage auf andere Mandanten mindern.
Weitere Informationen zur zuverlässigen Skalierung finden Sie in den RE:06-Empfehlungen.
Kapazitätsplanung und Berechnungszuordnung. Das Onboarding neuer Kunden in Ihre SaaS-Workload verbraucht Ressourcenkapazität. Auch wenn Sie vertikal oder horizontal skalieren, erreichen Sie schließlich Grenzwerte wie Netzwerk- oder Speichereinschränkungen in der Skalierbarkeit Ihrer Lösung.
Hinweis
Mit dem Bereitstellungsstempelmuster können Sie mehrere unabhängige Instanzen Ihrer Lösung bereitstellen. Sie bietet eine weitere Skalierungsdimension. Es ist wichtig, die Kapazität der einzelnen Stempel zu verstehen, um zu bestimmen, wann mehr bereitgestellt werden soll. Dieses Konzept wird auch als Behälterverpackung bezeichnet.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Wählen Sie horizontale Skalierung über vertikale Skalierung aus. Die horizontale Skalierung ist oft weniger komplex, zuverlässiger und kostengünstiger als die vertikale Skalierung. | Die horizontale Skalierung ist häufig einfacher, zuverlässiger und kostengünstiger, sodass Sie eine Skalierung auf einen höheren Grad als die vertikale Skalierung ermöglichen. |
| Führen Sie Auslastungstests durch. | Die Simulation der Verwendung kann Ihnen dabei helfen, Engpässe und Skalierungsschwellenwerte zu identifizieren, bevor Sie sie für die Produktion bereitstellen. |
| Definieren Sie den Skalierungsschwellenwert für die Bereitstellung eines neuen Stempels, anstatt horizontal oder vertikal zu skalieren. Für eine kosteneffiziente Skalierung ohne Leistungseinbußen konsolidieren Sie Ihre Tenants auf möglichst wenige Ressourcen. |
Sie sind besser darauf vorbereitet, Wachstum über Ihre aktuelle Infrastruktur hinaus zu bewältigen. |
| Implementieren Sie die automatische Skalierung, sofern möglich. Legen Sie Regeln für die automatische Skalierung fest, um die Auslastung Ihrer Anwendung genau widerzuspiegeln. | Sie optimieren die Leistung und die Kosten, indem Sie bei Bedarf Ressourcen erhöhen und verringern. |
| Überwachen und Bewerten von Kundennutzungsmustern | Sie wissen, wann Sie Ihre Infrastruktur anpassen, um die Leistung zu steigern oder Kosten zu optimieren. |
| Implementieren Sie Zwischenspeicherungsmechanismen, sofern möglich. | Sie reduzieren die potenzielle Verarbeitungslast auf der Computeebene. |
| Verwenden Sie Kostenwarnungen. | Warnungen helfen Ihnen, probleme mit hohen Nutzungs- und Kostenproblemen frühzeitig zu erkennen. |
| Verwenden Sie Azure Reservations für Kunden mit langfristigen Verpflichtungen und garantierter Berechnungsauslastung für diesen gesamten Zeitraum. | Sie maximieren die Kosteneffizienz ihrer reservierten Kapazität. |
Entwurf mit Blick auf Resilienz
Die Resilienz Ihrer Compute-Ebene spielt eine große Rolle in Ihrer gesamten Resilienzstrategie. Ihre Anwendung sollte häufige Fehler automatisch und nahtlos ohne Auswirkungen des Benutzers tolerieren und wiederherstellen.
Überlegungen zum Entwurf
Zuverlässigkeitsanforderungen. Legen Sie klare Zuverlässigkeitsanforderungen fest. Zu diesen Anforderungen gehören interne Ziele oder SLOs sowie Kundenverpflichtungen oder SLAs, die häufig Uptime-Ziele wie 99,9 % pro Monat angeben.
Informationen zum Definieren von Zuverlässigkeitszielen finden Sie in den RE:04-Empfehlungen.
Bereitstellungsstrategie. Cloudressourcen werden in bestimmten geografischen Regionen bereitgestellt. In Azure sind Verfügbarkeitszonen isolierte Rechenzentrumssätze innerhalb einer Region. Zur Ausfallsicherheit stellen Sie Anwendungen in mehreren Verfügbarkeitszonen bereit. Die Bereitstellung über Regionen oder Cloudanbieter hinweg erhöht die Ausfallsicherheit, erhöht aber kosten- und betriebstechnische Komplexität.
Informationen zur Verwendung von Verfügbarkeitszonen und Regionen finden Sie in den RE:05-Empfehlungen.
Zustandslose Arbeitslasten. Um robuste Anwendungen bereitzustellen, müssen Sie in der Regel redundante Kopien an verschiedenen Stellen ausführen. Diese Aufgabe kann für zustandsbehaftete Workloads schwierig sein, die den Sitzungszustand beibehalten müssen. Ziel ist es, nach Möglichkeit zustandslose Workloads zu erstellen.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Behandeln sie vorübergehende Fehler in Ihrer Anwendung. | Sie erhöhen Ihre Verfügbarkeit, indem Sie sich schnell von geringfügigen Problemen erholen. |
| Wählen Sie zustandslose Anwendungen aus. Wenn Ihre Anwendung zustandsbehaftet sein muss, verwenden Sie einen Externen Zustandsspeichermechanismus wie einen Cache, um den Zustand zu speichern. | Sie verhindern Zustandsverluste, die durch eine Instanz verursacht werden, die nicht verfügbar ist, z. B. während eines fehlerhaften Lastenausgleichs oder während eines Ausfalls. |
| Verwenden von Verfügbarkeitszonen. | Sie erhöhen Ihre Resilienz, indem Sie lokalisierte Rechenzentrumsausfälle verringern. |
| Entwerfen Sie eine multiregionale Architektur, wenn es eine geschäftliche Begründung dafür gibt. | Sie erfüllen hohe Uptime-Anforderungen und unterstützen Benutzer in verschiedenen Regionen. |
| Führen Sie Chaostests durch. | Sie wissen besser, wo ihre Fehlerpunkte liegen und können sie korrigieren, bevor ein Ausfall auftritt. |
| Beschränken Sie die Verwendung von Komponenten, die von mehreren Stempeln gemeinsam genutzt werden. | Sie beseitigen einzelne Fehlerpunkte und reduzieren den potenziellen Einflussbereich für einen Ausfall. |
Zusätzliche Ressourcen
Multitenancy ist eine Kern-Geschäftsmethodik für das Entwerfen von SaaS-Workloads. Diese Artikel enthalten weitere Informationen zu Überlegungen zur Computeplattform:
Nächster Schritt
Erfahren Sie mehr über die Netzwerküberlegungen für SaaS-Workloads.