Freigeben über


Designprinzipien für Leistungseffizienz

Bei der Leistungseffizienz geht es um den effektiven Einsatz von Workloadressourcen. Ohne eine gute Strategie können Sie Benutzeranforderungen möglicherweise nicht antizipieren und erfüllen. Möglicherweise müssen Sie auf einen Ansatz der Vorabbereitstellungskapazität zurückgreifen, basierend auf Ihrer langfristigen Prognose, was Ihnen nicht die volle Nutzung Ihrer Cloudplattform ermöglicht.

Die Leistungseffizienz ist die Fähigkeit einer Arbeitsauslastung, sich an sich ändernde Anforderungen anzupassen, indem sie skalieren, um eine erhöhte Last zu erfüllen, ohne die Benutzererfahrung zu beeinträchtigen, und die Skalierung nach unten, um Ressourcen bei geringer Nachfrage zu sparen. Die Kapazität spielt eine zentrale Rolle, aber die Ausschließliche Verwendung von vorab bereitgestellten Ressourcen kann zu Leistungsproblemen bei hoher Auslastung und unnötigen Kosten bei geringer Auslastung führen.

Anstatt die Leistung als Nachherein zu behandeln, machen Sie es von Anfang an zu einer zentralen Überlegung. Beginnen Sie frühzeitig, auch wenn Sie keine strengen Leistungsziele haben, testen und verfeinern Sie die gesamte Entwicklung. Diese fortlaufende Optimierung, die von der realen Nutzung informiert wird, trägt dazu bei, zukünftige Probleme zu vermeiden und eine konsistente Leistung sicherzustellen.

Eine gut geplante Strategie hilft bei der Anpassung der Ressourcenkapazität an den Geschäftlichen Anforderungen und gleichzeitig bei der Minimierung von Abfällen. Nachdem Ihr Ansatz definiert wurde, verwenden Sie die Checkliste zur Leistungseffizienz , um Ihren Entwurf zu überprüfen. Ohne eine proaktive Strategie riskieren Sie, dass Sie sich auf statische Prognose verlassen und die vollständigen Vorteile der skalierbaren Cloudinfrastruktur fehlen.

Realistische Leistungsziele verhandeln

Symbol „Ziel“ Die beabsichtigte Benutzererfahrung wird definiert, und es gibt eine Strategie, um einen Benchmark zu entwickeln und Ziele an den vorab festgelegten Geschäftsanforderungen zu messen.

Unter dem Gesichtspunkt der Leistung ist es ideal, klar definierte Leistungsziele zu haben, um Ihren Entwurfsprozess zu starten. Um diese Ziele festzulegen, müssen Sie über ein gutes Verständnis der geschäftlichen Anforderungen und der erwarteten Dienstqualität verfügen, welche die Workload liefern soll. Definieren Sie die Erwartungen in Zusammenarbeit mit den Projektbeteiligten. Anstatt sich nur auf technische Metriken zu konzentrieren, bestimmen Sie die akzeptablen Auswirkungen auf die Benutzererfahrung für die wichtigsten Flows.

Es gibt eine Ringabhängigkeit. Sie können nicht messen, was Sie nicht definiert haben, und Sie können ohne Messung nicht definieren. Daher ist es auch wichtig, die Arbeitsauslastung zu messen, bis Sie eine zufriedenstellende Definition einer akzeptablen Schwelle mit Tarifvertrag erreichen.

Es gibt eine starke Korrelation zwischen Leistungs- und Zuverlässigkeitszielen, die dazu beitragen, die Dienstqualität in Bezug auf Leistung, Verfügbarkeit und Resilienz zu bestimmen. Ohne eine klare Definition ist es schwierig, die Leistung zu messen, zu überwachen und zu testen. Nachdem Sie die Ziele festgelegt und tatsächliche Zahlen durch Tests im Laufe der Zeit identifiziert haben, können Sie die Automatisierung für kontinuierliche Tests gegen diese Zielen implementieren.

Befolgen Sie bewährte Methoden zum Definieren von Zielen auf Makroebene, selbst wenn sie ungefähr oder innerhalb eines Bereichs sind.

Vorgehensweise Vorteile
Bereiten Sie sich auf eine effektive Aushandlung vor, indem Sie technische Optionen verstehen, Designmöglichkeiten untersuchen und experimentelle Ergebnisse anwenden.

Verwenden Sie historische Daten, um Nutzungsmuster und Engpässe zu identifizieren. Integrieren Sie Erkenntnisse aus Marktanalysen, Branchenstandards und Experteneingaben, um Entscheidungen zu leiten.
Sie können fundierte Entscheidungen basierend auf praktischen Erkenntnissen treffen.

