Empfehlungen zur Priorisierung der Leistung kritischer Flows

Gilt für die folgende Prüfliste zur Leistungseffizienz von Azure Well-Architected Framework:

PE:09 Priorisieren Sie die Leistung kritischer Flows. Bei der Zuordnung von Workloadressourcen und bei der Leistungsoptimierung sollten die Flows priorisiert werden, die die wichtigsten Geschäftsprozesse, Benutzer und Vorgänge unterstützen.

In diesem Leitfaden werden die Empfehlungen zum Priorisieren der Leistung kritischer Flows in einer Workload beschrieben. Kritische Flows stellen wichtige Geschäftsprozesse dar, die Umsatz generieren oder Vorgänge mit hoher Priorität fördern. Wenn Sie die Leistung kritischer Flows priorisieren, stellen Sie sicher, dass die Flows, die die größte Auswirkung haben, die ressourcen abrufen, die sie benötigen, bevor Sie Flows mit niedrigerer Priorität verwenden. Wenn diese Priorisierung nicht ausgeführt wird, kann sich dies unverhältnismäßig negativ auf die Workloadprioritäten und die Benutzerfreundlichkeit auswirken.

Definitionen

Begriff Definition
Flow In einer Workload die Sequenz von Aktionen, die eine bestimmte Funktion ausführt. Ein Flow umfasst das Verschieben von Daten und die Ausführung von Prozessen zwischen Komponenten der Workload.
Prioritäre Warteschlangenverarbeitung Der Vorgang der Verarbeitung von Aufgaben mit hoher Priorität vor Aufgaben mit niedriger Priorität.
Ratenbegrenzung Der Akt der Einschränkung, wie viele Anforderungen auf eine Ressource zugreifen können.
Systemflow Der Informations- und Prozessfluss innerhalb eines Systems. Das System folgt diesem Ablauf automatisch, um Benutzerflows oder Workloadfunktionen zu aktivieren.
Benutzerflow Die Sequenz, die ein Benutzer zum Ausführen einer Aufgabe befolgt.

Wichtige Entwurfsstrategien

Kritische Flows beziehen sich auf die wichtigsten Benutzerflows für Kunden oder die System- und Datenflüsse für Vorgänge, die für die Workloadfunktionalität von entscheidender Bedeutung sind. Diese Flows können Aktionen wie Benutzerregistrierungen, Anmeldungen, Produktkäufe, den Zugriff auf Seiten hinter einer Paywall oder einen anderen Schlüsselpfad oder -prozess innerhalb Ihrer Workload umfassen.

Kritische Flows wirken sich erheblich auf die Benutzererfahrung oder den Geschäftsbetrieb aus. Kritische Flows haben höhere Leistungsziele und Vereinbarungen zum Servicelevel als nicht kritische Flows. Wenn Ressourcen begrenzt sind, sollten nicht kritische Flows zur Ressourcennutzung für kritische Flows führen. Sie müssen alle Flows identifizieren, überwachen und priorisieren, bevor Sie kritische Flows isolieren und optimieren.

Identifizieren aller Flows

Der erste Schritt bei der Priorisierung der Leistung kritischer Flows besteht darin, alle Flows innerhalb Ihrer Workload zu identifizieren. Bei der Flussidentifizierung werden alle Benutzerpfade und Komponentenkommunikation systematisch zugeordnet und verstanden. Der Schwerpunkt liegt auf dem Verständnis der Leistungsmetriken und der potenziellen Auswirkungen von Flows auf die Workloadleistung.

Indem Sie die Workload in diskrete Flows aufteilen, können Sie Leistungsengpässe, ineffiziente Ressourcennutzung und Möglichkeiten zur Leistungsoptimierung ermitteln. Dieses Wissen deckt Bereiche der erforderlichen Verbesserungen auf und ist der erste Schritt zur Identifizierung kritischer Flows. Weitere Informationen finden Sie unter Identifizieren und Bewerten von Benutzer- und Systemflows.

Überwachen von Flussleistungsmetriken

