Freigeben über


Anwendungsentwurf nachhaltiger Workloads in Azure

Beim Erstellen neuer oder Aktualisieren vorhandener Anwendungen ist es wichtig zu überlegen, wie sich die Lösung auf das Klima auswirkt und ob Es Möglichkeiten gibt, sich zu verbessern und zu optimieren. Erfahren Sie mehr über Überlegungen und Empfehlungen, um Ihren Code und Ihre Anwendungen für einen nachhaltigeren Anwendungsentwurf zu optimieren.

Wichtig

Dieser Artikel ist Teil der Azure Well-Architected nachhaltigen Workloadreihe . Wenn Sie mit dieser Reihe nicht vertraut sind, empfehlen wir Ihnen, mit einer nachhaltigen Workload zu beginnen?

Codeeffizienz

Die Anforderungen an Anwendungen können variieren, und es ist wichtig, Möglichkeiten zur Stabilisierung der Nutzung zu prüfen, um eine Über- oder Unterauslastung von Ressourcen zu verhindern, was zu unnötigen Energieüberlastungen führen kann.

Auswerten des Verschiebens von Monolithen zu einer Microservicearchitektur

Monolithische Anwendungen werden in der Regel als Einheit skaliert, sodass nur die einzelnen Komponenten skaliert werden können, die sie möglicherweise benötigen.

Ausrichtung der Green Software Foundation: Energieeffizienz, Hardwareeffizienz

Empfehlung:

  • Bewerten Sie den Leitfaden zur Microservicearchitektur .
  • Eine Microservicearchitektur ermöglicht die Skalierung nur der erforderlichen Komponenten während der Spitzenlast; Sicherstellen, dass Komponenten im Leerlauf herunter- oder herunterskaliert werden. Darüber hinaus kann dies den Aufwand und die Ressourcen reduzieren, die für die Bereitstellung monolithischer Anwendungen erforderlich sind.
  • Berücksichtigen Sie diesen Kompromiss: Während Sie die erforderlichen Computeressourcen reduzieren, können Sie den Datenverkehr im Netzwerk erhöhen, und die Komplexität der Anwendung kann erheblich zunehmen.
  • Berücksichtigen Sie diesen anderen Kompromiss: Die Umstellung auf Microservices kann zu einem zusätzlichen Bereitstellungsaufwand mit zahlreichen Ähnlichkeiten in Bereitstellungspipelines führen. Berücksichtigen Sie sorgfältig die erforderlichen Bereitstellungsressourcen für monolithische und Microservicearchitekturen.
  • Lesen Sie außerdem das Containerisieren monolithischer Anwendungen.

Verbessern der API-Effizienz

Viele moderne Cloudanwendungen sind für die asynchrone Transaktion vieler Nachrichten zwischen Diensten und Komponenten konzipiert. Betrachten Sie das Format, das zum Codieren der Nutzlastdaten verwendet wird. Wie viele Informationen benötigt Ihre Anwendung, um zu kommunizieren, und gibt es Raum, um die Kommunikation zu reduzieren?

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

Sicherstellen der Abwärtskompatibilität von Software, um sicherzustellen, dass sie auf Legacyhardware funktioniert

Berücksichtigen Sie, wie Anwendungen Informationen rendern. Muss die Anwendung alles kritisch in höchster Qualität bedienen, was zu einer höheren Bandbreite und Verarbeitung führt? Gibt es Raum, um die Qualität der Komponenten in der Benutzeroberfläche zu reduzieren, um Nachhaltigkeitsziele besser zu erfüllen?

Ausrichtung von Green Software Foundation: Hardwareeffizienz

