Empfehlungen zur Optimierung der Flusskosten

Gilt für diese Checkliste für azure Well-Architected Framework Cost Optimization:

CO:09 Optimieren Sie die Flusskosten. Richten Sie die Kosten für jeden Fluss mit der Flusspriorität aus. Berücksichtigen Sie bei der Priorisierung von Flüssen die Features, Funktionen und nicht funktionsfreien Anforderungen jedes Flusses. Die Optimierung der Flow-Ausgaben erfordert oft strategische Kompromisse.

In diesem Leitfaden werden die Empfehlungen zur Optimierung der Kosten der einzelnen Flüsse in Ihrer Workload beschrieben. Die Kostenoptimierung der Abläufe in einer Arbeitsauslastung umfasst die strategische Zuordnung und Verwaltung von Ressourcen, um Ausgaben zu minimieren und gleichzeitig die Leistung aufrechtzuerhalten. Diese Optimierung ist entscheidend, 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 Abläufe in einer Arbeitsauslastung nicht kostenoptimiert haben, riskiert das Risiko, dass ressourcenüberlastet sind, was zu überhöhten Betriebskosten und einer verringerten Rentabilität führt.

Definitionen

Begriff Definition
Entkoppeln Die Strategie, einen Fluss aus einer Ressource zu entfernen, die mehrere Flüsse enthält und in eine separate Ressource platziert.
Ablauf In einer Arbeitsauslastung wird die Abfolge von Aktionen ausgeführt, die eine bestimmte Funktion ausführen. Ein Fluss umfasst die Verschiebung von Daten und die Ausführung von Prozessen zwischen Komponenten der Arbeitsauslastung.
Systemflow Der Informations- und Prozessfluss innerhalb eines Systems. Das System folgt diesem Fluss automatisch, um Benutzerabläufe oder Workloadfunktionen zu ermöglichen.
Benutzerflow Die Pfade oder Sequenzen von Aktionen, die Benutzer innerhalb einer Anwendung oder eines Systems ausführen.

Wichtige Entwurfsstrategien

Investieren Sie mehr in höhere Prioritätsflüsse als in Flüsse mit niedrigerer Priorität. Die Ausrichtung von Flusspriorität und Ausgaben kann die Entkoppelung von Flüssen umfassen, die derzeit dieselbe Ressource gemeinsam nutzen. Sie kann auch das Kombinieren von Flüssen umfassen, die ähnliche Anforderungen haben, aber auf separaten Ressourcen ausgeführt werden. Angenommen, Sie haben eine Webanwendung, die mehrere Flüsse enthält, z. B. Benutzerregistrierung, Anmeldung und Datenverarbeitung. Diese Flüsse werden auf einem einzelnen Server ausgeführt, obwohl sie unterschiedliche Ressourcenanforderungen haben. Um Sowohl Kosten als auch Leistung zu optimieren, können Sie Flüsse trennen oder Flüsse kombinieren:

  • Trennen Sie Flüsse. Sie können z. B. den Benutzerregistrierungsfluss von den anderen abkoppeln und auf einen dedizierten, kostengünstigeren Server verschieben. Dieser Fluss ist wichtig, aber nicht ressourcenintensiv, daher ist er ein guter Kandidat für einen kostengünstigeren Server.

  • Kombinieren von Flüssen. Sie können z. B. die Anmelde- und Datenverarbeitungsflüsse kombinieren, die beide höhere Ressourcenanforderungen aufweisen, und sie auf einem hochleistungsorientierten Server zusammenführen. Durch die Kombination dieser Flüsse kann der Server die ressourcenintensiven Anforderungen beider Flüsse effizient verarbeiten. Es optimiert Leistung und Kosten.

In einer Workload können verschiedene Arten von Flüssen 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 Ressourcenauslastung.

  • Benutzerflüsse. Das Optimieren von Benutzerabläufen umfasst eine Verbesserung der Benutzererfahrung, das Reduzieren von Reibungspunkten und die Gewährleistung einer reibungslosen Navigation und Interaktion innerhalb der Anwendung oder des Systems.

Erstellen eines Bestands von Flüssen