Nachdem Sie alle Flows innerhalb Ihrer Workload identifiziert haben, müssen Sie Leistungsmetriken für jeden Flow sammeln und diese Metriken überwachen. Flowmetriken bieten Einblicke in Antwortzeiten, Fehlerraten und Durchsatz. Das Ziel besteht darin, leistungsbezogene Metriken konsistent zu beobachten und aufzuzeichnen, um Ihr Verständnis der Auswirkungen jedes Flows auf die Workloadleistung weiter zu verfeinern. Zum Überwachen von Flussmetriken können Sie die folgenden Tools verwenden, um Daten zu sammeln:

  • Analyse- und Nachverfolgungstools: Diese Tools bieten Einblicke in das Benutzerverhalten und die Interaktionen in Ihrer Anwendung. Durch die Analyse von Benutzerdaten können Sie die häufigsten Flows, Engpässe oder potenzielle Probleme identifizieren.

  • Tools zur Anwendungsleistungsüberwachung (Application Performance Monitoring, APM): Verwenden Sie APM-Tools, um die Leistung Ihrer Anwendung zu überwachen und nachzuverfolgen, wie Flows ausgeführt werden. Diese Tools bieten Einblick in Antwortzeiten, Fehler und andere Leistungsmetriken, sodass Sie kritische Flows identifizieren und deren Leistung optimieren können.

  • Protokollierungs- und Debugtools: Verwenden Sie diese Tools, um Protokolle und Debuginformationen zu erfassen und zu analysieren, während Ihre Anwendung ausgeführt wird. Überprüfen Sie Protokolle und Debuginformationen, um nachzuverfolgen, wie Flows ausgeführt werden, und um Probleme oder Fehler zu identifizieren.

Identifizieren kritischer Flows

Mit den verfügbaren Leistungsdaten können Sie damit beginnen, alle Flows zu ordnen und die kritischen Flows zu identifizieren. Die Identifizierung kritischer Flows umfasst die Bewertung der Leistungsauswirkungen und der Kritikalität jedes Flusses. Eine effektive Flusspriorisierung stellt sicher, dass die wichtigsten Flows die Ressourcen erhalten, die vor weniger kritischen Flows benötigt werden. Führen Sie die folgenden Schritte aus, um Flows in Ihrer Anwendung zu priorisieren:

  • Identifizieren der geschäftlichen Auswirkungen: Beginnen Sie mit der Bewertung der Bedeutung der einzelnen Abläufe innerhalb Ihres Betriebs. Konzentrieren Sie sich darauf, wie jeder Flow mit Ihren Geschäftszielen, seinen Auswirkungen auf die Benutzer und den potenziellen negativen Auswirkungen einer schlechten Leistung übereinstimmt. Für instance kann ein kostenloser Diensttarif zwar mehr Benutzer anziehen, aber ein kostenpflichtiger Tarif könnte für Ihre Geschäftsziele wichtiger sein.

    Berücksichtigen Sie außerdem die Leistungsbeeinträchtigungen eines Flusses über einen oder mehrere Geschäftsprozesse hinweg. Mehrere Flows können einen einzelnen Geschäftsprozess unterstützen, aber häufig hat ein Flow einen erheblichen Einfluss auf die Leistung dieses Prozesses. Sie möchten die Flows identifizieren, die sich am stärksten auf die Leistung auswirken. Umgekehrt kann ein einzelner Flow mehrere Prozesse untermauern. In solchen Fällen beeinflusst die Leistung dieses Flusses direkt die Wirksamkeit aller verwandten Prozesse, und es ist wahrscheinlich ein kritischer Fluss.

  • Analysieren von Leistungsdaten: Analysieren Sie die Leistungsmetriken, die jedem Flow zugeordnet sind. Suchen Sie nach Mustern, Anomalien oder herausragenden Metriken, die Einblicke in die Effizienz und Wichtigkeit des Flows geben können. Beispielsweise sind Systemflows mit erheblicher Auslastung wahrscheinlich wichtige Flows.

  • Bewertung der Kritikalität zuweisen: Basierend auf den Geschäftswirkungs- und Leistungsindikatoren sollten Sie die Flows priorisieren. Verwenden Sie kritikalitätsbewertungen von "Hoch", "Mittel" und "Niedrig". Flows mit erheblichen Geschäftlichen Auswirkungen oder hoher Leistungsnachfrage sollten die Bewertung "Hoch" erhalten. Diese Flows sind Ihre wichtigen Flows. Konzentrieren Sie sich auf Flows mit hohem Benutzerdatenverkehr oder wirken sie sich direkt auf die Umsatzgenerierung aus. Die folgende Tabelle enthält Merkmale kritischer (hoch) und nicht kritischer Flüsse (Mittel bis Niedrig).

Kritische Flows Nicht kritische Flows
Hohe Nutzung Geringe Nutzung
Unternehmenskritisch Nicht unternehmenskritisch
Teure Vorgänge Kleine Vorgänge
Zeitabhängig Nicht zeitabhängig
Bereitstellung Vorproduktion
Echtzeitverarbeitung Batchverarbeitung
Latenz vertraulich Nicht latenzempfindlich
Zahlender Benutzer Nicht zahlender Benutzer
Premium-Tarif Basic-Tarif
Wichtige Aufgaben Nicht erforderliche Aufgaben
Konten mit hohem Umsatzaufkommen Konten mit geringem Umsatz