Die Leistungsziele basieren auf der Benutzererfahrung, die auf den machbaren, branchenspezifischen Best Practices und aktuellen Markttrends basiert.
Richten Sie sich an Die Geschäftsbesitzer an die Erwartungen und Leistungsstandards der Benutzer und berücksichtigen dabei die Investitionsniveaus.

Vermeiden Sie detaillierte Details in der ersten Entwurfsphase, während Sie den breiteren Geschäftskontext und die Wachstumspläne berücksichtigen.
Sie vermeiden falsch ausgerichtete Annahmen, fördern Klarheit und Motivation innerhalb des Teams und treffen fundierte Designentscheidungen zu Kompromissen.

Außerdem wird sichergestellt, dass Leistungsziele zukünftige Anforderungen berücksichtigen und die aktuelle Arbeit an langfristigen Geschäftszielen ausrichten.
Priorisieren Sie kritische Flüsse in der Architektur basierend auf leistungsbezogenen Auswirkungen.

Definieren Sie Leistungstoleranzbereiche für jeden Fluss, von ideal bis inakzeptabel. Bewerten Sie Einstiegs- und Ausgangspunkte, indem Sie die Nutzungshäufigkeit, Wichtigkeit und Komplexität berücksichtigen.
Durch priorisieren von Flows können Sie Ihre Ressourcen auf kritische Bereiche konzentrieren, die sich am meisten auf Benutzer- und Geschäftsergebnisse auswirken.

Indem Sie das System in seine Teile und Abhängigkeiten aufteilen, verstehen Sie die Funktion und den Einfluss jeder Komponente auf die Leistung. Sie werden auch auf mögliche Probleme aufmerksam.

Es hilft dabei, eine Leistungsbaseline zu erstellen und die Optimierung zu fördern.
Beginnen Sie mit der Entwicklung eines Leistungsmodells, das Nutzungsmuster, Geschäftliche Auswirkungen und Betriebskosten berücksichtigt, um die anfänglichen Leistungsziele zu berechnen. Verwenden Sie Branchenstandards, um wichtige Metriken zu definieren und zu messen und die Nachfrage und das Angebot innerhalb von Geschäftseinschränkungen zu bewerten und gleichzeitig zukünftiges Wachstum zu berücksichtigen.

Behandeln Sie dies als iterativen Prozess und verfeinern Sie Ziele, die durch reale Beobachtungen und Metriken informiert werden, die von der laufenden Lösung gesammelt werden, während der Tests und Produktion. Priorisieren Sie Testfälle, die aussagekräftige Nutzungserkenntnisse im gesamten Anwendungslebenszyklus liefern.
Ein Leistungsmodell hilft bei der strategischen Ressourcenplanung und -optimierung, unterstützt Benchmarking durch Branchenstandards und stellt sicher, dass Die Leistungsziele im Laufe der Zeit adaptierbar und relevant bleiben.

Basierend auf diesen sich entwickelnden Zielen können Sie genaue Kapazitätsplanung durchführen und Leistungsbaselines einrichten, die während des gesamten Lösungslebenszyklus relevant bleiben.

Entwurf zur Erfüllung der Kapazitätsanforderungen

Zielsymbol Stellen Sie genügend Angebot bereit, um die erwartete Nachfrage zu erfüllen.

Es ist wichtig, die Leistung proaktiv zu messen. Die Messung der Leistung umfasst die Messung von Basiswerten und ein vorabes Verständnis, welche Komponenten des Systems wahrscheinlich Herausforderungen darstellen. Sie können dies ohne einen vollständigen Leistungstest oder durch granulare Optimierung erreichen. Mit diesen ersten Schritte schaffen Sie frühzeitig im Entwicklungslebenszyklus eine Grundlage für ein effektives Leistungsmanagement.

Untersuchen Sie das System als Ganzes, statt sich auf einzelne Komponenten zu konzentrieren. Vermeiden Sie in dieser Phase Optimierungen. Granulare Leistungsverbesserungen führen zu Abstrichen in anderen Bereichen. Wenn Sie den Lebenszyklus durchlaufen und mit dem Testen der Benutzerakzeptanz beginnen oder sich auf die Produktion zubewegen, können Sie schnell feststellen, welche Bereiche weiter optimiert werden müssen.

