Empfehlungen zur Optimierung der Flowkosten

Gilt für diese Empfehlung für die Kostenoptimierung in Azure Well-Architected Framework:

CO:09 Optimieren Sie die Flowkosten. Richten Sie die Kosten für jeden Flow an der Flusspriorität aus. Berücksichtigen Sie beim Priorisieren von Flows die Features, Funktionen und nicht funktionalen Anforderungen jedes Flows. Die Optimierung der Flowausgaben erfordert häufig strategische Kompromisse.

In diesem Leitfaden werden die Empfehlungen zum Optimieren der Kosten für die einzelnen Flows in Ihrer Workload beschrieben. Die Kostenoptimierung der Flows in einer Workload umfasst die strategische Zuordnung und Verwaltung von Ressourcen, um die Ausgaben zu minimieren und gleichzeitig die Leistung aufrechtzuerhalten. Diese Optimierung ist von entscheidender Bedeutung, da sie eine effiziente Nutzung der investierten Ressourcen gewährleistet, unnötige Ausgaben reduziert und die Gesamtrendite für die Infrastruktur verbessert. Wenn Sie die Flows in einer Workload nicht kostenoptimieren, riskieren Sie eine Überlastung der Ressourcen, was zu überhöhten Betriebskosten und einer geringeren Rentabilität führt.

Definitionen

Begriff Definition
Entkoppeln Die Strategie, einen Flow aus einer Ressource zu entfernen, die mehrere Flows enthält, und ihn in einer separaten Ressource zu platzieren.
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.
Systemflow Der Informations- und Prozessfluss innerhalb eines Systems. Das System folgt diesem Ablauf automatisch, um Benutzerflows oder Workloadfunktionen zu aktivieren.
Benutzerflow Die Pfade oder Sequenzen von Aktionen, die Benutzer innerhalb einer Anwendung oder eines Systems ausführen.

Wichtige Entwurfsstrategien

Investieren Sie mehr in Flows mit hoher Priorität als in Flows mit niedrigerer Priorität. Das Ausrichten von Flusspriorität und Ausgaben kann das Entkoppeln von Flows umfassen, die sich derzeit dieselbe Ressource teilen. Dies kann auch das Kombinieren von Flows umfassen, die ähnliche Anforderungen haben, aber auf separaten Ressourcen ausgeführt werden. Angenommen, Sie verfügen über eine Webanwendung, die mehrere Flows enthält, z. B. Benutzerregistrierung, Anmeldung und Datenverarbeitung. Diese Flows werden auf einem einzelnen Server ausgeführt, obwohl sie unterschiedliche Ressourcenanforderungen haben. Zum Optimieren von Kosten und Leistung können Sie Flows trennen oder Flows kombinieren:

  • Separate Flows. Beispielsweise können Sie den Benutzerregistrierungsflow von den anderen entkoppeln und ihn auf einen dedizierten, kostengünstigeren Server verschieben. Dieser Flow ist wichtig, aber nicht ressourcenintensiv, daher ist er ein guter Kandidat für einen kostengünstigeren Server.

  • Kombinieren sie Flows. Beispielsweise können Sie die Anmelde- und Datenverarbeitungsflows kombinieren, die beide höhere Ressourcenanforderungen aufweisen, und sie zusammen auf einem Hochleistungsserver ausführen. Durch die Kombination dieser Flows kann der Server die ressourcenintensiven Anforderungen beider Flows effizient bewältigen. Es optimiert Leistung und Kosten.

In einer Workload können verschiedene Arten von Flows oder Pfaden vorhanden sein, die Sie berücksichtigen müssen. Dieser Leitfaden konzentriert sich auf die folgenden Flusstypen:

  • Systemflüsse. Die Optimierung von Systemflüssen umfasst die Optimierung der Kommunikation und Interaktion zwischen Systemkomponenten, die Minimierung von Engpässen und die Sicherstellung einer effizienten Ressourcennutzung.

  • Benutzerflows. Die Optimierung von Benutzerflüssen umfasst die Verbesserung der Benutzerfreundlichkeit, das Reduzieren von Reibungspunkten und die Gewährleistung einer reibungslosen Navigation und Interaktion innerhalb der Anwendung oder des Systems.