Isolieren kritischer Flows

Beim Isolieren kritischer Flows geht es darum, dedizierte Ressourcen oder Kapazitäten zur Unterstützung kritischer Flows bereitzustellen. Sie möchten Ressourcen und Aufmerksamkeit auf die Flows zuweisen, die für eine optimale Benutzererfahrung oder signifikante Geschäftsergebnisse unerlässlich sind. Das Ziel besteht darin, sicherzustellen, dass kritische Flows genügend Rechenleistung, Netzwerkbandbreite und Ressourcen erhalten, um effizient und effektiv zu arbeiten. Indem Sie kritische Flows isolieren, können Sie die Ressourcen, die kritische Flows unterstützen, einfacher verwalten. Hier finden Sie Empfehlungen zum Isolieren kritischer Flows:

  • Ressourcensegmentierung: Erstellen Sie separate Ressourcen für kritische Flows, sodass sie unabhängig ohne Störungen durch andere Prozesse arbeiten können. Beispielsweise können Sie kritische Flows in dedizierten Netzwerksegmenten isolieren oder dedizierte Server verwenden, um die Verarbeitungsanforderungen dieser Flows zu erfüllen. Dieser Ansatz trägt dazu bei, zu minimieren, wie sich nicht kritische Flows negativ auf kritische Flows auswirken können.

  • Logische Segmentierung: Verwenden Sie Virtualisierungs- und Containerisierungstools wie Docker oder Kubernetes, um Flows auf Softwareebene zu isolieren. Sie können kritische Flows in virtuelle Computer (VMs) unterteilen. Auf diese Weise erstellen Sie eine isolierte Umgebung, wodurch Abhängigkeiten und potenzielle Störungen durch andere Flows reduziert werden.

  • Kapazitätszuordnung: Weisen Sie für kritische Flows explizit einen festen Satz von Kapazität zu, z. B. CPU, Arbeitsspeicher und Datenträger-E/A. Durch diese Zuordnung wird sichergestellt, dass kritische Flows immer über genügend Ressourcen verfügen, um effizient zu arbeiten. Legen Sie Ressourcenkontingente oder -grenzwerte mithilfe von Orchestrierungsplattformen fest. Indem Sie Ressourcen explizit kritischen Flows zuweisen, verhindern Sie Ressourcenkonflikte und priorisieren deren Ausführung.

Kompromiss: Die Ressourcensegmentierung wirkt sich auf die Kosten aus. Wenn Sie Ressourcen für einen Flow bereitstellen, erhöhen Sie häufig die Kosten und lassen einige Ressourcen nicht ausgelastet. Um die Leistungsverbesserungen für kritische Flows zu rechtfertigen, muss die Zunahme der geschäftlichen Auswirkungen den Anstieg der Kosten überwiegen.

Optimieren der Kapazitätszuordnung