Vorgehensweise Nutzen
Bewerten Sie dynamische Skalierungsanforderungen für die priorisierten Flüsse basierend auf den Nutzungsanforderungen. Verstehen Sie die erwarteten Nachfragemuster und bestimmen Sie, wie elastisch jeder Fluss sein muss, um diese Anforderungen zu erfüllen. Sie können Skalierbarkeitsanforderungen für vorhandene Komponenten definieren, die mehr Kapazität benötigen, und die Bereiche, in denen Zusätzliche Komponenten zum Verteilen der Last benötigt werden.
Wählen Sie die richtigen Ressourcen aus, und rechten Sie sie über den Technologiestapel hinweg, wodurch Sie Leistungsziele erreichen können.

Berücksichtigen Sie Features, die die Skalierbarkeitsanforderungen erfüllen können.
Das Gesamtsystem wird gemäß den definierten Zielen ausgeführt und ausgeführt. Sie können integrierte Features verwenden, die bei Bedarf automatisch skaliert werden. Es hilft Ihnen auch, die Überlastung zu vermeiden, Kosten zu sparen und gleichzeitig Nachfrageänderungen zu verarbeiten.
Durchführen der Kapazitätsplanung basierend auf dem Leistungsmodell und der Fähigkeit ausgewählter Ressourcen.

Verwenden Sie prädiktive Modellierungstechniken, um erwartete Kapazitätsänderungen zu prognostizieren.
Das System wird in der Lage sein, Leistungsziele zu erfüllen und gleichzeitig auf zukünftige Nachfrage vorbereitet zu bleiben. Predictive Modeling hilft Ihnen, vorausschauend zu planen, Ressourcenengpässe oder Überprovisionen zu vermeiden, was die Zuverlässigkeit und Kosteneffizienz verbessert.
Implementieren Sie Machbarkeitsnachweise und überprüfen Sie vorgeschlagene Designentscheidungen, um die technischen Anforderungen zu erfüllen. Anhand eines Machbarkeitsnachweises können Sie überprüfen, ob das Design Leistungsziele und erwartete Last erfüllen kann.

Leistung erreichen und aufrechterhalten

Symbol „Ziel“ Schützen Sie sich vor Leistungseinbußen, während das System in Betrieb ist und sich weiterentwickelt.

Die Entwicklung ist kein einmaliger Aufwand. Sie ist ein fortlaufender Prozess. Erwarten Sie Änderungen an der Leistung, wenn sich Features ändern. Es gibt Abweichungen in Benutzermustern und -profilen, sogar Änderungen von Optimierungen in anderen Azure Well-Architected-Säulen. Jede Änderung kann Workloadressourcen belasten.

Schützen Sie das System vor dem Zurückrücken der Leistungsziele. Testen Sie die Leistung des Systems in der Produktion mit realer Last und simulieren Sie diese Last mit automatisierten Tests vor der Produktionseinführung. In beiden Fällen sollten Sie Überwachungspraktiken für Überprüfungszwecke eingerichtet haben.

Beachten Sie, dass Leistungsziele im Laufe der Zeit als Reaktion auf Änderungen variieren. Aktualisieren Sie das Leistungsmodell basierend auf getesteten und überwachten Metriken. Geben Sie deutlich an, ob die Leistung der Flows erhöht, verringert oder nicht beeinflusst wird.

Seien Sie immer bereit, die Erwartungen mit den Projektbeteiligten neu zu verhandeln und zurückzusetzen.

Vorgehensweise Nutzen
Definieren Sie Ihre Leistungsteststrategie.

Führen Sie verschiedene Arten von Tests durch, einschließlich manueller Tests mit geringem Aufwand, um Benchmarks zu überarbeiten.

Fügen Sie Ihren Pipelines regelmäßige Leistungstests hinzu, indem Sie Tools verwenden, die gut damit arbeiten.
Sie können sicherstellen, dass Ressourcen effektiv zugeordnet und Metriken entsprechend der Kapazitätsplanung überprüft werden.

Automatisierte Routineleistungstests helfen dabei, wichtige Faktoren wie Latenz, Stress und Lastkapazität konsistent zu bewerten, sodass Probleme frühzeitig leichter erkannt und die Leistung im Laufe der Zeit konstant bleibt.
Formalisieren Sie Leistungstests als Qualitätstore. Diese Prüfpunkte stellen sicher, dass jede Bereitstellungsphase die Leistungsstandards erfüllt, bevor Sie fortfahren. Sie helfen dabei, Probleme frühzeitig abzufangen und ihnen zu ermöglichen, Qualitätsentscheidungen zu treffen. Wenn die Leistung beispielsweise unter die Erwartungen fällt, wird eine Veröffentlichung blockiert.
Richten Sie einen Prozess zur Leistungsüberwachung ein, der sowohl End-to-End-Geschäftstransaktionen als auch technische Metriken wie CPU, Latenz und Anforderungen pro Sekunde nachverfolgt.

Stellen Sie sicher, dass Sie echte und synthetische Transaktionen in der Produktion verwenden.