Erstellen eines Bestands von Flows

Eine Flussinventur ist eine umfassende Liste und Beschreibung aller Sequenzen von Aktionen, Datenübergängen und Systeminteraktionen innerhalb einer Workload. Ein Flussbestand ist der erste Schritt, um sicherzustellen, dass Investitionen an der Priorität von Flows ausgerichtet sind. Sie sollten Flows nur optimieren, wenn Sie ihren Zweck und ihre Abhängigkeiten vollständig verstehen. Im Folgenden finden Sie Schritte zum Erstellen einer Bestandsaufnahme von Workloadflows:

  1. Dokumentflüsse. Beginnen Sie damit, alle vorhandenen Flows in Ihrer Workload zu dokumentieren und aufzulisten, um einen Überblick über den umfassenden Zustand des Systems zu erhalten. Schließen Sie jede Sequenz von Aktionen, Datenübergängen und Systeminteraktionen ein. Machen Sie sich mit jeder Komponente vertraut, z. B. externe Dienste, Datenbanken, Middleware und Integrationen von Drittanbietern. Darüber hinaus können Sie das Volumen der Anforderungen im Laufe der Zeit nachverfolgen oder schätzen.

  2. Visualisieren sie Flows. Um eine klarere Perspektive zu erhalten, stellen Sie Ihre Ergebnisse visuell dar, möglicherweise in Flussdiagrammen oder Diagrammen. Visualisierungen helfen Ihnen, die Abhängigkeiten zwischen Komponenten zu erkennen. Erwägen Sie, ein Tool wie Visio zu verwenden, um Sie bei den Visualisierungen zu unterstützen.

  3. Kategorisieren von Flows. Bündeln Sie ähnliche Flows unter Berücksichtigung von Attributen wie ihrer Funktionalität (z. B. Authentifizierung, Datenabruf und Transaktionsverarbeitung), der Kritikalität für das Unternehmen oder der von ihnen verwendeten Ressourcen (CPU, Arbeitsspeicher oder Bandbreite).

Priorisieren von Flows

Die Flusspriorisierung ist der Prozess der Klassifizierung von Flows basierend auf ihrem Einfluss auf Geschäftsergebnisse, auswirkungen auf die Benutzererfahrung und die ressourcenbezogenen Ressourcen. Kritische Flows erfordern häufig eine höhere Verfügbarkeit, schnellere Wiederherstellungszeiten und eine bessere Leistung, um Workloadziele zu erreichen. Durch Priorisieren von Flows können Sie die Ausgaben besser an der Flusspriorität ausrichten. Um Flows zu priorisieren, erwägen Sie die folgenden Schritte:

  • Identifizieren des Flusswerts. Wenn Sie die Kosten für den Workloadfluss optimieren, müssen Sie den Flow identifizieren, der den größten Nutzen bietet. Sie möchten nicht mehr ausgeben, als ein Flow wert ist. Anstatt einfach Kosten zu senken, sollten Sie kostenverlagern, um die wertvolleren Flows zu priorisieren. Beispielsweise ist Ihr Checkout-Flow für Unternehmen von entscheidender Bedeutung, der Kaufverlauf jedoch nicht. Sie sollten dem Auscheckvorgang mehr Ressourcen und Budget zuweisen.

    Flows mit niedriger Priorität haben geringere Erwartungen an Verfügbarkeit, Wiederherstellung und Leistung. Sie können die Kosten senken, indem Sie günstigere Konfigurationen verwenden, um die Ausgaben für Leistung, Verfügbarkeit oder Geschäftskontinuität zu reduzieren.

  • Berücksichtigen Sie Flowmetriken. Wenn Sie Schwierigkeiten haben, Ihre Flows zu priorisieren, sollten Sie die Verfügbarkeits- und Wiederherstellungsziele berücksichtigen, die Sie ihnen zugewiesen haben. Kritische Flows haben häufig Hohe Verfügbarkeitsanforderungen und Vereinbarungen zum Servicelevel (Service Level Agreements, SLAs). Flows, die einem niedrigeren RPO und RTO zugeordnet sind, sind wichtiger als Flows mit einer höheren RPO und RTO.

