Freigeben über


Berechnen von SaaS-Workloads in Azure

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 Überlegungen zum Auswählen Ihres Hostingmodells, der betrieblichen Aspekte dieses Modells und der Optimierung der Technologieoptionen beschrieben, die Ihnen dabei helfen, Ihre Vereinbarungen auf Service-Level-Vereinbarungen (SLAs) und die Ziele auf Service-Level -Ebene (SLOs) zu erfüllen.

Auswählen einer Computeplattform

Die Auswahl der richtigen Computeplattform für Ihre SaaS-Workload ist wichtig, aber die Fülle der verfügbaren Optionen kann die Auswahl ü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 vollständige 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. Computeplattformen ausgleichen 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 Auslastungstests durch, um genauere Daten zu sammeln, um Ihre Modellierungsübung zu informieren.
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. Zielen Sie auf eine Lösung, die Sie im Laufe der Zeit durchlaufen können, um sich an die sich entwickelnden Geschäftlichen und technischen 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 Ressourcenfreigabe 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 laute Nachbarproblem beim Freigeben von Ressourcen zwischen Mandanten. Computeressourcen sind am meisten betroffen. Weitere Informationen finden Sie unter Noisy Neighbor Antipattern.

    Wenn Sie ein Mandantenmodell auswählen, sollten Sie die Kosteneinsparungen der Ressourcenfreigabe mit der Notwendigkeit in Einklang bringen, die Kundenleistung zu gewährleisten. Überfreigaberessourcen oder übermäßigen Verbrauch können die Kundenerfahrung 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, implementieren Sie eine ordnungsgemäße Ressourcengovernance, um sicherzustellen, dass die Mandantennutzung innerhalb der erwarteten Grenzwerte bleibt.

Entwurfsempfehlungen

Empfehlung Vorteil
Bewerten Sie die Isolationsfeatures der Computeplattform, um sicherzustellen, dass sie Die Anforderungen ihres Mandantenmodells erfüllt. Sie vermeiden die Überarbeitung Ihrer Plattform, indem Sie zuerst die kritische Konfiguration überprüfen.
Erzwingen Sie Ihr Isolationsmodell.

Seien Sie vorsichtig mit freigegebenen Ressourcen wie lokalen Datenträgercaches, Systemspeicher und externen Caches, da sie unbeabsichtigt Daten zwischen Mandanten freigeben 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.
Implementieren Sie Ressourcengovernance und -überwachung mit Sichtbarkeit von 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.

Um eine kostengünstige Skalierung ohne Leistungsverlust zu erzielen, verdichten Sie Ihre Mandanten auf so wenige Ressourcen wie möglich.
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 Computeschicht spielt einen großen Teil 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 Workloads. 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 Chaostechnik 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 mehrere Stempel freigeben. 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.