Empfehlung:

  • Unterstützen sie mehr Endbenutzergeräte, z. B. ältere Browser und Betriebssysteme. Diese Abwärtskompatibilität verbessert die Hardwareeffizienz, indem vorhandene Hardware wiederverwendet wird, anstatt ein Hardwareupgrade zu erfordern, damit die Lösung funktioniert.
  • Berücksichtigen Sie diesen Kompromiss: Wenn die neuesten Softwareupdates erhebliche Leistungsverbesserungen aufweisen, ist die Verwendung älterer Softwareversionen möglicherweise nicht effizienter.

Nutzen von cloudnativen Entwurfsmustern

Informationen zu cloudnativen Entwurfsmustern sind hilfreich für die Erstellung von Anwendungen, unabhängig davon, ob sie in Azure gehostet werden oder woanders ausgeführt werden. Durch die Optimierung der Leistung und der Kosten Ihrer Cloudanwendung wird auch die Ressourcennutzung und damit die CO2-Emissionen reduziert.

Ausrichtung der Green Software Foundation: Energieeffizienz, Hardwareeffizienz

Empfehlung:

Erwägen Sie die Verwendung von Trennschaltermustern

Erwägen Sie das Auswerten und Verhindern von Anwendungen am Ausführen von Vorgängen, die wahrscheinlich fehlschlagen. Wiederholte Fehler können zu Mehraufwand und unnötiger Verarbeitung führen, den Sie mit geeigneten Entwurfsmustern vermeiden können.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Ein Trennschalter kann als Proxy für Vorgänge fungieren, die möglicherweise fehlschlagen, und sollte die Anzahl der kürzlich aufgetretenen Fehler überwachen und diese Informationen verwenden, um zu entscheiden, ob fortgesetzt werden soll.
  • Untersuchen Sie das Trennschaltermuster, und überlegen Sie dann, wie Sie die Trennschaltermuster für Ihre Anwendungen implementieren können.
  • Erwägen Sie die Verwendung von Azure Monitor , um Fehler zu überwachen und Warnungen einzurichten.

Optimieren von Code für eine effiziente Ressourcennutzung

Anwendungen, die mit ineffizientem Code bereitgestellt werden, können zu inhärenten Auswirkungen auf die Nachhaltigkeit führen.

Ausrichtung der Green Software Foundation: Energieeffizienz, Hardwareeffizienz

Empfehlung:

  • Reduzieren Sie CPU-Zyklen und die Anzahl der Ressourcen, die Sie für Ihre Anwendung benötigen.
  • Verwenden Sie optimierte und effiziente Algorithmen und Entwurfsmuster.
  • Beachten Sie das Prinzip "Nicht wiederholen Sie sich selbst (DRY)" .

Optimieren für asynchrone Zugriffsmuster

Die Anforderungen an Anwendungen können variieren, und es ist wichtig, Möglichkeiten zur Stabilisierung der Nutzung zu prüfen, um eine Über- oder Unterauslastung von Ressourcen zu verhindern, was zu unnötigen Energieüberlastungen führen kann.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Warteschlangen- und Pufferanforderungen, die keine sofortige Verarbeitung erfordern, und anschließend im Batch verarbeiten. Wenn Sie Ihre Anwendungen auf diese Weise entwerfen, können Sie eine stabile Auslastung erzielen und den Verbrauch vereinfachen, um skurrige Anforderungen zu vermeiden.
  • Erfahren Sie mehr über die Optimierung für asynchrone Zugriffsmuster.

Auswerten des serverseitigen und clientseitigen Renderings

Bestimmen Sie, ob beim Erstellen von Anwendungen mit einer Benutzeroberfläche serverseitig oder clientseitig gerendert werden soll.

Ausrichtung der Green Software Foundation: Energieeffizienz, Hardwareeffizienz