Optimieren von unabhängigen Flows

Manchmal werden Ihre Flows bereits auf verschiedenen Ressourcen ausgeführt. In diesen Fällen können Sie ausgaben einfacher bewerten und optimieren. Bewerten Sie die Komponenten und Prozesse, die an jedem unabhängigen Ablauf beteiligt sind, um zu ermitteln, ob es Möglichkeiten gibt, sie zu optimieren oder zu vereinfachen. Führen Sie die folgenden Schritte aus, um unabhängige Flows zu optimieren:

  • Vermeiden Sie unnötige Komponenten. Entfernen Sie alle zusätzlichen Elemente, die nicht zur Kernfunktionalität des Flusses beitragen, und reduzieren Sie so Komplexität und Kosten.

  • Gestalten Sie den Flow neu. Erwägen Sie, die Architektur des Flusses neu zu gestalten, um seine Effizienz zu verbessern. Sie können z. B. die Reihenfolge der Vorgänge ändern, die Latenz verringern oder die Datenübertragungsgeschwindigkeit verbessern.

  • Wählen Sie eine geeignete Leistungsebene aus. Unterschiedliche Flows können unterschiedliche Anforderungen in Bezug auf Verarbeitungsgeschwindigkeit, Arbeitsspeicher oder andere Ressourcenmetriken haben. Stellen Sie sicher, dass Sie eine Ressourcenebene auswählen, die den spezifischen Anforderungen jedes Flows gut entspricht.

  • Passen Sie Skalierungseinstellungen an. Wenn ein Flow eine variable Nachfrage aufweist, sollten Sie die automatische Skalierung implementieren, um Ressourcen dynamisch an Echtzeitanforderungen anzupassen und so die Kosten zu optimieren.

  • Optimieren sie Konfigurationen. Optimieren Sie andere Einstellungen, z. B. Netzwerk- oder Datenspeicheroptionen, um die Leistungs- und Budgetanforderungen des Flows besser anzupassen.

Trennen unterschiedlicher Flows

Das Trennen unterschiedlicher Flows auf verschiedene Ressourcen ist ein Prozess der Zuordnung unterschiedlicher Aufgaben mit unterschiedlichen Berechnungsanforderungen zu dedizierten Ressourcen. Ungleiche Flows sind Flows mit unterschiedlichen Attributen. Diese Attribute können Rechenanforderungen, Datenabhängigkeiten, E/A-Vorgänge, Latenzempfindlichkeit, Sicherheitsanforderungen und Complianceanforderungen umfassen. Es ist oft kostengünstiger, verschiedene Arten von Flows für separate Ressourcen auszuführen. Dies ermöglicht eine präzise Ressourcenzuweisung für jeden Flow, was unnötige Ausgaben reduziert und maximale Effizienz gewährleistet.

Erwägen Sie, ungleiche Flows zu trennen, die derzeit kombiniert werden. Diese Trennung erhöht die Skalierbarkeit, Fehlertoleranz und Anpassungsfähigkeit und optimiert auch die Kosten. Indem Sie sicherstellen, dass jeder Flow unabhängig funktioniert, reduzieren Sie Störrisiken und können Ressourcen kosteneffizienter auf Grundlage der Priorität jedes Flows zuordnen. Angenommen, Sie stellen CRM (Benutzerfluss) mit einer Daten-Engine (Datenfluss) zusammen. Benutzerdatenverkehr an das CRM-System während der Geschäftszeiten kann die Daten-Engine verlangsamen. Wenn Sie Flows entkoppeln, kann die Daten-Engine jede Komponente oder jeden Dienst unabhängig vom Workloadbedarf skalieren. Diese Entkopplung optimiert die Ressourcenzuordnung und reduziert die Kosten.