Ein Flow-Bestand ist eine umfassende Liste und Beschreibung aller Abfolgen von Aktionen, Datenübergängen und Systeminteraktionen innerhalb eines Workloads. Ein Flow-Bestand ist der erste Schritt, um sicherzustellen, dass Investitionen mit der Priorität der Flows übereinstimmen. Sie sollten Flows nur optimieren, wenn Sie deren Zweck und Abhängigkeiten vollständig verstehen. Hier sind Schritte zum Erstellen eines Inventars von Arbeitsauslastungsflüssen:

  1. Dokumentflüsse. Beginnen Sie mit dem Dokumentieren und Auflisten aller vorhandenen Flüsse in Ihrer Workload, um einen Überblick über den umfassenden Zustand des Systems zu erhalten. Schließen Sie jede Abfolge von Aktionen, Datenübergängen und Systeminteraktionen ein. Machen Sie sich mit jeder Komponente vertraut, z. B. externen Diensten, 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 Flüsse. Um eine klarere Perspektive zu erhalten, stellen Sie Ihre Ergebnisse visuell dar, möglicherweise in Flussdiagrammen oder Diagrammen. Visualisierungen helfen Ihnen bei der Anzeige der Abhängigkeiten zwischen Komponenten. Erwägen Sie die Verwendung eines Tools wie Visio, um Sie bei den Visualisierungen zu unterstützen.

  3. Kategorisieren Sie Flüsse. Bündeln Sie ähnliche Flüsse, wobei Attribute wie ihre Funktionalität berücksichtigt werden (z. B. Authentifizierung, Datenabruf und Transaktionsverarbeitung), Kritischität für Unternehmen oder die ressourcen, die sie verwenden (CPU, Arbeitsspeicher oder Bandbreite).

Priorisieren von Flüssen

Die Flusspriorisierung ist der Prozess der Klassifizierung von Flüssen basierend auf ihrem Einfluss auf geschäftsergebnisse, Auswirkungen auf die Benutzererfahrung und die ressourcen, die sie verbrauchen. Kritische Flüsse erfordern häufig höhere Verfügbarkeitsebenen, schnellere Wiederherstellungszeiten und eine bessere Leistung, um Workloadziele zu erfüllen. Durch priorisierende Abläufe können Sie die Ausgaben besser an der Priorität des Flusses ausrichten. Berücksichtigen Sie zum Priorisieren von Flüssen die folgenden Schritte:

  • Identifizieren des Flusswerts. Wenn Sie die Kosten für den Workloadfluss optimieren, müssen Sie den Fluss identifizieren, der den größten Wert bietet. Sie möchten nicht mehr ausgeben, als ein Fluss wert ist. Anstatt einfach Kosten zu senken, sollten Sie die Kosten verschieben, um die wertvolleren Flüsse zu priorisieren. Ihr Auscheckvorgang ist beispielsweise für Unternehmen wichtig, aber der Einkaufsverlauf ist nicht. Sie sollten dem Auscheckvorgang weitere Ressourcen und Budget zuordnen.

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

  • Berücksichtigen Sie Flussmetriken. Wenn Sie Schwierigkeiten haben, Ihre Flüsse zu priorisieren, berücksichtigen Sie die Verfügbarkeits- und Wiederherstellungsziele, die Sie ihnen zugewiesen haben. Kritische Abläufe weisen häufig hohe Verfügbarkeitsanforderungen und Vereinbarungen auf Servicelevel (SLAs) auf. Flüsse, die einem niedrigeren RPO und RTO zugeordnet sind, sind wichtiger als Flüsse mit einem höheren RPO und RTO.

Optimieren von unabhängigen Flüssen

