Die in diesem Artikel beschriebene Lösung kann Ihnen beim Erstellen eines Nachhaltigkeitsmodells für Anwendungen helfen, die in Azure gehostet werden. Das Modell verwendet Proxys, mit denen Sie im Laufe der Zeit die CO2-Auswirkung und Effizienz einer Anwendung bewerten können. Die Bewertung wird als SCI-Bewertung (Software Carbon Intensity) bezeichnet. Es bietet eine Grundlage für die Messung von Änderungen des Kohlenstoffausstoßes einer Anwendung.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
- Konfigurieren Sie Anwendungsdatenquellen, die Sie zur Berechnung Ihres SCI-Scores verwenden. Die Daten können die Emissionsmessungen sein, die vom Carbon-Optimierungsblatt im Azure-Portal bereitgestellt werden, oder sie können Proxymessungen von Nicht-Microsoft-Quellen oder -Systemen sein.
- Exportieren Sie Co2-Emissionsdaten in Ihren Datensee.
- Verwenden Sie Ereignishandler wie Azure Functions oder Azure Logic Apps, um die SCI-Bewertung zu berechnen. Die Ausgabe ist die Menge des ausgestoßenen Kohlenstoffs in Gramm pro Einheit, wobei sich die Einheit auf den Anwendungsskalierungsfaktor oder eine auf Proxys basierende Annäherung daran bezieht.
- Verwenden Sie Technologien wie Azure Functions, Logic Apps oder Azure Automation-Runbooks, um die Nachfragegestaltung in der Anwendung auszulösen oder den vordefinierten Öko-Modus der Anwendung zu starten.
- Verwenden Sie Power BI, um den Score und seine Veränderung im Zeitverlauf zu melden und zu visualisieren.
Komponenten
- Das Blatt Kohlenstoffoptimierung im Azure-Portal ermöglicht die Messung der CO2-Emissionen von Azure-Workloads auf Ressourcengruppenebene.
- Die Cloud for Sustainability API liefert die zugrunde liegenden Daten für die Co2-Optimierung. Sie können es verwenden, um Informationen zu den Emissionen Ihres Abonnements abzurufen.
- Application Insights ist ein Feature von Azure Monitor, das die Anwendungsleistungsverwaltung (Application Performance Management, APM) bereitstellt. Es kann Ihnen helfen, aussagekräftige Einblicke in die Nutzung Ihrer App durch Menschen zu gewinnen. Mit diesem Wissen können Sie datengesteuerte Entscheidungen zur Verbesserung der Effizienz Ihrer Anwendung treffen.
- Azure Blob Storage speichert die Emissionsinformationen aus der Azure-Co2-Optimierung, aus benutzerdefinierten Berechnungen oder aus anderen Proxys für Emissionen.
- Azure Data Lake ist ein zentrales Repository, das große Datenmengen in seiner ursprünglichen Form erfasst und speichert. Die Daten können dann verarbeitet und als Grundlage für verschiedene Analyseanforderungen verwendet werden.
- Mit Azure Logic Apps können Sie automatisierte Workflows mit wenig bis zu keinem Code erstellen und ausführen. Mithilfe des visuellen Designers und der Auswahl aus vorgefertigten Vorgängen können Sie schnell einen Workflow erstellen, der Ihre Proxy-Quellen, Datenspeicher und Effizienzberechnungssysteme integriert und verwaltet.
- Mit Azure Functions können Sie kleine Codeeinheiten ausführen. Es skaliert automatisch Ressourcen basierend auf Bedarf, und Sie zahlen nur für die tatsächliche Ausführungszeit. Sie können es verwenden, um Nachhaltigkeitsberechnungen zu erstellen und sie in Blob Storage oder einem Data Lake zu speichern.
- Azure Automation bietet Prozessautomatisierung über Runbooks. Sie können die Runbooks verwenden, um komplexe Logik mithilfe von PowerShell-Code zu implementieren, der Ihre Anwendung beeinflussen kann, um die Effizienz zu verbessern. Dieser Dienst kann auch einen geschäftlichen Nutzen hinzufügen, indem Fehler und Betriebskosten reduziert werden.
- Mit Power BI können Sie Ihre Daten in Analysen und Berichte umwandeln, die Einblicke in Echtzeit bieten.
Alternativen
Die in diesem Artikel beschriebenen Azure-Dienste können durch ähnliche Dienste ersetzt werden. Um die Dichte und Nutzung vorhandener Ressourcen zu erhöhen, führen Sie die Berechnungen mit minimalen Auswirkungen auf Ihre Infrastruktur durch, indem Sie Azure-Dienste oder -Tools verwenden, die bereits in Ihrer Umgebung bereitgestellt sind:
- Sie können Power BI-Dashboards durch Azure Monitor-Arbeitsmappen oder Azure Managed Grafana-Dienste ersetzen.
- Sie können Application Insights durch jedes andere APM-Tool (Application Performance Management) wie Elasticsearch Application Performance Management (APM) oder OpenAPM ersetzen.
- Daten in Form von Tabellen oder unstrukturierten Daten können in jedem beliebigen Aufzeichnungssystem wie MySQL oder MariaDB oder Azure Cosmos DB und MongoDB gespeichert werden.
- Wenn Sie über einen ausgeführten Azure Functions- oder Logic Apps-Bereich verfügen, können Sie die Berechnung regelmäßig in Ihren vorhandenen Bereitstellungen ausführen.
- Wenn die Anwendungsressourcen auf mehrere Ressourcengruppen verteilt sind, können Sie mithilfe von Tags Kostendaten korrelieren und die von der Anwendung ausgestoßene CO2-Menge berechnen.
Szenariodetails
Diese Architektur wurde entwickelt, um Co2-Optimierungsdaten aus Azure und anderen Quellen zu sammeln, um einen umfassenden Überblick über die Auswirkungen auf die Umwelt einer Anwendung zu bieten. Daten werden aus der Azure-Co2-Optimierung gesammelt. Für Nicht-Azure-Umgebungen wird ein Proxy verwendet, um relevante Kohlenstoffmetriken abzurufen. Nachdem die Daten konsolidiert wurden, werden SCI-Berechnungen durchgeführt, um den gesamten Co2-Fußabdruck zu bewerten. Die Ergebnisse werden dann in einem Azure Storage-Konto oder Data Lake für eine langfristige Aufbewahrung gespeichert, wodurch BI-Analysen und historische Berichte ermöglicht werden. Dieser Ansatz sorgt für eine zentrale Nachverfolgung der Co2-Auswirkungen über verschiedene Infrastrukturen hinweg und unterstützt strategische Nachhaltigkeitsbemühungen.
Die Co2-Emissionsinformationen werden teilweise aus dem Azure-Portal Carbon-Optimierungsblatt gesammelt und nach Möglichkeit über Proxy teilweise berechnet.
Es ist wichtig, eine separate Architektur zu verwenden, um Azure Carbon-Optimierungsdaten aus zwei wichtigen Gründen zu sammeln:
- Azure Carbon Optimization-Daten werden nur für die letzten zwölf Monate (in einem rollierenden Fenster) gespeichert und angezeigt. Wenn eine langfristige Nachverfolgung eines Co2-Fußabdrucks erforderlich ist, stellt ein dediziertes System die Aufbewahrung detaillierter historischer Informationen sicher.
- Eine Anwendung kann mehrere Infrastrukturen umfassen, wobei Azure nur eine Komponente ist. Eine separate Architektur ermöglicht eine zentrale Überwachung der Co2-Auswirkungen in allen Umgebungen, um einen ganzheitlichen Blick zu bieten und umfassendere Einblicke in die Nachhaltigkeit zu gewährleisten.
Hinweis
Treibhausgase bestehen nicht nur aus Kohlendioxid und sie haben nicht alle die gleiche Auswirkung auf die Umwelt. Zum Beispiel hat eine Tonne Methan die gleiche Heizwirkung wie 80 Tonnen Kohlendioxid. In diesem Artikel wird alles auf das Maß CO2-Äquivalent normiert. Alle Verweise auf Kohlenstoff beziehen sich auf das CO2-Äquivalent.
Datenquellen
Im Allgemeinen sollten Sie eine Proxygleichung mit wenigen Variablen erstellen. Die von Ihnen ausgewählten Proxy-Metriken sollten das Verhalten und die Leistung der Anwendung darstellen.
Diese Metriken werden in diesem Beispiel verwendet:
- Die Co2-Emission der Infrastruktur, die aus der Co2-Emissions-API abgerufen wird. Diese API ist die Quelle für das Emissionsbelastungs-Dashboard und das Carbon-Optimierungsblatt im Azure-Portal. Die Daten sind auf Ressourcengruppenebene verfügbar, wodurch es einfacher ist, die Emissionen Ihrer Anwendung nachzuverfolgen.
- Leistungs- und Skalierungsmetriken der Anwendung, gesammelt von Application Insights:
- Der Skalierungsfaktor (API-Aufrufe, Serveranforderungen oder eine andere Metrik) für die Anwendung
- CPU-Auslastung
- Speicherauslastung
- Antwortzeit (Senden und Empfangen)
Ein Tutorial zum Einrichten von Application Insights zum Abrufen der erforderlichen Metriken finden Sie unter Application Insights für ASP.NET Core-Anwendungen.
Sie können der Gleichung andere Variablen hinzufügen, z. B.:
- CO2-Emissionen durch Edge-Dienste und Infrastruktur.
- Der Zeitpunkt der Verbindung der Benutzer, da Stromproduktion und -nachfrage zeitlich variieren
- Alle anderen Messwerte der App können Ihnen Aufschluss darüber geben, wie sich ihre Leistung im Laufe der Zeit verändert.
Diese Indem Sie diese Gleichung in einen Wert integrieren, der auch die Anzahl der Benutzer widerspiegeln kann, erzielen Sie die beste Annäherung an einen CO2-Wert. Diese Punktzahl ist Ihr Maßstab für jede weitere Änderung und Verbesserung in Richtung Nachhaltigkeit der App.
Die Kosten sind ein weiterer Aspekt, der mit der Anwendungsleistung verbunden ist. In den meisten Fällen kann ein direkter Zusammenhang zwischen Leistungseffizienz und Kosten- und Kohlenstoffeinsparungen hergestellt werden. Diese Korrelation führt zu den folgenden Annahmen:
- Wenn die Leistung höher ist, aber die Kosten gleich sind, haben Sie die App optimiert und co2-Emissionen reduziert.
- Wenn die Kosten bei gleicher Leistung sinken, haben Sie die App optimiert und den CO2-Ausstoß reduziert.
- Wenn sowohl die Leistung als auch die Kosten steigen, haben Sie die App nicht optimiert, und Sie haben die Co2-Emissionen erhöht.
- Wenn die Kosten steigen, die Leistung jedoch abnimmt oder gleich bleibt, haben Sie die App nicht optimiert und der CO2-Ausstoß ist gestiegen (oder die Energiekosten sind höher, was ebenfalls zu höheren CO2-Emissionen führt).
Diese Korrelation zwischen dem SCI-Score, den Kosten und der Leistung einer Anwendung ist für jede Anwendung einzigartig und hängt von vielen Faktoren ab. Durch das Sammeln von Daten für diese drei Variablen können Sie einen Korrelationsalgorithmus erstellen, der es Ihnen ermöglicht, jede Variation der drei zu prognostizieren und fundierte Entscheidungen über die Anwendungsarchitektur und -muster zu treffen.
Berechnungen
In dem hier beschriebenen Szenario ist es nicht möglich, eine diskrete Berechnung für die verwendeten Proxys zu erstellen. Stattdessen werden die vom Emissions Impact Dashboard gesammelten Daten als Ausgangspunkt verarbeitet. Hier ist die SCI-Basisplanberechnung:
SCI = C*R
In dieser Formel:
C
ist die CO2-Emissionen für die Anwendung Dieser Wert wird davon beeinflusst, wie die Anwendung in Azure bereitgestellt wird. Wenn sich beispielsweise alle Anwendungsressourcen in einer einzigen Ressourcengruppe befinden, istC
der CO2-Ausstoß für diese Ressourcengruppe.Hinweis
Bisher werden andere Emissionsquellen für die Anwendung ignoriert, da sie von der Architektur und dem Edge-/Benutzerverhalten abhängen. Wenn Sie Proxys für Daten verwenden, können Sie diese Quellen im nächsten Schritt berücksichtigen.
R
ist der Skalierungsfaktor für die Anwendung Dies kann die durchschnittliche Anzahl gleichzeitiger Benutzer für das Zeitfenster, API-Anfragen, Web-Anfragen oder eine andere Metrik sein. Dieser Wert ist wichtig, da er zu einer Bewertung führt, die die Gesamtwirkung der Nutzung der Anwendung und nicht nur den Bereitstellungsbedarf erfasst.
Das Zeitfenster ist natürlich ein weiterer wichtiger Aspekt dieser Berechnung: Co2-Emissionen für jedes energieaufwendige Gerät oder System variieren im Laufe der Zeit, da das Energienetz zu einigen Zeiten erneuerbare oder alternative Energiequellen (z. B. Sonnenenergie) haben könnte, aber nicht zu anderen. Daher ist es wichtig, mit dem kürzesten möglichen Zeitrahmen zu beginnen, um die Präzision zu erhöhen. Beispielsweise können Sie mit einer täglichen oder stündlich berechneten Berechnung beginnen.
Die CO2-Emissions-API stellt derzeit monatliche Co2-Informationen basierend auf den Diensten innerhalb eines Abonnements auf Ressourcengruppenebene bereit. Mithilfe der bereitgestellten REST-API können Sie Emissionsdaten in einen Datensee exportieren, der alle Nachhaltigkeitsdaten für die Anwendung enthält.
Datenspeicher
Sie sollten die Kohlenstoff- und Kohlenstoffproxyinformationen speichern, die Sie in einer Lösung sammeln, die Sie mit Dashboards oder Berichten verbinden können. Auf diese Weise können Sie Ihre Co2-Bewertung im Laufe der Zeit visualisieren und fundierte Entscheidungen treffen. Um Nachhaltigkeit zu verbessern und die bewährten Methoden von Azure Well-Architected Framework zu optimieren, empfehlen wir, das mindestfähige System zu verwenden. (Weitere Informationen finden Sie unter Überlegungen zur Daten- und Speichergestaltung für nachhaltige Workloads auf Azure - und Anwendungsplattformaspekten für nachhaltige Workloads in Azure.) Azure Data Lake Storage wird in dieser Architektur verwendet.
Datenkorrelationen
Wenn Sie mit dem Sammeln von Daten zu Kohlenstoff, Leistung und Kosten Ihrer Anwendung beginnen, verfügen Sie über wertvolle Informationen, mit denen Sie einen Korrelationsalgorithmus erstellen können, der für Ihre Anwendung spezifisch ist und Anleitungen liefert, wenn Sie Kosten, Leistung und Co2-Optimierung planen.
Weitere Informationen finden Sie unter So wählen Sie Algorithmen für Azure Machine Learning aus.
Datenanzeige
Sie können Ihre Daten und Berechnungen auf verschiedene Weise anzeigen, einschließlich angepasster Azure Monitor-Dashboards und einfacher Power BI-Dashboards.
Was kann Ihr SCI-Score auslösen?
Nachdem Sie Ihre Nachhaltigkeitsbewertung kennen, fragen Sie sich vielleicht, wie Sie es verbessern können.
Wenn Sie die Co2-Auswirkungen Ihrer Anwendung mithilfe von Proxys ermitteln können, konzentrieren Sie sich im nächsten Schritt auf das Definieren von Aktionen, die durch ungünstige Bedingungen in der Bewertung ausgelöst werden können. Einige Beispiele für diese Bedingungen sind:
- Die Energieproduktion und -nachfrage ist zeitaufwendig und damit teuer zu produzieren.
- Strom ist nicht verfügbar. Diese Bedingung könnte durch eine Naturkatastrophe oder einen geopolitischen Konflikt verursacht werden.
- Plötzlicher Ausfall der Edge-Infrastruktur aufgrund übermäßigen Ressourcenverbrauchs oder Problemen in der Lieferkette.
Wenn Sie die Fehlerpunkte identifizieren können, die Ihre Anwendung beeinträchtigen können, können Sie entscheiden, welche Maßnahmen Sie ergreifen müssen, um Ihre Anwendung widerstandsfähiger gegen Kohlenstoffspitzen zu machen.
Sie können eine der folgenden Aktionen durchführen:
Wenden Sie eine ordnungsgemäße Beeinträchtigung der Dienste und Features der App an, wie in der Dokumentation zu Well-Arcchitected Framework beschrieben.
Erstellen Sie eine Eco-Mode-Version Ihrer Anwendung. Der Eco-Modus ist eine einfachere, kleinere, billigere, nachhaltigere Version der Anwendung, die minimale Funktionen bietet. Sie können diese Version während co2-Emissionsspitzen wiederherstellen. Sie können Ihre Endbenutzer auch einfach schulen, eine Eco-Version nach Wahl zu verwenden. Sie können einen „grünen Knopf“ bereitstellen, der den Menschen die Nutzung einer schlankeren Benutzeroberfläche, weniger Grafiken und eingeschränkter Funktionen im Austausch für geringere CO2-Emissionen ermöglicht.
Wenn Sie sich dafür entscheiden, Ihre Benutzer einzubeziehen, erstellen Sie eine Möglichkeit, einen kulturellen Wandel zusammen mit dem technischen zu fördern: - Sie können die Auswirkungen der Wahl angeben: "Mit der Eco-Version sparen Sie x Menge Kohlenstoff" oder "bringen unsere Co2-Bewertung auf y". - Sie können ein Verständnis des Benutzerverhaltens gewinnen und die Eco-Version ändern, um ihre Entscheidungen widerzuspiegeln. (Vielleicht verwenden sie 10 % der Features und sind ein idealer Benutzer der Eco-Version.) - Da die Vollversion für emissionsoptimiert ist, können Sie die beiden Versionen im Idealfall zusammenführen.
Ü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 zusätzliche Sicherheit können Sie Azure Virtual Network-Dienstendpunkte verwenden, um den öffentlichen Internetzugriff auf Azure-Dienstressourcen zu entfernen und Datenverkehr nur aus Ihrem virtuellen Netzwerk zuzulassen.
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 Ihres lokalen Netzwerks darauf zugreifen.
Denken Sie daran, dass Sie öffentliche IP-Adressen von lokal oder Azure ExpressRoute zulassen müssen, um Daten von der lokalen Bereitstellung in Azure Storage zu verschieben. 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 darum, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Überblick über die Säule „Kostenoptimierung“.
Sie können diese Architektur mithilfe mehrerer alternativer Azure-Dienste bereitstellen. Es wurde absichtlich auf ein Minimum gehalten, um Kosten und Co2-Emissionen zu sparen.
Während wir Sie ermutigen, gleichwertige Dienste zu verwenden, die Sie bereits in Ihrer Anwendungsbereitstellung haben, stehen Preisinformationen für jede Architekturkomponente zur Verfügung:
Das Emissions Impact Dashboard, die Azure-Kohlenstoffoptimierung und die Microsoft Cost Management-Berichte sind kostenlos.
Effiziente Leistung
Die Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Überblick über die Säule „Leistungseffizienz“.
Der Hauptzweck dieser Architektur besteht darin, Ihren Anwendungen über einen Prozess mit minimalen Auswirkungen auf Kosten und CO2-Ausstoß eine Nachhaltigkeitsbewertung zu geben. 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.
In diesem Szenario sind das Dashboard und die Speicherschnittstelle nicht für eine umfassende Nutzung und Konsultation vorgesehen. Wenn Sie die Bereitstellung für eine große Anzahl von Benutzern planen, sollten Sie eine der folgenden Optionen in Betracht ziehen:
- Entkoppeln Sie die extrahierten Daten, indem Sie sie transformieren und in einem anderen System speichern.
- Ersetzen Sie Data Lake Storage oder Azure Table Storage durch eine skalierbarere Datenstrukturalternative wie Azure Cosmos DB.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautoren:
- Paola Annis | Leitender Manager für Customer Experience Engineering
- Davide Bedin | Senior Cloud Solution Architect, Application Innovation
Andere Mitwirkende:
- Chad Kittel | Principal Software Engineer
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.
Nächste Schritte
Dieser Artikel orientiert sich an den Prinzipien und der Methodik der Green Software Foundation. Der nächste Schritt beim Erstellen einer grüneren Anwendung besteht darin, das Carbon Aware SDK in Ihre Anwendung einzubetten, sodass Trigger in Echtzeit automatisiert werden können, wenn bestimmte Kohlenstoffbedingungen erfüllt sind.
Empfehlungen zum Optimieren von Azure-Workloads finden Sie unter Leitfaden zur Nachhaltigkeits-Cloudarbeitsauslastung.