Freigeben über


Kompromisse bei der Leistungseffizienz für Power Platform Workloads

Eine Arbeitslast, die ihre Leistungsziele ohne Überbereitstellung erreicht, ist effizient. Zu den wichtigsten Strategien für Leistungseffizienz gehören der richtige Einsatz von Codeoptimierungen, Entwurfsmustern und Kapazitätsplanung. Klare Leistungsziele und Tests bilden die Grundlage dieser Säule.

Während der Entwurfsphase einer Arbeitslast muss berücksichtigt werden, wie sich Entscheidungen auf Grundlage der Entwurfsprinzipien für Leistungseffizienz und Empfehlungen in der Entwurfsüberprüfungs-Checkliste für Leistungseffizienz auf die Ziele und Optimierungsbemühungen anderer Säulen auswirken können. Bestimmte Entscheidungen können einigen Säulen zugute kommen, für andere jedoch Kompromisse bedeuten. In diesem Artikel werden beispielhafte Kompromisse aufgeführt, denen ein Workload-Team beim Entwurf der Workload-Architektur und des Workload-Betriebs im Hinblick auf Leistungseffizienz begegnen kann.

Kompromisse zwischen Leistung und Effizienz bei der Zuverlässigkeit

Kompromiss: Reduzierte Replikation und erhöhte Dichte. Ein Eckpfeiler der Zuverlässigkeit ist die Gewährleistung der Ausfallsicherheit durch Replikation und die Begrenzung des Explosionsradius von Fehlfunktionen.

  • Durch die Konsolidierung von Workload-Ressourcen können überschüssige Kapazitäten genutzt und die Effizienz verbessert werden. Allerdings vergrößert sich dadurch der Explosionsradius einer Fehlfunktion der entsprechenden Komponente oder Anwendungsplattform.

Kompromiss: Erhöhte Komplexität. Zuverlässigkeit hat Vorrang vor Einfachheit.

  • Durch Datenpartitionierung und -sharding lassen sich Leistungsprobleme bei großen oder häufig abgerufenen Datensätzen vermeiden. Allerdings erhöht die Implementierung dieser Muster die Komplexität, da die (eventuelle) Konsistenz über zusätzliche Ressourcen hinweg aufrechterhalten werden muss.

  • Durch die Denormalisierung von Daten für optimierte Zugriffsmuster lässt sich die Leistung verbessern, es entsteht jedoch auch eine höhere Komplexität, weil mehrere Datendarstellungen synchronisiert werden müssen.

  • Leistungsorientierte Cloud-Designmuster erfordern manchmal die Einführung zusätzlicher Komponenten. Durch den Einsatz dieser Komponenten vergrößert sich die Angriffsfläche der Arbeitslast. Dann müssen die Komponenten selbst zuverlässig gemacht werden, um die Zuverlässigkeit der gesamten Arbeitslast zu gewährleisten.

Kompromiss: Testen und Beobachten in aktiven Umgebungen. Die Vermeidung der unnötigen Nutzung von Produktionssystemen ist ein Ansatz zur Selbsterhaltung der Zuverlässigkeit.

  • Bei Performancetests in aktiven Umgebungen besteht das Risiko, dass es aufgrund der Testaktionen oder Konfigurationen zu Fehlfunktionen kommt.

  • Workloads sollten mit einem Application Performance Monitoring (APM)-System ausgestattet werden, das es Teams ermöglicht, aus aktiven Umgebungen zu lernen. Das APM-Tool wird im Anwendungscode oder im Hosting Umgebung installiert und konfiguriert. Unsachgemäßer Gebrauch, das Überschreiten von Einschränkungen oder eine falsche Konfiguration des Tools können dessen Funktionalität und Wartung beeinträchtigen und möglicherweise die Zuverlässigkeit gefährden.

Kompromisse zwischen Leistung und Effizienz bei der Sicherheit

Kompromiss: Reduzierung der Sicherheitskontrollen. Sicherheitskontrollen werden auf mehreren Ebenen, manchmal redundant, eingerichtet, um eine tiefgreifende Verteidigung zu gewährleisten.