Manchmal werden Ihre Flüsse bereits auf verschiedenen Ressourcen ausgeführt. In diesen Fällen können Sie Ausgaben einfacher auswerten und optimieren. Bewerten Sie die Komponenten und Prozesse, die an den einzelnen unabhängigen Abläufen beteiligt sind, um zu bestimmen, ob es Möglichkeiten gibt, sie zu optimieren oder zu vereinfachen. Um unabhängige Flüsse zu optimieren, können Sie die folgenden Schritte ausführen:

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

  • Entwerfen Sie den Fluss neu. Erwägen Sie die Neugestaltung der Architektur des Flusses, um ihre Effizienz zu verbessern. Sie können beispielsweise die Abfolge von Vorgängen ändern, die Latenz verringern oder die Datenübertragungsgeschwindigkeit verbessern.

  • Wählen Sie eine geeignete Leistungsstufe aus. Verschiedene Flüsse können unterschiedliche Anforderungen hinsichtlich Verarbeitungsgeschwindigkeit, Arbeitsspeicher oder anderer Ressourcenmetriken haben. Stellen Sie sicher, dass Sie eine Ressourcenebene auswählen, die sich gut an die spezifischen Anforderungen jedes Flusses richtet.

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

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

Getrennte unnachschüttliche Flüsse

Das Trennen unterschiedlicher Flüsse auf verschiedene Ressourcen ist ein Prozess der Zuordnung von unterschiedlichen Vorgängen mit unterschiedlichen rechentechnischen Anforderungen an dedizierte Ressourcen. Ungleiche Flows sind Flows, die unterschiedliche Attribute haben. Diese Attribute können Rechenanforderungen, Datenabhängigkeiten, E/A-Vorgänge, Latenzempfindlichkeit, Sicherheitsanforderungen und Complianceanforderungen umfassen. Es ist oft kosteneffizienter, verschiedene Arten von Flüssen auf separaten Ressourcen auszuführen. Dies ermöglicht eine präzise Ressourcenzuordnung für jeden Fluss, wodurch unnötige Ausgaben reduziert und eine maximale Effizienz gewährleistet werden.

Erwägen Sie das Trennen unterschiedlicher Flüsse, die derzeit kombiniert werden. Diese Trennung erhöht Skalierbarkeit, Fehlertoleranz und Anpassungsfähigkeit und optimiert auch Kosten. Indem Sie sicherstellen, dass jeder Fluss unabhängig funktioniert, reduzieren Sie Interferenzrisiken und können Ressourcen kosteneffizienter zuordnen, basierend auf der Priorität jedes Flusses. Nehmen Wir beispielsweise an, dass Sie CRM (Benutzerfluss) mit einem Datenmodul (Datenfluss) verlagern. Benutzerdatenverkehr zum CRM-System während der Bürozeiten kann das Datenmodul verlangsamen. Wenn Sie Abläufe entkoppeln, kann das Datenmodul jede Komponente oder jeden Dienst unabhängig von der Workloadnachfrage skalieren. Diese Entkopplung optimiert die Ressourcenzuordnung und reduziert die Kosten.

Kombinieren ähnlicher Flüsse

Das Kombinieren ähnlicher Flüsse auf eine einzelne Ressource ist ein Prozess der Konsolidierung von Vorgängen oder Prozessen mit vergleichbaren Attributen und derEn Verwendung gemeinsam genutzter Ressourcen. Diese Strategie beseitigt Redundanzen und gewährleistet eine effizientere Nutzung der Ressourcen, was zu erheblichen Kosteneinsparungen führt. Ähnliche Arten von Flows haben ähnliche Attribute. Sie können die gleichen Attribute berücksichtigen, die Sie beim Trennen unterschiedlicher Flüsse betrachten: Rechenanforderungen, Datenabhängigkeiten, E/A-Vorgänge, Latenzempfindlichkeit, Sicherheitsanforderungen und Complianceanforderungen. Hier sind einige Beispiele, in denen die Kombination ähnlicher Arbeitsauslastungsflüsse zur Verwendung derselben Ressource zu erheblichen Einsparungen führen kann:

  • Webserver. Anstatt separate Webserver für jede Anwendung zu dedidieren, sollten Sie sie konsolidieren, insbesondere, wenn ihr Datenverkehr nicht konsistent hoch ist. Ein gemeinsam genutzter Webserver, gepaart mit einem Reverseproxy, kann den 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 zentrales API-Gateway verwenden, um Anforderungen zu rationalisieren und an den relevanten Dienst zu leiten. Dies erleichtert das Management und reduziert auch die Kosten.

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

  • Authentifizierungsdienste. Wenn mehrere Anwendungen eigene unterschiedliche Authentifizierungsmechanismen bereitstellen, wird Redundanz eingeführt. Durch die Integration einer Single Sign-On-Lösung (Single Sign-On, SSO) oder eines kommunalen Authentifizierungsdiensts wird diese Duplizierung reduziert und die Ressourcennutzung optimiert, wodurch Kosten reduziert werden.

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