Empfehlung:

  • Beachten Sie die folgenden Vorteile des serverseitigen Renderings:

    • Wenn die Leistung des Servers aus weniger umweltschädlichen Alternativen als dem Gebietsschema des Clients stammt.
    • Wenn die Hardware auf dem Server ein besseres Verarbeitungs-Energie-Verhältnis aufweist.
    • Kann die zentralisierte Zwischenspeicherung verwenden, um mehrere unnötige Rendervorgänge zu reduzieren.
    • Die Verringerung der Anzahl von Browser-zu-Server-Roundtrips kann besonders wichtig sein, wenn das Gerät des Clients über eine verlustbehaftete Verbindung verfügt.
    • Wenn die Clientgeräte älter sind und über langsamere CPUs verfügen. Benutzer müssen ihre Geräte nicht aktualisieren, um einen modernen Browser zu unterstützen.
  • Berücksichtigen Sie die folgenden Vorteile des clientseitigen Renderings:

    • Wenn die Endbenutzergeräte besser geeignet sind, übertragen Sie die Verantwortung für das Rendern auf die Clients.
    • Es ist effizienter, nur das zu rendern, was benötigt wird und wie gewünscht, anstatt alles mindestens einmal zu rendern.
    • Es ist kein Server erforderlich, da Sie sich auf statischen Speicher verlassen können.
    • Browserzwischenspeicherung wird auf den Clients verwendet.

Achten Sie auf UX-Design für Nachhaltigkeit

Überlegen Sie, wie sich der UX-Entwurf einer Workload auf die Nachhaltigkeit auswirkt, und bestimmen Sie, welche Optionen es gibt, um die Energieeffizienz zu verbessern und unnötige Netzwerklast, Datenverarbeitung und Computeressourcen zu reduzieren.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Erwägen Sie, die Anzahl der Komponenten zu reduzieren, die auf Seiten geladen und gerendert werden sollen.
  • Bestimmen Sie, ob die Anwendung Bilder und Videos mit niedrigerer Auflösung rendern kann.
    • Rendern Sie Bilder in voller Größe nicht als Miniaturansichten, bei denen der Browser die Größe ändert.
    • Wenn Sie Bilder in voller Größe als Miniaturansichten oder bilder mit geänderter Größe verwenden, werden mehr Daten, unnötiger Netzwerkdatenverkehr und eine zusätzliche clientseitige CPU-Auslastung aufgrund von Bildgrößenänderung und Vorabrendering übertragen.
  • Wenn Sie sicherstellen, dass keine nicht verwendeten Seiten vorhanden sind, wird das UX-Design minimiert.
  • Erwägen Sie Such- und Auffindbarkeit. Dadurch können Benutzer das Gesuchte leichter finden, um die Menge der gespeicherten und abgerufenen Daten zu verringern.
  • Erwägen Sie, eine einfachere Benutzeroberfläche bereitzustellen, weniger Ressourcen zu verwenden und eine geringere Auswirkung auf die Nachhaltigkeit zu haben, und benutzern eine fundierte Auswahl zu bieten.
  • Sparen Sie Energie, indem Sie Ihre Apps und Websites im dunklen Modus mit dunklem Hintergrund anbieten.
  • Entscheiden Sie sich nach Möglichkeit für die Verwendung von Systemschriftarten, um zu vermeiden, dass Clients zusätzliche Schriftarten herunterladen müssen, was zu einer größeren Netzwerklast führt.

Aktualisieren von Legacycode

Erwägen Sie, Legacycode zu aktualisieren oder veraltet zu machen, wenn er nicht in einer modernen Cloudinfrastruktur oder mit den neuesten Updates ausgeführt wird.

Ausrichtung von Green Software Foundation: Hardwareeffizienz

Empfehlung:

  • Identifizieren sie ineffizienten Legacycode, der für die Modernisierung geeignet ist.
  • Überprüfen Sie, ob es Optionen gibt, um zu serverlos oder zu einer der optimierten PaaS-Optionen zu wechseln.
  • Betrachten Sie diesen Kompromiss: Das Aktualisieren von altem Code, der möglicherweise veraltet ist, kann wertvolle Zeit in Anspruch nehmen.

Nächster Schritt

Überprüfen Sie die Entwurfsüberlegungen für die Anwendungsplattform.