Mit dieser Beispielworkload können Sie ein Nachhaltigkeitsmodell basierend auf verfügbaren Proxys erstellen. Dieses Modell ermöglicht die Bewertung der CO2-Effizienz einer Anwendung. Dieser Software Carbon Intensity-Score (SCI) stellt eine Basis für die Messung von Änderungen im CO2-Ausstoß einer Anwendung bereit.
Hinweis
Andere Treibhausgase neben Kohlendioxid haben unterschiedliche Auswirkungen auf die Umwelt. Zum Beispiel hat eine Tonne Methan die gleiche Heizwirkung wie 80 Tonnen Kohlendioxid. In diesem Artikel wird alles auf das CO2-Äquivalent normiert. Verweise auf Kohlenstoff bedeuten immer das CO2-Äquivalent.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
- Konfigurieren Sie die Anwendungsdatenquellen, die für die Berechnung des SCI-Scores verwendet werden sollen.
- Speichern Sie die Daten in Azure Table Storage in einem Azure Storage-Konto.
- Verwenden Sie Ereignishandler, um den SCI-Score zu berechnen. Ereignishandler können Azure Functions, Azure Logic Apps und Azure Blob Storage umfassen. Der Score ist die Menge des ausgestoßenen Kohlenstoffs in Gramm pro Einheit, wobei sich die Einheit auf den Skalierungsfaktor der Anwendung oder eine Annäherung an diesen mit Hilfe von Proxys bezieht.
- Verwenden Sie Azure Functions, Logic Apps und Automation-Runbooks, um die Bedarfsanpassung der Anwendung auszulösen oder den vordefinierten Eco-Modus der Anwendung zu initiieren.
- Verwenden Sie Power BI für Berichte und die Visualisierung des Scores im Zeitverlauf.
Komponenten
- Emissions Impact Dashboard für Azure hilft Ihnen, Ihre cloudbasierten Emissionen CO₂-Einsparungspotenzial zu messen. Es verfolgt direkte und indirekte Treibhausgasemissionen im Zusammenhang mit der Cloudnutzung nach.
- Application Insights ist eine Erweiterung von Azure Monitor und stellt Funktionen zur Verwaltung der Anwendungsleistung (Application Performance Management, APM) bereit. Application Insights liefert Ihnen Informationen dazu, wie die Benutzer Ihre Anwendung nutzen. Verwenden Sie dieses Wissen, um die Anwendungseffizienz zu verbessern.
- Azure Table Storage ist ein Dienst zum Speichern nicht relationaler strukturierter Daten (auch als strukturierte NoSQL-Daten bezeichnet). Er stellt einen Schlüssel-/Attributspeicher mit schemalosem Design bereit. Für viele Anwendungstypen ist der Zugriff auf Table Storage-Daten schnell und kostengünstig. Table Storage kostet in der Regel weniger als herkömmliches SQL für ähnliche Datenmengen.
- Azure Logic Apps ist eine Plattform, auf der Sie automatisierte Workflows mit wenig bis zu keinem Code erstellen und ausführen können. Mithilfe des visuellen Designers und der Auswahl aus vorgefertigten Vorgängen erstellen Sie einen Workflow, der Proxyquellen, Datenspeicher und Effizienzberechnungssysteme integriert und verwaltet.
- Azure Functions ist eine serverlose Lösung, die es Ihnen ermöglicht, weniger Code zu schreiben, weniger Infrastruktur zu verwalten und Kosten zu sparen. Durch die Cloudinfrastruktur werden alle aktuellen Ressourcen bereitgestellt, die zum Ausführen Ihrer Anwendungen benötigt werden.
- Power BI kann Daten in Analysen und Berichte umwandeln, die Einblicke in Echtzeit bieten. Unabhängig davon, ob Ihre Daten cloudbasiert oder lokal sind, verfügen Azure und Power BI über die Integration und Konnektivität, um Visualisierungen und Analysen zum Leben zu erwecken.
Alternativen
Sie können die in diesem Dokument verwendeten Azure-Dienste durch ähnliche Dienste ersetzen. Verwenden Sie Azure-Dienste oder -Tools, die bereits in Ihrer Umgebung bereitgestellt sind, um die Berechnung mit den geringsten Auswirkungen auf Ihre Infrastruktur durchzuführen und die Dichte und Nutzung vorhandener Ressourcen zu erhöhen.
- Verwenden Sie anstelle von Power BI-Dashboards Azure Monitor-Arbeitsmappen oder Azure Managed Grafana-Dienste.
- Ersetzen Sie Application Insights durch ein anderes APM-Tool, z. B Elasticsearch oder Open APM.
- Sie können Datentabellen mit einem anderen Datensatzsystem wie MySQL oder MariaDB speichern.
- Wenn Sie Azure Functions- oder Logic Apps-Anwendungen ausführen, sollten Sie die Berechnung regelmäßig über vorhandene Bereitstellungen starten.
- Wenn die Anwendungsressourcen auf mehrere Ressourcengruppen verteilt sind, verwenden Sie Tags, um Kostendaten zu korrelieren und die Kohlenstoffmenge zu berechnen, die die Anwendung ausstößt.
Szenariodetails
In diesen Abschnitten werden die Details beschrieben, die zum Berechnen einer Baseline für die Messung von Änderungen des CO2-Ausstoßes erforderlich sind.
Datenquellen
Versuchen Sie, eine Proxygleichung mit wenigen Variablen zu erstellen. Wählen Sie Proxymetriken aus, die das Verhalten und die Leistung der Anwendung darstellen. In diesem Beispiel werden die folgenden Metriken verwendet:
- Die CO2-Emission der Infrastruktur aus dem Emissions Impact Dashboard für Azure
- Die Kosten der Infrastruktur, gemessen in täglichen oder monatlichen Ausgaben nach Ressourcengruppe, aus Microsoft Cost Management
- Leistungs- und Skalierungsmetriken der Anwendung aus Application Insights:
- Die Anzahl der Benutzer, API-Aufrufe oder Serveranforderungen, die mit der Anwendung verbunden sind
- CPU-Auslastung
- Speicherauslastung
- Antwortzeit für Senden oder Empfangen
Ein Tutorial zum Einrichten von Application Insights für die Metriken finden Sie unter Application Insights für ASP.NET Core-Anwendungen.
Sie können der Gleichung weitere Variablen hinzufügen, z. B.:
- CO2-Emissionen von Infrastruktur- und Edgediensten
- Zeitpunkt der Verbindung der Benutzer, da Stromproduktion und -nachfrage zeitlich variieren
- Jede andere spezifische Metrik der Anwendung, die erklären kann, wie sich ihre Leistung im Laufe der Zeit ändert
Diese Gleichung in einen Score umzuwandeln, der auch die Anzahl der Benutzer widerspiegeln kann, ist die beste Annäherung an eine Bewertung des CO2-Fußabdrucks. Dieser Wert ist die Benchmark für Änderungen und Verbesserungen der Nachhaltigkeit der Anwendung.
Ein weiterer Aspekt der Anwendungsleistung sind die Kosten. In den meisten Fällen gibt es eine direkte Korrelation zwischen Leistungseffizienz und Kosten- und CO2-Einsparungen.
BESCHREIBUNG | Zusammenfassung |
---|---|
Die Leistung ist höher, aber die Kosten sind gleich. | Die Anwendung ist optimiert und senkt den CO2-Ausstoß. |
Die Kosten sind niedriger, aber die Leistung ist gleich. | Die Anwendung ist optimiert und senkt den CO2-Ausstoß. |
Leistung und Kosten sind höher. | Die Anwendung ist nicht optimiert und erhöht den CO2-Ausstoß. |
Die Kosten sind höher, aber die Leistung ist niedriger oder gleich. | Die Anwendung ist nicht optimiert und erhöht den CO2-Ausstoß, oder die Energiekosten sind höher, was auch einen höheren CO2-Ausstoß verursacht. |
Diese Korrelation zwischen dem SCI-Score der Anwendung, den Kosten und der Leistung ist für jede Anwendung einzigartig. Sie hängt von vielen Faktoren ab. Wenn Sie Daten für diese drei Variablen sammeln, können Sie einen Algorithmus erstellen, um deren Schwankungen vorherzusagen. Der SCI-Score hilft Ihnen, fundierte Entscheidungen über die Anwendungsarchitektur und -muster zu treffen.
Berechnungen
Verarbeiten Sie in diesem Szenario die Daten aus dem Emissions Impact Dashboard als Ausgangspunkt. Die SCI-Baseline wird wie folgt berechnet:
SCI = C * R
Die Komponenten sind:
SCI
. Software Carbon Intensity-ErgebnisC
. Die CO2-Emissionen für die AnwendungDieser Wert hängt davon ab, wie die Anwendung in Azure bereitgestellt wird. Wenn beispielsweise alle Anwendungsressourcen zu einer einzigen Ressourcengruppe gehören, wären die CO2-Emissionen für diese Ressourcengruppe die Variable
C
.Hinweis
In diesem Szenario werden keine anderen Emissionsquellen für die Anwendung berücksichtigt, die von der Architektur und dem Edge- oder Benutzerverhalten abhängen. Diese Überlegungen sind der nächste Schritt, wenn Sie Kohlenstoffproxys verwenden.
R
. Der Skalierungsfaktor für die AnwendungDieser Wert kann die Anzahl der durchschnittlichen gleichzeitigen Benutzer für das berücksichtigte Zeitfenster oder API-Anforderungen oder Webanforderungen sein. Der Skalierungsfaktor ermöglicht es, den Gesamteffekt der Nutzung der Anwendung zu berücksichtigen, anstatt nur den Speicherbedarf der Bereitstellung.
Das Zeitfenster ist ein weiterer wichtiger Aspekt dieser Berechnung. Die CO2-Emissionen variieren für jedes energieverbrauchende Gerät oder System, da das Energienetz zu bestimmten Zeiten über erneuerbare oder alternative Energiequellen verfügen kann, zu anderen Zeiten jedoch nicht. Sonnenenergie ist beispielsweise variabel. Für eine möglichst hohe Genauigkeit beginnen Sie mit dem kleinstmöglichen Zeitrahmen, zum Beispiel einer täglichen oder stündlichen Berechnung.
Das Emissions Impact Dashboard stellt monatliche Kohlenstoffinformationen basierend auf den Diensten innerhalb eines Abonnements bereit. Zum Ermitteln dieser Zahl für eine einzelne Ressourcengruppe, verwenden Sie die folgende Gleichung:
Carbon (res-group) = (Carbon(subscription) * Cost(res-group)) / Cost(subscription)
Speichern Sie die monatlichen Kohlenstoffinformationen für Ihre Ressourcengruppe zusammen mit den restlichen Daten, wie im folgenden Abschnitt erläutert.
Datenspeicher
Speichern Sie die Im vorherigen Abschnitt gesammelten Kohlenstoff- und Kohlenstoffproxyinformationen. Exportieren Sie die Informationen in Dashboards oder Berichte, damit Sie den Kohlenstoff-Score im Laufe der Zeit visualisieren und fundierte Entscheidungen treffen können. Aus Gründen der Nachhaltigkeit und im Einklang mit den bewährten Methoden des Well Architected Framework sollten Sie das minimal praktikable Aufzeichnungssystem verwenden, zum Beispiel Azure Table Storage.
Tabellen, die die gesammelten Daten beschreiben, verwenden Daten wie im folgenden Beispiel:
Daten aus Berichten
- Date
- Ressourcengruppenname
- CO2-Emissionen aus Dashboard C
- Kosten
Daten aus APM:
- CPU
- Arbeitsspeicher
- Antwortzeitverhältnis (Senden/Empfangen) Skalierungsfaktor R
Berechnungen: SCI
Weitere Informationen finden Sie unter
- Überlegungen zur Daten- und Speichergestaltung für nachhaltige Workloads in Azure
- Überlegungen zur Anwendungsplattform für nachhaltige Workloads in Azure
Datenkorrelationen
Daten zu Kohlenstoff, Leistung und Kosten der Anwendung ermöglichen es Ihnen, einen Korrelationsalgorithmus zu erstellen, der für Ihre Anwendung spezifisch ist. Diese Informationen bieten einen Leitfaden bei der Planung von Kosten, Leistung und CO2-Optimierung.
Hinweis
Gleichungen mit Rabatten für Kosten, z. B. Azure-Reservierungen oder Kostensparpläne, führen zu Abweichungen im Korrelationsalgorithmus.
Weitere Informationen zur Auswahl des Algorithmus finden Sie unter Auswählen von Algorithmen für Azure Machine Learning.
Datenanzeige
Sie können Daten und Berechnungen auf verschiedene Arten anzeigen, z. B. über eine benutzerdefinierte Azure Monitor-Arbeitsmappe oder ein einfaches Power BI-Dashboard. Weitere Informationen finden Sie unter Erstellen benutzerdefinierter KPI-Dashboards (Key Perfomance Indicator) mithilfe von Application Insights und Erstellen eines Power BI-Dashboards aus einem Bericht.
Aktionsauslöser für den SCI-Score
Nachdem Sie die CO2-Auswirkung einer Anwendung mithilfe von Proxys bewertet haben, besteht der nächste Schritt darin, zu definieren, welche Aktionen ungünstige Bedingungen im Kohlenstoffscore auslösen sollen. Einige Beispiele für diese Bedingungen sind:
- Energieproduktion und -nachfrage sind hoch und Energie ist teuer in der Produktion
- Strom ist aufgrund von Naturkatastrophen oder geopolitischen Konflikten nicht verfügbar
- Edgeinfrastruktur ist aufgrund von Ressourcenüberlastung oder Problemen mit der Lieferkette nicht verfügbar
Nachdem Sie die Fehlerpunkte identifiziert haben, die sich auf die Anwendung auswirken können, entscheiden Sie, welche Maßnahmen Sie ergreifen müssen, um die Anwendung resilient gegen Kohlenstoffspitzen zu machen.
Erwägen Sie die Erstellung einer Eco-Modus-Version der Anwendung. Die Eco-Modus-Version ist eine einfachere, kleinere, billigere und umweltfreundlichere Version der vollständigen Anwendung. Die Anwendung wird auf diese minimalen Funktionen zurückgesetzt, wenn es zu Spitzen bei den Kohlenstoffemissionen kommt.
Erwägen Sie, Endbenutzern bei der Auswahl der Eco-Modus-Version zu helfen. Bieten Sie eine grüne Schaltfläche an, mit der Benutzer bestätigen können, dass sie mit einer schlankeren Oberfläche, weniger Grafiken und eingeschränkten Funktionen einverstanden sind, um im Gegenzug die CO2-Emissionen zu reduzieren. Die Einbeziehung von Benutzern bietet die Möglichkeit, kulturelle Veränderungen zusammen mit technischen Veränderungen voranzutreiben:
- Präzisieren Sie die Auswirkung dieser Wahl: Wenn Sie die grüne Version verwenden, sparen Sie <X> an Kohlenstoff oder bringen unsere Kohlenstoffbilanz auf <Y>.
- Lernen Sie das Verhalten der Benutzer kennen, und passen Sie die Eco-Modus-Version an ihre Entscheidungen an. Wenn jemand zum Beispiel nur 10 Prozent der Anwendungsfunktionen nutzt, könnte er ein idealer Nutzer der grünen Version sein.
- Im Idealfall wird die Vollversion im Laufe der Zeit im Hinblick auf die Emission optimiert und die Versionen konvergieren schließlich.
Überlegungen
Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.
Sicherheit
Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.
Für mehr Sicherheit verwenden Sie Azure Virtual Network-Dienstendpunkte zum Schützen von Azure-Dienstressourcen, indem diese ausschließlich auf Ihr virtuelles Netzwerk beschränkt sind. Der öffentliche Internetzugriff auf diese Ressourcen wird dadurch vollständig geschlossen, sodass nur Datenverkehr aus Ihrem virtuellen Netzwerk zulässig ist.
Mit diesem Ansatz erstellen Sie ein virtuelles Netzwerk in Azure und dann private Dienstendpunkte für Azure-Dienste. Diese Dienste sind dann auf Datenverkehr aus diesem virtuellen Netzwerk beschränkt. Sie können auch über ein Gateway aus Ihrem lokalen Netzwerk auf die Dienste zugreifen.
Hinweis
Zum Verschieben von Daten aus einem lokalen Speicher in Azure Storage müssen Sie öffentliche IP-Adressen von Ihren lokalen Computern zulassen oder Azure ExpressRoute verwenden. Ausführliche Informationen finden Sie unter Bereitstellen von dedizierten Azure-Diensten in virtuellen Netzwerken.
Allgemeine Informationen zum Entwerfen sicherer Lösungen finden Sie in der Dokumentation zur Azure-Sicherheit.
Kostenoptimierung
Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.
Die Emissions Impact Dashboard- und Microsoft Cost Management-Berichte sind kostenlos. Dieses Beispiel ist absichtlich minimal, um Kosten und Kohlenstoffemissionen zu sparen. Sie können diese Architektur mithilfe mehrerer alternativer Azure-Dienste bereitstellen.
Verwenden Sie einen beliebigen gleichwertigen Dienst, den Sie bereits in Ihrer Anwendungsbereitstellung verwenden. Die folgenden Ressourcen enthalten Informationen zu Komponentenpreisen:
- App Insights – Preise
- Azure Table Storage – Preise
- Azure Logic Apps – Preise
- Azure Functions – Preise
- Azure Automation – Preise
- Power BI – Preise
Effiziente Leistung
Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.
Der Hauptzweck dieser Architektur besteht darin, einen Nachhaltigkeitsscore für Ihre Anwendungen mit minimalen Auswirkungen auf Kosten und Kohlenstoff selbst zu liefern. Die meisten Komponenten sind PaaS-Dienste (Platform-as-a-Service) und serverlose Azure-Dienste, die je nach Nutzung und Datenverkehr unabhängig skaliert werden können.
Das Dashboard und die Speicherschnittstelle in diesem Beispiel sind nicht für eine intensive Nutzung und Abfrage geeignet. Wenn Sie diese Lösung für viele Benutzer bereitstellen möchten, sollten Sie die folgenden Alternativen in Betracht ziehen:
- Entkoppeln sie die extrahierten Daten, indem Sie sie transformieren und in einem anderen Aufzeichnungssystem speichern.
- Wechseln Sie von Azure Table Storage zu einer besser skalierbaren Datenstrukturalternative, wie z. B. Azure Cosmos DB.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Paola Annis | Principal SVC Engineering Manager
- Jennifer Wagman | Service Engineer
Andere Mitwirkende:
- Chad Kittel | Principal SDE
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
Diese Arbeit orientiert sich an den Prinzipien und der Methodik der Green Software Foundation.
Der nächste Schritt auf dem Weg zu einer umweltfreundlicheren Anwendung besteht darin, das Carbon Aware SDK in Ihre Anwendung einzubinden. Sie können Auslöser in Echtzeit automatisieren, sobald Sie bestimmte Kohlenstoffbedingungen erfüllen. Weitere Informationen finden Sie unter Green Software Foundation Carbon Aware SDK.
Eine Anleitung für nachhaltige Cloudworkloads im Well Architected Framework finden Sie in der Dokumentation zu nachhaltigen Workloads.
Weitere Informationen zum Thema Nachhaltigkeit finden Sie in diesen Artikeln:
- Aufbau einer nachhaltigen IT-Infrastruktur
- Reduzieren Sie die Umweltauswirkungen des Betriebs
- Was ist Microsoft Cloud for Sustainability?