Kontinuierliches Überwachen von Flüssen

Die Art von Flüssen und Arbeitslasten kann sich im Laufe der Zeit ändern, sodass Sie die Ausgaben für den Fluss überprüfen müssen, um sicherzustellen, dass die Kosten den Prioritäten entsprechen. Bewerten Sie die Ressourcennutzung jedes Flows, indem Sie die mit jedem Flow verbundene Compute-, Speicher- und Netzwerknutzung analysieren. Identifizieren Sie alle Ineffizienzen oder Bereiche, in denen Ressourcen nicht genutzt werden. Diese Analyse hilft Ihnen, Chancen für die Kostenoptimierung zu bestimmen. Im Folgenden finden Sie einige Überlegungen, die sie berücksichtigen sollten, wenn Sie die Flussnutzung überprüfen:

  • Analysieren von Verwendungsmustern. Analysieren Sie die Verwendungsmuster der Flüsse. Einige Flüsse sind möglicherweise während bestimmter Tages- oder Monatszeiten aktiver, während andere eine konsistente Belastung haben. Indem Sie diese Muster verstehen, können Sie ressourcenbedarf vorhersagen und die Zuordnung anpassen, um Engpässe und Überteilungen zu vermeiden.

  • Überwachen Sie relevante Metriken. Ermitteln Sie die Metriken, die Ihnen helfen können, die Effizienz und Kosteneffizienz der einzelnen Abläufe zu bewerten. Berücksichtigen Sie cpu-Auslastung, Datenübertragungskosten, Transaktionskosten und Speicherbedarf. Verwenden Sie Überwachungstools, um detaillierte Metriken zur Ressourcennutzung und -leistung zu sammeln.

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

Identifizieren Sie während der Analyse alle Ineffizienzen oder Bereiche, in denen Ressourcen nicht effektiv genutzt werden. Erwägen Sie zwischen leer stehende Computeinstanzen, nicht verwendete Daten und niedrige Netzwerkbandbreite. Diese Ineffizienzen können Aufschluss über Möglichkeiten zur Kostenoptimierung geben.

Azure-Erleichterung

Priorisieren, Optimieren und Überwachen von Flüssen: Das Tool "Benutzerfluss" in Application Insights bietet eine visuelle Darstellung der Benutzernavigation auf den Seiten und Features Ihrer Website. Dieses Tool unterstützt das Identifizieren von Bereichen, in denen Benutzer häufig Aktionen verlassen, wiederholen oder bestimmten Pfaden folgen. Durch den Vergleich des tatsächlichen Benutzerverhaltens mit den erwarteten Ergebnissen und Zielen können Sie kritische Flüsse identifizieren. Außerdem können Sie potenzielle Probleme wie hohe Abwanderungsraten, sich wiederholende Aktionen oder Entwurfsfehler optimieren. Das Tool ermöglicht auch die benutzerdefinierte Eigenschaftenfilterung durch Dimensionen und bietet eine maßgeschneidertere Analyse.

Azure Monitor hilft Ihnen, Einblicke in die Leistung und integrität Ihrer Anwendungen zu erhalten. Es bietet Überwachungs- und Diagnosefunktionen. Diese Funktionen ermöglichen es Ihnen, Leistungsengpässe zu identifizieren, die Ressourcenauslastung zu optimieren und Probleme zu erkennen und zu beheben, die sich auf 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 erhalten, Trends identifizieren und Kosten optimieren, indem Sie nutzungs- und datenaufbewahrung verwalten. Erwägen Sie, Protokolle zu verlagern und dedizierte Lösungen anstelle gemeinsam genutzter Lösungen zu verwenden, um Kosten besser zu verwalten.

Checkliste zur Kostenoptimierung

Lesen Sie den vollständigen Satz von Empfehlungen.