Eine Strategie zur Leistungsoptimierung besteht darin, Komponenten oder Prozesse zu entfernen oder zu umgehen, die zu Verzögerungen in einem Ablauf beitragen, insbesondere wenn ihre Verarbeitungszeit nicht gerechtfertigt ist. Diese Strategie kann jedoch die Sicherheit gefährden und sollte von einer gründlichen Risikoanalyse begleitet werden. Betrachten Sie folgende Beispiele:

  • Das Entfernen der Verschlüsselung während der Übertragung oder im Ruhezustand zur Verbesserung der Übertragungsgeschwindigkeit setzt die Daten potenziellen Verletzungen ihrer Integrität oder Vertraulichkeit aus.

  • Das Entfernen oder Reduzieren von Sicherheitsscan- oder Inspektionstools zur Verkürzung der Verarbeitungszeiten kann die Vertraulichkeit, Integrität oder Verfügbarkeit dieser Tools gefährden. schützen.

  • Das Entfernen von Firewall-Regeln aus Netzwerkflüssen zur Verbesserung der Netzwerklatenz kann zu unerwünschter Kommunikation führen.

  • Das Minimieren der Datenvalidierung zugunsten einer schnelleren Datenverarbeitung kann die Datenintegrität beeinträchtigen, insbesondere bei böswilligen Eingaben.

Kompromiss: Größere Arbeitslastoberfläche. Die Sicherheit priorisiert eine reduzierte und eingegrenzte Oberfläche, um Angriffsvektoren zu minimieren und den Verwaltungsaufwand für Sicherheitskontrollen zu reduzieren.

Leistungsorientierte Cloud-Designmuster erfordern manchmal die Einführung zusätzlicher Komponenten. Diese Komponenten vergrößern die Oberfläche der Arbeitslast. Die neuen Komponenten müssen gesichert werden, möglicherweise auf eine Art und Weise, die im System noch nicht verwendet wird, und sie erweitern häufig den Compliance-Umfang. Berücksichtigen Sie diese häufig hinzugefügten Komponenten:

  • Einführung mehrerer unterschiedlicher Methoden zur Handhabung der Geschäftslogik, wie Cloud-Flows und low-Code-Plugins, basierend auf den Leistungsanforderungen jedes einzelnen Aufgabe.

  • Auslagern der Verarbeitung auf Hintergrundjobs oder sogar Client-Compute.

Kompromiss: Segmentierung entfernen. Die Säule „Sicherheit“ priorisiert eine starke Segmentierung, um feinkörnige Sicherheitskontrollen zu ermöglichen und den Explosionsradius zu reduzieren.

Die gemeinsame Nutzung von Ressourcen ist ein Ansatz zur Verbesserung der Effizienz. Es erhöht die Dichte, um die Kapazitätsnutzung zu optimieren. Beispielsweise die Wiederverwendung von low-Code-Plugins in mehreren Canvas-Apps und Cloud-Flows. Die erhöhte Dichte kann zu folgenden Sicherheitsbedenken führen:

  • Eine gemeinsam genutzte Workload-Identität, die das Prinzip der geringsten Privilegien verletzt und einzelne Prüfpfade in Zugriffsprotokollen verschleiert.

  • Perimeter-Sicherheitskontrollen, z. B. Netzwerkregeln, die reduziert sind, um alle am selben Standort befindlichen Komponenten abzudecken, wodurch einzelnen Komponenten mehr Zugriff als nötig gewährt wird.

Kompromisse zwischen Leistungseffizienz und operativer Exzellenz