Richten Sie Überwachungswarnungen für Leistungsregressionen ein.
Durch die Überwachung aller Teile des Systems erhalten Sie eine klare Sichtbarkeit und können Probleme sowohl in der Infrastruktur als auch in der Anwendung schnell erkennen. Es hilft Ihnen, Ressourcen zu optimieren, um Leistungsstandards aufrechtzuerhalten und auch den Fortschritt zu verfolgen oder Probleme frühzeitig zu erkennen.
Überprüfen Sie leistungstestergebnisse und überwachen Sie Daten sorgfältig, da die Nutzung zunimmt, und Daten sammeln sich mit dem System in der Produktion an.

Priorisieren Sie Aktionen, die leistungseinbußen beheben und dem Backlog für die geplante Ausführung hinzufügen.
Mithilfe von Daten können Sie Leistungstrends nachverfolgen und vergleichen, um fundierte Optimierungsentscheidungen zu treffen und Probleme frühzeitig abzufangen, bevor sie sich auf die Benutzererfahrung auswirken.

Außerdem wird sichergestellt, dass Sie ein System, das bereits in der Kapazität ist, nicht überoptimieren.
Erkunden Sie Entwurfsmuster, die die Leistung im gesamten Technologiestapel optimieren können, und berücksichtigen Sie dabei die Anwendung und die zugrunde liegenden Compute- und Datenebenen. Sie können Engpässe beheben und Ausgleichssteuerelemente implementieren, um latenz- und Systemlasten zu verringern.
Erstellen Sie Codierungskompetenzen mit dem Fokus auf Leistung und befolgen Sie Standards, die effiziente Codierungsmuster fördern. Gut geschriebener, leistungsstarker Code macht Tests schneller, indem Probleme reduziert werden und die Überarbeitung vermieden wird, während codekonsidiert bleibt.

Optimieren langfristiger Verbesserungen

Symbol „Ziel“ Verbessern Sie die Systemeffizienz innerhalb der definierten Leistungsziele, um den Wert der Workload zu steigern.

Die anfänglichen Leistungsziele zielen darauf ab, eine angemessene Benutzererfahrung innerhalb bekannter Einschränkungen zu erzielen. Wenn sich das System weiterentwickelt, werden diese Ziele mit realen Produktionsdaten neu bewertet, um Nutzungsmuster, Plattformänderungen und potenzielle Gewinne besser zu verstehen, um sicherzustellen, dass Optimierungsbemühungen gut zeitgesteuert und effektiv sind. Häufig empfiehlt es sich, wichtige Optimierungen zu verzögern, bis diese Daten verfügbar sind, um vorzeitige Entscheidungen zu vermeiden.

Leistungsoptimierung ist ein kontinuierlicher Zyklus der Überwachung, Optimierung, Tests und Bereitstellung. Effizienzverbesserungen können den Ressourceneinsatz reduzieren, was manchmal zu einer überlastenden Bereitstellung führt. Diese zusätzliche Kapazität kann dann verwendet werden, um Die Zuverlässigkeit zu verbessern, Kosten zu senken oder neue Features zu unterstützen, ohne Infrastruktur hinzuzufügen.

Vorgehensweise Nutzen
Legen Sie dedizierte Zeit für die Leistungsoptimierung als regelmäßige Praxis während des gesamten Entwicklungslebenszyklus zur Verfügung. In einer leistungsgesteuerten Kultur stärkt dieser Ansatz die Verantwortlichkeit, bei der das Team aktiv überwacht und kontinuierlich die Systemleistung verbessert.
Überarbeiten Sie nicht funktionale Anforderungen und richten Sie neue Ziele ein, indem Sie historische Trends in der Produktion analysieren, um die Architektur mit verbesserten Entwurfsmustern und -komponenten zu verbessern. Neue Designs und Komponenten, z. B. Zwischenspeichern oder CDN, können das System optimieren und die Benutzererfahrung verbessern.
Holen Sie sich aktuelle und bleiben Sie mit Technologieinnovationen auf dem Laufenden, die die Leistung verbessern können.

Nutzen Sie die neuen Versionen, die für die abhängigen Frameworks und Bibliotheken veröffentlicht wurden.

Verwenden Sie entsprechend die neuen Features für Plattformressourcen, während sie aktualisiert und gepatcht werden.
Leistungsziele bieten eine Begründung für die Einführung neuer Technologien.

Code, der in der Vergangenheit möglicherweise langsam war, kann mit diesen Updates schneller werden. Außerdem sollten Sie wissen, wie bestimmte Updates die Leistung negativ beeinflussen.

Nächste Schritte