Wenn Sie kritische Flows nicht isolieren können, besteht die nächstbeste Option darin, kritische Flows beim Zugriff auf die verfügbare Kapazität zu priorisieren. Bei der Optimierung der Kapazitätszuordnung geht es darum, die verfügbare Kapazität basierend auf ihrer Wichtigkeit strategisch auf verschiedene Flows zu verteilen. Die Kapazität umfasst CPU, Arbeitsspeicher, Speicher und Netzwerkbandbreite. Das Ziel besteht darin, sicherzustellen, dass die kritischsten Flows (höchste Priorität) die erforderliche Kapazität für einen effektiven Betrieb erhalten. Ziehen Sie die folgenden Strategien in Betracht, um zu entscheiden, wie Kapazität zugewiesen werden soll:

  • Bewerten der Ressourcenkapazität: Bewerten Sie, wie viel Ressourcenkapazität den Flows zugeordnet werden kann. Die Kapazität kann Ressourcen wie CPU, Arbeitsspeicher, Speicher und Netzwerkbandbreite umfassen. Machen Sie sich mit den Einschränkungen ihrer Infrastruktur oder Umgebung vertraut.

  • Analysieren der Flowanforderungen: Analysieren Sie die Ressourcenanforderungen jedes Flows. Verstehen der Ressourcen, die der Flow benötigt, um effizient zu arbeiten. Identifizieren Sie für jeden Flow die Ressourcenanforderungen, z. B. CPU-Auslastung, Arbeitsspeicheranforderungen und Netzwerkbandbreite.

  • Priorisieren von Zuordnungen: Passen Sie die verfügbare Ressourcenkapazität den Ressourcenanforderungen der Flows an. Ordnen Sie Ressourcen basierend auf Den Flussprioritäten zu, um sicherzustellen, dass Flows mit höherer Priorität die erforderlichen Ressourcen erhalten, um ihre Anforderungen zu erfüllen. Verstehen Sie, wo Ihre strengsten Einschränkungen liegen, und optimieren Sie die Kapazitätszuordnungen, wo sie benötigt werden. Beispielsweise können Warteschlangen nur einige Nachrichten pro Minute verarbeiten, aber einige Speichergrenzwerte sind schwer zu erreichen.

  • Ratenbegrenzung verwenden: Um sicherzustellen, dass kritische Flows die Ressourcen nutzen können, die sie zum Erreichen ihrer Leistungsziele benötigen, wenden Sie Ratenlimits auf nicht kritische Flows und Aufgaben an. Ratenlimits beschränken die Anzahl von Anforderungen mit niedrigerer Priorität, und Benutzer können an eingeschränkte Ressourcen senden. Sie können beispielsweise Ratenbegrenzungsanforderungen für nichtpriorität an eine API durchführen. Weitere Informationen finden Sie unter Ratenbegrenzungsmuster und Ratenbegrenzung eines HTTP-Handlers in .NET.

  • Prioritätswarteschlangenverarbeitung verwenden: Bei der Verarbeitung von Prioritätswarteschlangen wird bestimmten Anforderungen hohe Priorität eingeräumt. Warteschlangen verfügen in der Regel über eine FIFO-Struktur (First In, First Out), aber Sie können Ihre Anwendung aktualisieren, um Nachrichten, die sie der Warteschlange hinzufügt, eine Priorität zuzuweisen. Verwenden Sie diese Funktion, um kritische Flows und Benutzer zu priorisieren. Weitere Informationen finden Sie im Muster „Prioritätswarteschlange“.

Risiko: Es kann eine Herausforderung sein, die Anforderungen kritischer Flows mit der Gesamtleistung einer Workload in Einklang zu bringen. Obwohl Sie kritische Flows priorisieren sollten, sollten Sie nicht kritische Flows nicht vernachlässigen. Die Gesamtleistungseffizienz einer Workload hängt von allen Flows ab. Vernachlässigte nicht kritische Flows können Zu Problemen führen, die sich auf alle Benutzer auswirken. Zu viel Rauschen von nicht wesentlichen Elementen stiehlt die Aufmerksamkeit kritischer Elemente. Aber zu wenig Rauschen könnte die gesamte Workload beeinträchtigen. Die Datenmenge und die Anzahl der Warnungen sollten diese ausgewogenen Prioritäten widerspiegeln.

Azure-Erleichterung

Identifizieren und Überwachen von Flows: Azure bietet verschiedene Lösungen, mit denen Sie die Leistung kritischer Flows in Ihrer Workload überwachen können. Azure Monitor, Azure Monitor-Protokolle und Azure-Anwendung Insights sind einige der Dienste, die umfassende Überwachungsfunktionen für verschiedene Arten von Anwendungen und Workloads bieten.

Optimieren von Kapazitätszuordnungen: Einige Azure-Dienste unterstützen Ressourcensegmentierung, logische Segmentierung und Techniken zur Kapazitätszuordnung, um Kapazität und Ressourcen kritischen Flows zuzuordnen. Sie können kritische Flows durch Techniken wie das Erstellen separater Ressourcen, die Erhöhung der Dichte, die Verwendung von Virtualisierung und Containerisierung und die explizite Zuweisung von Ressourcen zu kritischen Flows isolieren.

Einige Azure-Dienste, z. B. Azure API Management, bieten integrierte Richtlinien für die Ratenbegrenzung. Azure bietet detaillierte Anleitungen und eine Beispielimplementierung des Entwurfsmusters für die Ratenbegrenzung.

Azure unterstützt die Verarbeitung von Prioritätswarteschlangen. Azure Functions bietet ereignisgesteuerte Funktionen, die Sie auf verschiedene Weise auslösen können, z. B. durch eine neue Nachricht in einer Warteschlange oder einem Thema. Kombinieren Sie Azure Functions mit Azure Queue Storage oder Azure Service Bus, um Nachrichten basierend auf ihrer Priorität zu verarbeiten.

Prüfliste zur Leistungseffizienz

Sehen Sie sich den vollständigen Satz von Empfehlungen an.