Kompromiss: Reduzierte Beobachtbarkeit. Eine Überwachung ist erforderlich, um eine Arbeitslast mit aussagekräftigen Warnmeldungen zu versorgen und einen erfolgreichen Vorfall Antwort sicherzustellen.

  • Durch die Reduzierung des Protokoll- und Messvolumens zur Verkürzung der Verarbeitungszeit, die für die Erfassung von Telemetriedaten statt für andere Aufgaben aufgewendet wird, wird die allgemeine Beobachtbarkeit des Systems verringert. Einige Beispiele für die daraus resultierende verringerte Beobachtbarkeit sind:

    • Es begrenzt die Datenpunkte, die zum Erstellen aussagekräftiger Warnungen verwendet werden.
    • Dies führt zu Lücken in der Abdeckung von Vorfallaktivitäten Antwort.
    • Es begrenzt die Beobachtbarkeit bei sicherheits- oder Compliance-sensitiven Interaktionen und Grenzen.
  • Bei der Implementierung leistungsorientierter Entwurfsmuster erhöht sich häufig die Komplexität der Arbeitslast. Zu kritischen Flüssen werden Komponenten hinzugefügt. Die Strategie zur Arbeitslastüberwachung und zur Leistungsüberwachung müssen diese Komponenten umfassen. Wenn ein Flow mehrere Komponenten oder Anwendungsgrenzen umfasst, erhöht sich die Komplexität der Überwachung der Leistung dieses Flows. Die Durchflussleistung muss über alle miteinander verbundenen Komponenten hinweg korreliert werden.

Kompromiss: Erhöhte Komplexität im Betrieb. Ein komplexes Umgebung weist komplexere Interaktionen auf und es besteht eine höhere Wahrscheinlichkeit negativer Auswirkungen durch Routine-, Ad-hoc- und Notfalleinsätze.

  • Die Verbesserung der Leistungseffizienz durch Erhöhung der Dichte erhöht das Risiko bei Betriebsaufgaben. Ein Fehler in einem einzelnen Prozess kann enorme Folgen haben.

  • Wenn Leistungsdesignmuster implementiert werden, beeinflussen sie Betriebsabläufe wie Backups, Schlüsselrotationen und Wiederherstellungsstrategien. Beispielsweise können Datenpartitionierung und -sharding Routineaufgaben erschweren, wenn Teams sicherstellen möchten, dass diese Aufgaben die Datenkonsistenz nicht beeinträchtigen.

Kompromiss: Kulturstress. Operationale Exzellenz wurzelt in einer Kultur der Schuldlosigkeit, des Respekts und der kontinuierlichen Verbesserung.

  • Durch die Durchführung einer Ursachenanalyse von Leistungsproblemen werden Mängel in Prozessen oder Implementierungen identifiziert, die korrigiert werden müssen. Das Team sollte die Übung als Lernmöglichkeit betrachten. Wenn Teammitglieder für Probleme verantwortlich gemacht werden, kann dies die Moral beeinträchtigen.

  • Routine- und Ad-hoc-Prozesse können die Arbeitslastleistung beeinträchtigen. Oftmals wird es als vorzuziehen angesehen, diese Aktivitäten außerhalb der Stoßzeiten durchzuführen. Allerdings können die Zeiten außerhalb der Spitzenzeiten für die Teammitglieder, die für diese Aufgaben verantwortlich oder qualifiziert sind, ungünstig sein oder außerhalb der regulären Arbeitszeiten liegen.

Kompromisse bei der Leistungseffizienz mit der Erlebnisoptimierung

Kompromiss: Geringeres Engagement der Benutzer. Die Säule „Erlebnisoptimierung“ priorisiert ansprechendere Benutzererlebnisse.

  • Bei der Leistungsoptimierung wird die Verwendung von Plattformfunktionen gegenüber Anpassungen priorisiert, wodurch benutzerdefinierte Komponenten, die zu einem ansprechenderen Benutzererlebnis führen könnten, zurückgestellt werden.

  • Bei der Leistungsoptimierung liegt der Fokus möglicherweise zu stark auf der Minimierung der Komplexität, wodurch Funktionen für ein ansprechenderes Benutzererlebnis, wie benutzerdefinierte Komponenten und Integrationen, in den Hintergrund geraten.

  • Die Entwicklung der Benutzeroberfläche erfolgt Fertig häufig in schnelleren Iterationen und Auslieferungszyklen, was eine kontinuierliche Leistungsverbesserung erschweren kann.