Kombinieren ähnlicher Flows

Das Kombinieren ähnlicher Flows auf einer einzelnen Ressource ist ein Prozess der Konsolidierung von Aufgaben oder Prozessen mit vergleichbaren Attributen und der Verwendung freigegebener Ressourcen für diese. Diese Strategie beseitigt Redundanzen und sorgt für einen effizienteren Ressourceneinsatz, was zu erheblichen Kosteneinsparungen führt. Ähnliche Typen von Flows verwenden ähnliche Attribute. Sie können die gleichen Attribute in Betracht ziehen, die Sie betrachten, wenn Sie unterschiedliche Flows trennen: Berechnungsanforderungen, Datenabhängigkeiten, E/A-Vorgänge, Latenzempfindlichkeit, Sicherheitsanforderungen und Complianceanforderungen. Im Folgenden finden Sie einige Beispiele, in denen die Kombination ähnlicher Workloadflows zur Verwendung derselben Ressource zu erheblichen Einsparungen führen kann:

  • Webserver. Anstatt für jede Anwendung separate Webserver zuzuweisen, sollten Sie diese konsolidieren, insbesondere, wenn ihr Datenverkehr nicht konsistent hoch ist. Ein freigegebener Webserver, der mit einem Reverseproxy gekoppelt ist, kann Datenverkehr effektiv verwalten und an mehrere Anwendungen weiterleiten.

  • API-Gateways. Anstatt einzelne API-Gateways für separate Microservices oder Anwendungen zu verwalten, können Sie ein zentralisiertes API-Gateway verwenden, um Anforderungen zu optimieren und sie an den entsprechenden Dienst weiterzuleiten. Dies erleichtert die Verwaltung und senkt auch die Kosten.

  • Protokollverarbeitung. Anstatt mehrere Anwendungen oder Dienste zu haben, die jeweils ihre eigenen Protokollverarbeitungsinstanzen betreiben, sollten Sie sie alle an ein freigegebenes Protokollverarbeitungstool weiterleiten. Dieser Ansatz minimiert die Anzahl der aktiven Instanzen, was zu direkten Kosteneinsparungen führt.

  • Authentifizierungsdienste. Wenn mehrere Anwendungen ihre eigenen unterschiedlichen Authentifizierungsmechanismen bereitstellen, wird Redundanz eingeführt. Die Integration einer Lösung für einmaliges Anmelden (Single Sign-On, SSO) oder eines diensts für die gemeinsame Authentifizierung reduziert diese Duplizierung und optimiert die Ressourcennutzung, wodurch die Kosten gesenkt werden.

Risiko: Verwechseln Sie nicht den Zufall mit dem Design. Zwei Flows, die ähnlich aussehen, dienen nicht unbedingt demselben Zweck. Sie müssen die Funktion und den Entwurf jedes Flows verstehen, bevor Sie sie zusammenführen oder ändern. Ein Falschinterpretieren eines Flows, indem er sich ausschließlich auf seine Darstellung konzentriert, kann zu unbeabsichtigten Folgen führen und den von ihm unterstützten Dienst oder Prozess stören. Wenn mehrere Flows dieselbe Funktion erfüllen und keine erkennbaren Unterschiede in ihrem Entwurf oder ihrer Absicht erkennbar sind, sollten Sie sie konsolidieren.

Fortlaufende Überwachung von Flows

Die Art von Flows und Workloads kann sich im Laufe der Zeit ändern. Daher müssen Sie die Ausgaben für den Fluss überprüfen, um sicherzustellen, dass die Kosten den Prioritäten entsprechen. Bewerten Sie die Ressourcenauslastung jedes Flows, indem Sie die Compute-, Speicher- und Netzwerknutzung analysieren, die den einzelnen Datenflüssen zugeordnet sind. Identifizieren Sie Ineffizienzen oder Bereiche, in denen Ressourcen nicht ausgelastet sind. Diese Analyse hilft Ihnen, Möglichkeiten für die Kostenoptimierung zu ermitteln. Im Folgenden sind einige Überlegungen zu berücksichtigen, wenn Sie die Flussnutzung überprüfen:

  • Analysieren von Nutzungsmustern. Analysieren Sie die Nutzungsmuster der Flows. Einige Flows können zu bestimmten Tages- oder Monatszeiten aktiver sein, während andere eine konsistente Auslastung aufweisen. Wenn Sie diese Muster verstehen, können Sie den Ressourcenbedarf vorhersagen und die Zuordnung anpassen, um Engpässe und Überbereitstellungen zu vermeiden.

  • Überwachen relevanter Metriken Bestimmen Sie die Metriken, die Ihnen helfen können, die Effizienz und Kosteneffizienz jedes Flusses zu bewerten. Berücksichtigen Sie CPU-Auslastung, Datenübertragungskosten, Transaktionskosten und Speicherbedarf. Verwenden Sie Überwachungstools, um detaillierte Metriken zur Ressourcennutzung und -leistung zu sammeln.

  • Berücksichtigen Sie die laufende Wartung. Berücksichtigen Sie die Wartungskosten, insbesondere wenn Sie Infrastructure-as-a-Service-Lösungen wie virtuelle Computer verwenden. Sie müssen Aktivitäten wie Patchen, Upgrades, Sicherungen, Überwachung und Sicherheit berücksichtigen.

Identifizieren Sie während Der Analyse alle Ineffizienzen oder Bereiche, in denen Ressourcen nicht effektiv genutzt werden. Betrachten Sie Computeinstanzen im Leerlauf, nicht verwendete Daten und geringe Netzwerkbandbreite. Diese Ineffizienzen können Aufschluss über Möglichkeiten zur Kostenoptimierung geben.

Azure-Erleichterung

Priorisieren, Optimieren und Überwachen von Flows: Das User Flow-Tool in Application Insights bietet eine visuelle Darstellung der Benutzernavigation auf den Seiten und Features Ihrer Website. Dieses Tool hilft bei der Identifizierung von Bereichen, in denen Benutzer häufig gehen, Aktionen wiederholen oder bestimmten Pfaden folgen. Indem Sie das tatsächliche Benutzerverhalten mit Ihren erwarteten Ergebnissen und Zielen vergleichen, können Sie kritische Flows identifizieren. Außerdem können Sie potenzielle Probleme wie hohe Abwanderungsraten, sich wiederholende Aktionen oder Designfehler optimieren. Das Tool ermöglicht auch benutzerdefinierte Eigenschaftenfilterung durch Dimensionen und bietet eine maßgeschneiderte Analyse.

Azure Monitor hilft Ihnen dabei, Einblicke in die Leistung und Integrität Ihrer Anwendungen zu erhalten. Es bietet Überwachungs- und Diagnose-Funktionen. Diese Funktionen ermöglichen es Ihnen, Leistungsengpässe zu identifizieren, die Ressourcennutzung zu optimieren und Probleme zu erkennen und zu beheben, die sich auf die Kosten auswirken können.

Log Analytics ist ein Tool, mit dem Sie Protokolldaten aus verschiedenen Quellen sammeln, analysieren und visualisieren können. Mithilfe von Log Analytics können Sie Einblicke in Ihre Anwendungs- und Infrastrukturprotokolle gewinnen, Trends identifizieren und Kosten optimieren, indem Sie die Nutzung und Datenaufbewahrung verwalten. Erwägen Sie die Zuordnung von Protokollen und die Verwendung dedizierter Lösungen anstelle von freigegebenen, um die Kosten besser zu verwalten.

Prüfliste zur Kostenoptimierung

Weitere Informationen finden Sie im vollständigen Satz von Empfehlungen.