Der Anteil der IT an den weltweiten Treibhausgasemissionen liegt bereits bei 4% - und das nicht nur aufgrund des aufkommenden Trends, Generative AI in immer mehr Produkte zu integrieren, sondern diese Zahl wird voraussichtlich in den kommenden Jahren dramatisch steigen.
Die Green IT-Community arbeitet unermüdlich an Möglichkeiten zur Reduzierung des CO₂-Fußabdrucks von Software, von lokal ausgeführten Binaries bis hin zu vollwertigen Kubernetes-Clustern. Dieses Wissen kann auf die Dekarbonisierung von Softwareunternehmen oder allgemeiner auf Organisationen angewendet werden, in denen IT der Haupttreiber der Wertschöpfung ist.
Was ist Green IT?
Green IT zielt darauf ab, den CO₂-Fußabdruck und den Elektronikschrott durch CO₂-effiziente Software und nachhaltiges Ressourcenmanagement zu reduzieren. Letzteres kann durch Maßnahmen wie folgt erreicht werden:
- Verwendung von generalüberholten Produkten,
- Produkte länger nutzen, bevor sie ersetzt werden,
- Produkte bevorzugen, die leichter repariert und recycelt werden können,
- Produkte mit geringerem Energieverbrauch bevorzugen
Dieser Artikel wird sich jedoch auf die CO₂-Effizienz und den Betrieb von Software konzentrieren. Mit anderen Worten, wir wollen die CO₂-Emissionen der Software pro Recheneinheit so weit wie möglich reduzieren.
Was sind die Vorteile von Grüner IT?
Nachhaltige Software reduziert CO₂-Emissionen und führt zu erheblichen Kosteneinsparungen. Dies gilt insbesondere, wenn Ihre Software in der Cloud betrieben wird, wo der Ressourcenverbrauch genau verfolgt und abgerechnet wird.
Ein Fokus auf Nachhaltigkeit kann auch zu einer besseren Softwareleistung und damit zu höheren Einnahmen führen. Eine schlanke Website zum Beispiel hat ein besseres Ranking in der SEO (was heute immer noch relevant ist, selbst mit dem Aufstieg von generativer KI), und schnell ladende Websites zeigen bekanntlich bessere Konversionsraten.
Messung der Softwareemissionen
Bevor Sie mit der Optimierung der Effizienz der Software beginnen, sollten Sie zunächst in der Lage sein, ihren CO₂-Fußabdruck zu messen. Andernfalls können Sie die Auswirkungen Ihrer Bemühungen nicht angemessen bewerten. Daher erklären wir, welche Optionen zur Messung der Softwareemissionen zur Verfügung stehen.
Software emittiert indirekt CO₂ durch den Stromverbrauch der CPU, den Speicherverbrauch und den Datentransfer zu/von Speichermedien wie Festplatten oder über das Netzwerk. Jede durch die Software verursachte Operation erhöht somit den Stromverbrauch.
Eine weitere Quelle von Emissionen ist die Produktion der Gerät(e), auf denen unsere Software läuft. Der sogenannte verkörperte Kohlenstoff eines Geräts umfasst Verpackung, Transport und die Behandlung am Ende seiner Lebensdauer, wie Entsorgung oder Recycling.

Credit: Plan A
Lokale Systeme
Für lokale Geräte, wie einen physischen Server oder einen Desktop-Computer, kann man den Verbrauch direkt messen, indem man einen Wattstundenmesser zwischen das Gerät und die Steckdose installiert.
Die Verwendung der Kohlenstoffintensität, d.h. die Menge an Kohlenstoffäquivalenten, die zur Erzeugung einer Kilowattstunde Strom freigesetzt werden (in der Regel gemessen in gCO2eq/kWh) des lokalen Stromnetzes, wenn die Software ausgeführt wird, ermöglicht es uns, die CO₂-Emissionen abzuleiten.
Dieses Setup kann jedoch kompliziert sein, da in der Regel viele Hintergrundaufgaben auf einem System laufen, was zu Abweichungen bei der Messung führen kann. Die Beseitigung von Messfehlern erfordert mehrere Durchläufe unter Verwendung desselben System-Setups und derselben Softwareoperationen.
Ein einfacherer Ansatz besteht darin, die Green Metrics Tools von Green Coding zu verwenden. Dieses Open-Source-Tool misst den Energieverbrauch von Software mithilfe von Werkzeugen wie der Running Average Power Limit (RAPL)-Schnittstelle spezifischer CPUs.
Für optimale Ergebnisse ist ein dedizierter Cluster erforderlich, in dem die Software isoliert ausgeführt und gemessen werden kann. Eine gehostete SaaS-Version ist ebenfalls verfügbar, falls Sie den Cluster nicht selbst betreiben möchten.
Wenn Ihre Anwendung mit Docker containerisiert ist, sollten Sie das Tool GreenFrame in Betracht ziehen. Die Einrichtung ist einfacher, da es die erforderlichen Nutzungsdaten direkt von Docker enthält. Obwohl es Open Source ist, wird die kostenpflichtige Version benötigt, wenn Sie detaillierte Informationen wünschen.
Cloud-basierte Anwendungen
Wir können offensichtlich keine Strommonitore für Anwendungen verwenden, die in der Cloud betrieben werden. Wir müssen uns auf die Daten verlassen, die der Cloud-Anbieter sammelt.
Viele große Anbieter, insbesondere AWS, Google Cloud und Microsoft Azure, stellen bereits CO₂-Fußabdruckberichte zur Verfügung. Allerdings ist diese Daten nicht in einem standardisierten Format verfügbar, was den Vergleich erschwert. Einige Anbieter verwenden auch marktbasierte Emissionen (berechnete Emissionen, die Stromabnahmeverträge oder andere Kompensationsmethoden berücksichtigen), die für Berichterstattungszwecke nützlich sind. Doch zur Optimierung von IT-Systemen hinsichtlich der Kohlenstoffeffizienz sind standortbasierte Emissionen, d.h. die „realen“ Emissionen, die am Standort des Rechenzentrums verursacht werden, relevanter.
Es kann auch zu einer Verzögerung von bis zu 3 Monaten kommen, bis der Anbieter alle Daten von seinen weltweiten Rechenzentren zusammengetragen hat und die Emissionen bereitstellt. Das ist viel zu lange, um Arbeitslasten zeitnah zu optimieren.
Cloud-CO₂-Fußabdruck-Tool
Es gibt jedoch Hilfe: Da Cloud-Anbieter jede kleine Transaktion protokollieren, um uns in Rechnung zu stellen, können wir diese detaillierten Daten verwenden, um Emissionen basierend auf dem verwendeten Dienst und der Nutzungsdauer zu schätzen. Das Cloud Carbon Footprint tool (CCF) übernimmt die Hauptarbeit für uns.
Es nutzt die Cloud-Nutzungsdaten, die es über APIs erhält, um genaue Emissionsschätzungen zu erstellen. So kann das Tool nahezu Echtzeitdaten zu den Emissionen Ihres AWS-, Google Cloud- oder Microsoft Azure-Kontos bereitstellen, was es zum perfekten Werkzeug macht, um Ihre Optimierungsreise zu starten. Darüber hinaus berücksichtigt es auch den verkörperten Kohlenstoff, aufgeschlüsselt über die typische Nutzungsphase der Hardware, auf der die Cloud-Dienste betrieben werden.
Andere Ressourcen
Die oben genannten Werkzeuge sind tatsächlich eine Überlegung wert für Ihre Einrichtung. Weitere Ideen finden Sie auf einer der vielen Linklisten, wie zum Beispiel im Green Software Directory von GitHub oder Awesome Green Software der Green Software Foundation.
Wie man Softwareemissionen reduzieren kann
Sobald Sie die Emissionen Ihrer Cloud-Konfiguration täglich messen können, ist es endlich an der Zeit, mit der tatsächlichen Optimierung zu beginnen. Um Ihre Ergebnisse zu maximieren, starten wir mit Handlungsempfehlungen, die einen relativ geringen Aufwand erfordern, aber ein erhebliches Reduktionspotenzial für Ihre Softwareemissionen haben.
Ebene 1 - Infrastruktur

Bildnachweis: Getty
Bevor Sie Ihren Code optimieren, müssen Sie sicherstellen, dass Ihre Infrastruktur keine Ressourcen verschwendet. Dazu ist es erforderlich, jeden Teil Ihrer Infrastruktur genau zu untersuchen.
Wenn Sie Ihre Infrastruktur in der Cloud betreiben, können Sie den Abrechnungsdienst der Anbieter nutzen, um die größten Kostenblöcke als Ausgangspunkte zu identifizieren. Hier sind einige typische Punkte, auf die Sie achten sollten.
Unnötige Ressourcen entfernen
Das Finden und Entfernen von unnötigen Servern und Arbeitslasten ist eine einfache und effektive Möglichkeit, Ihren CO₂-Fußabdruck zu reduzieren. Im Laufe der Zeit neigen Systeme dazu, überladen zu werden. Dienste werden ersetzt, aber nicht sofort gelöscht und schließlich vergessen, oder wiederkehrende Aufgaben sind nicht mehr erforderlich, laufen aber unbemerkt weiter.
Es kommt sogar vor, dass volle Server (ob physisch oder virtuell) nutzlos werden. Ein Leerlaufserver verbraucht dennoch eine erhebliche Menge Energie, da Komponenten wie das Mainboard weiterhin mit Strom versorgt werden müssen. Aus diesem Grund werden diese überflüssigen Server auch als „Zombies“ bezeichnet – sie leisten nichts Produktives, sondern zehren an wertvollen Ressourcen.
Es ist relativ einfach festzustellen, ob eine Ressource noch verwendet wird, indem man Systemprotokolle und Überwachungstools nutzt. Allerdings wollen wir darauf achten, keine Nebenwirkungen zu erzeugen. Dies kann durch sogenannte „Scream Tests” erreicht werden.
Wenn Sie sicher sind, dass eine Ressource nicht mehr verwendet wird, teilen Sie Ihre Maßnahme mit und deaktivieren oder trennen Sie (aber löschen Sie nicht!) die betreffende Ressource. Wenn jemand schreit, dass sein System betroffen ist, können Sie es schnell wieder aktivieren. Denken Sie daran, dass einige Aufgaben wöchentlich oder sogar monatlich wiederkehren, also löschen Sie es nicht zu früh.
Optimieren Sie Ihre Infrastruktur
Cloud-Dienste erleichtern die Bereitstellung von Ressourcen in praktisch jedem Maßstab. Das führt oft zu Überprovisionierung: Es werden größere Instanzgrößen als notwendig gewählt, um sicherzustellen, dass das System über ausreichend Rechenressourcen verfügt.
Der Prozess der Optimierung von Instanzgrößen wird auch als „Rightsizing“ bezeichnet. Ziel ist es, eine Instanzgröße zu finden, die zu einer hohen Auslastung führt, ohne ihre Grenzen zu erreichen. Dies ist wichtig, da ein Server, der nur geringfügig ausgelastet ist, bereits eine erhebliche Menge Energie verbraucht, und die Ausführung bei hoher Auslastung kaum mehr Energie benötigt. Dieser etwas kontraintuitive Effekt wird als 'Energieproportionalität' bezeichnet.
Cloud-Anbieter wie AWS unterstützen Sie sogar bei dieser Aufgabe und bieten Dienstleistungen wie das 'Cost Optimisation Hub' an, das empfiehlt, welche Instanzen über- oder unterdimensioniert sind, basierend auf Ihrer tatsächlichen Nutzung.
Allerdings ist die von Ihnen angebotene Software als Dienstleistung wahrscheinlich nicht gleichmäßig über den Tag verteilt. Es wird Nutzungsspitzen geben, was es schwierig macht, die richtige Größe zu finden. Wenn diese Spitzen nur sporadisch und relativ kurz auftreten, können 'bursting instances' hilfreich sein. Sie bieten Ihnen eine gewisse Menge an „zusätzlicher Leistung“, d.h. Sie können sie kurzfristig mehr als 100 % nutzen. Wenn die Nutzung über die Zeit stark variiert, müssen Sie die Ressourcen dynamisch zuweisen, was wir im nächsten Abschnitt behandeln werden.
Ressourcen dynamisch zuweisen
Ein wesentlicher Vorteil der Cloud ist, dass Ressourcen automatisch hinzugefügt oder entfernt werden können, basierend auf den aktuellen Bedürfnissen. Dieser Prozess der dynamischen Ressourcenallokation ist auch als Autoscaling bekannt.
Anstatt eine zentrale Instanz mit ausreichend Puffer für alle erwarteten Spitzen bereitzustellen, die oft im Leerlauf ist, kann die Arbeitslast auf mehrere kleinere Instanzen verteilt werden. Durch Autoscaling, das alle Cloud-Anbieter anbieten, können zusätzliche Ressourcen automatisch zugewiesen werden, wenn die Last zunimmt. Ebenso können sie deaktiviert werden, sobald sie nicht mehr benötigt werden.
Seien Sie jedoch vorsichtig, dass das automatische Skalieren eine Feinabstimmung erfordert und regelmäßig überprüft werden sollte. Sie sollten sinnvolle obere Grenzen festlegen. Andernfalls können Konfigurationsfehler kostspielig werden und Ihre Einsparungen bei den CO₂-Emissionen gefährden.
Nutzen Sie Spot-Instanzen
Spot-Instanzen sind kurzfristige Überkapazitäten, die ein Cloud-Anbieter nicht verkaufen kann, weshalb sie zu einem niedrigeren Preis als reguläre On-Demand-Instanzen angeboten werden. Ein allgemeiner Nachteil ist, dass diese Instanzen normalerweise kurzlebig sind und der Cloud-Anbieter sie nach einer kurzen Benachrichtigungsfrist entfernen könnte. Dennoch sind sie gut geeignet für gesteuerte Arbeitslasten, die unterbrochen werden können, wie die Verarbeitung von Job-Warteschlangen.
Der ökologische Nutzen ergibt sich aus der Energieproportionalität, die oben erläutert wurde: Wenn Sie Spot-Instanzen verwenden, können Sie vorhandene virtuelle Maschinen besser nutzen, anstatt zusätzliche zu erstellen, die wahrscheinlich nur bei einer bestimmten Auslastungsrate betrieben werden.
Sammle deinen Müll
.avif)
Bildnachweis: Unsplash
Daten im Ruhemodus, also lokal oder in der Cloud gespeicherte Daten, sind eine weitere Emissionsquelle, die es wert ist, in Betracht gezogen zu werden.
Cloud-Speicher ist außergewöhnlich günstig, daher ist es verlockend, Daten dort zu speichern und sie einfach zu vergessen. Allerdings müssen die Daten trotzdem auf physischen Laufwerken gespeichert werden, die produziert, transportiert und in Rechenzentren gehostet werden müssen.
Die beste Option ist natürlich, Daten erst gar nicht zu speichern. Wenn dies nicht vermieden werden kann, können Sie das Protokoll- oder Dateiaufbewahrungsmanagement von Cloud-Systemen nutzen, wo Sie einstellen können, dass Daten nach einer bestimmten Zeit automatisch gelöscht werden. Bei selbst gehosteten Systemen ist es ebenfalls möglich, wenn auch mit etwas mehr Aufwand, Daten wie Backups oder Protokolle automatisch zu löschen.
Seien Sie vorsichtig mit 'Lift and Shift'
Wenn Sie planen, Anwendungen in eine Cloud-Umgebung zu migrieren, vermeiden Sie „Lift and Shift“, d.h. den direkten Transfer aller Komponenten ohne Neugestaltung.
Es ist oft besser, cloud-native Dienste zu nutzen, die Ihr Anbieter anbietet. Wenn Ihre Anwendung beispielsweise einen Nachrichtenbroker wie RabbitMQ verwendet, denken Sie darüber nach, zu einem verwalteten Dienst zu wechseln, anstatt Ihre Serverinstanz(en) selbst zu hosten.
Entwicklungsumgebungen ausschalten, wenn sie nicht benötigt werden.
Neben der Produktionsumgebung gibt es in der Regel weitere Umgebungen wie Entwicklung oder Benutzerakzeptanztests, die am Wochenende oder nachts, wenn niemand an ihnen arbeitet, nicht laufen müssen. Diese können automatisch heruntergefahren oder bei Bedarf wieder hochgefahren werden.
Level 2 - Architektur
Bisher haben wir Möglichkeiten untersucht, um den CO₂-Fußabdruck Ihrer Software auf der Infrastrukturebene zu reduzieren. Dies erfordert in der Regel keine oder nur wenige Codeänderungen. Die nächste Schwierigkeitsstufe besteht darin, die Interaktion der Softwarekomponenten untereinander zu optimieren.

Bildnachweis: Unsplash
Verwenden Sie Microservices
Ein kleiner Dienst lässt sich leichter skalieren als eine monolithische Anwendung.
Wenn Ihre Anwendung Teile oder Module enthält, deren Nutzung im Tagesverlauf stark variieren kann, ziehen Sie in Betracht, diese Teile in einen externen Service auszulagern. Auf diese Weise müssen Sie das gesamte Monolith nicht skalieren. Das bedeutet jedoch nicht, dass es notwendig ist, Ihre gesamte Anwendung in Services aufzuteilen.
Verwenden Sie serverlose Funktionen
Serverless-Funktionen erfordern nicht, dass Sie einen dedizierten Server bereitstellen. Bei Bedarf führt der Cloud-Anbieter den Code auf seiner Infrastruktur aus. Dies ermöglicht es ihnen, ihre Server gleichmäßig zu nutzen und somit Emissionen zu reduzieren (siehe auch „Optimieren Sie Ihre Infrastruktur“ aus dem vorherigen Kapitel).
Caching nutzen
Die effizienteste Rechenoperation kann vermieden werden.
Obwohl Caching oft nicht leicht umzusetzen ist, kann es den Ressourcenverbrauch erheblich reduzieren, wenn es richtig eingerichtet und konfiguriert wird.
Es gibt viele mögliche Wege, um Caching umzusetzen: In-Memory-Caching auf Code-Ebene, Response-Caching von API-Endpunkten oder Browser-Caching. Caching bringt in der Regel Vorteile für Websites und Anwendungen, indem es diese schneller macht, was von Ihren Nutzern geschätzt wird. Allerdings benötigt Caching zusätzlichen Speicher, der bei der Umsetzung berücksichtigt werden muss.
Datenübertragung reduzieren
Datennetze verbrauchen viel Energie, daher ist es entscheidend, die Datenmenge im Transit so weit wie möglich zu reduzieren. Es gibt viele Möglichkeiten, dies zu erreichen, zum Beispiel durch die Auswahl von Datenformaten mit den kleinsten Dateigrößen oder indem man vermeidet, bei jeder API-Anfrage unnötige Daten zu senden.
Eine weitere Möglichkeit ist die Verwendung von Kompression. Obwohl das Komprimieren und Dekomprimieren der Daten Energie erfordert, sind moderne Algorithmen hoch optimiert, und die eingesparte Energie übersteigt die aufgewendete Energie.
Implementieren Sie eine ereignisgesteuerte Architektur (EDA)
Die Implementierung einer ereignisgesteuerten Architektur (EDA) vermeidet unnötige Statusaktualisierungsanfragen zwischen den Diensten. Anstatt ständig nach Änderungen zu suchen (z. B. Long Polling), wird der Dienst durch einen Server-Push informiert, dass ein Ereignis, wie eine Datenänderung, stattgefunden hat und möglicherweise Maßnahmen erforderlich sind.
Optimieren Sie Ihre CI/CD-Pipeline
Kontinuierliche Integration ist ein wesentlicher Bestandteil des Software-Entwicklungszyklus. Daher wird die CI/CD-Pipeline häufig im Laufe des Tages intensiv genutzt. Aus diesem Grund sollten Sie sie auch in Ihre CO₂-Überwachung einbeziehen.
Versuchen Sie, die Ausführungszeit der Tests zu optimieren. Nutzen Sie beispielsweise mehr CPU-Kerne und führen Sie die Tests parallel aus, sofern verfügbar. Die Reduzierung der Anzahl der Build-Abhängigkeiten oder die Verwendung kleiner Docker-Images (z. B. basierend auf Alpine Linux) kann die Ausführungszeit noch weiter verkürzen.
Wählen Sie die richtigen Werkzeuge
Die Wahl des richtigen Werkzeugs für die Aufgabe ist immer wichtig, und das gilt ohne Ausnahme auch für die Green IT. Zum Beispiel verschwenden relationalen Datenbanken für das Logging oder Caching Ressourcen, da dafür besser geeignete Werkzeuge zur Verfügung stehen.
Zusätzliche Lektüre
Es ist erwähnenswert, dass viele Cloud-Anbieter, wie Google, Microsoft oder AWS, ebenfalls empfehlen, Software optimal in ihren Clouds auszuführen.
Level 3 - Code
Auf der nächsten Ebene werden wir schließlich den tatsächlichen Code unserer Softwareanwendung untersuchen.

Wählen Sie den effizientesten Algorithmus
Die 'Big O-Notation' beschreibt wie die Laufzeit oder der Speicherbedarf eines Algorithmus ansteigt, wenn die Größe der Eingabedaten zunimmt. Dies ermöglicht es Entwicklern, den effizientesten Algorithmus für einen bestimmten Anwendungsfall auszuwählen.
Datenbankschemata und Abfragen optimieren
Datenbanken sind leistungsstark und hochgradig optimiert. Auf der vorherigen Architekturebene haben wir gelernt, dass sie eine sorgfältige Konfiguration benötigen, um effizient zu arbeiten.
Es gibt oft ein enormes Potenzial für Leistungsverbesserungen auf Code-Ebene, zu dem wir auch die Datenbankschemas und -abfragen zählen. Besonders bei relationalen Datenbanken wie MySQL oder Postgres ist es wichtig, langsame Abfragen zu protokollieren und sie mit integrierten Tools wie dem EXPLAIN-Befehl zu analysieren, um wertvolle Erkenntnisse darüber zu gewinnen, wo die Abfragen optimiert werden können.
Ein weiterer oft übersehener Aspekt ist die Nutzung von Tabellenindizes, die die Ausführungszeit von Abfragen, insbesondere bei großen Tabellen, drastisch reduzieren kann.
Abstraktionsschichten wie ORMs verkürzen in der Regel die Entwicklungszeit, trennen jedoch die Entwickler von der zugrunde liegenden Datenbank.
Leistungsbudgets vereinbaren
Fügen Sie Leistungsaspekte zu Ihren Akzeptanzkriterien hinzu, um die Effizienz des Codes zu priorisieren.
Ein Performance-Budget definiert bestimmte Grenzen, die vom Anwendungsfall abhängen. Zum Beispiel stellt es die maximale Ladezeit einer Website oder die Gesamtheit der heruntergeladenen Assets dar. Performance-Budgets können in Ihre Continuous Integration-Pipeline integriert werden und helfen Ihnen, Leistungsverschlechterungen frühzeitig zu erkennen.
Nutzen Sie die Code-Profilierung
Profiling hilft Ihnen, langlaufende Funktionen in Ihrem Code zu identifizieren.
Die Behebung dieser Engpässe kann die Ausführungszeit drastisch reduzieren und somit die Effizienz Ihrer Software steigern. Kommerzielle Lösungen ermöglichen es Ihnen sogar, Ihre Anwendung in Produktionsumgebungen zu profilieren.
Verwenden Sie Code von Drittanbietern mit Bedacht.
Es gibt eine Vielzahl von Drittanbieter-Paketen oder -Bibliotheken, die nahezu jedes Problem lösen können. Allerdings sind viele Pakete im Laufe der Zeit immer funktionsreicher geworden, was zu langsamerer Code-Ausführung und größeren Dateigrößen führt.
Deshalb ist das beliebteste Paket, oder das, mit dem Sie am vertrautesten sind, nicht unbedingt das effizienteste. Wenn Sie ein Drittanbieter-Paket verwenden möchten, prüfen Sie nachhaltigere Alternativen, wie beispielsweise einen Code-Profilierer oder andere Leistungsbenchmarking-Tools.
Bevorzugen Sie native Funktionen
Insbesondere bei Programmiersprachen wie Python, Javascript oder PHP, die nicht kompiliert, sondern interpretiert werden, ist es sinnvoll zu prüfen, ob es eine integrierte Lösung für ein Problem gibt, bevor Sie ein Drittanbietermodul verwenden oder Ihre eigene Lösung entwickeln.
Diese nativen Funktionen sind möglicherweise nicht so einfach zu nutzen wie ihre Pendants, bieten jedoch in der Regel eine unvergleichliche Leistung und können helfen, Leistungsprobleme zu lösen. Zudem verringern Sie die Abhängigkeit von externem Code.
Bereinige deinen Code
Im Laufe der Zeit sammelt Software unerwünschte Datenansammlungen und wird unnötig schwerfällig. Veralteter Code sollte entfernt werden, sobald er überholt ist. Weniger Code bedeutet in der Regel bessere Leistung, und Sie sparen zudem Zeit in der CI/CD-Pipeline durch weniger Tests und schnellere Codequalitätsprüfungen. Das Entfernen unnötiger Pakete reduziert die Datenmenge, die bei jedem Update oder bei der Bereitstellung von Code heruntergeladen wird.
Level 4 - CO₂-Bewusstsein
Obwohl es in das Kapitel „Level Two - Architektur“ passen würde, ist das Konzept des ‚Carbon-Aware Computing‘ noch sehr jung und entwickelt sich schnell weiter, weshalb wir ihm etwas zusätzlichen Raum einräumen möchten.

Foto: Getty
Verstehen Sie das Bewusstsein für CO₂
Während der Übergangsphase von fossilen Brennstoffen zu erneuerbaren Energien variiert die CO₂-Intensität (d.h. die "Verschmutzung" des verwendeten Stroms) je nach Verfügbarkeit von sauberen Energiequellen.
In einigen Ländern wird die Erzeugung erneuerbarer Energien gelegentlich gedrosselt, da nicht genügend Nachfrage besteht und das Stromnetz noch nicht in der Lage ist, die Energie gleichmäßig im ganzen Land zu verteilen.
Bis ausreichend Speicherkapazität zur Verfügung steht und wahrscheinlich auch darüber hinaus, besteht die grundlegende Idee von 'Carbon Awareness' darin, grüne Energie zu nutzen, wenn sie verfügbar ist, und die Nachfrage zu reduzieren, wenn die Kohlenstoffintensität hoch ist.
Datenquellen wie ElectricityMaps oder WattTime informieren uns über die aktuelle CO₂-Intensität in vielen Ländern. Beide Dienste bieten Web-APIs an, über die die Informationen abgerufen werden können. Andere Dienste sind regionsspezifisch, wie Energy Charts für Deutschland oder Carbon Intensity für das Vereinigte Königreich.
Wie können wir diese Informationen nutzen? Die Green Software Foundation stellt mehrere Ansätze zur Reduzierung von CO₂-Emissionen vor, die wir in den folgenden Abschnitten näher erläutern werden.
Kundenanforderungen gestalten
Der Begriff „Nachfragestaltung“ mag auf den ersten Blick kontraintuitiv erscheinen, aber wie könnten wir die Nachfrage unserer Kunden gestalten? Dabei bezieht sich die Green Software Foundation auf die Nachfrage nach Elektrizität und nicht auf die Nachfrage nach Produkten.
Verlagern Sie Arbeitslasten in die Zukunft
Wenn die aktuelle Kohlenstoffintensität hoch ist, stehen die Chancen gut, dass der Strom in ein paar Stunden wieder grüner ist, abhängig von den Wetterbedingungen, da weniger fossile Kraftwerke die Lücke schließen müssen.
Aber wie wissen wir, wann wieder mehr erneuerbare Energien zur Verfügung stehen werden?
Glücklicherweise bieten alle oben genannten Dienstleistungen eine Vorhersage der Kohlenstoffintensität für die nächsten 12 Stunden oder sogar länger an. Dies ist möglich, indem verschiedene Informationsarten genutzt werden, wie Wettervorhersagen oder die Tagespreise auf den Energiemärkten.
Wenn der Strom derzeit "schmutzig" ist, könnten wir in der Lage sein, Arbeitslasten aufzuschieben, bis wir wissen, dass er wieder "grüner" ist. Dieser Ansatz wird temporales Verschieben genannt. Ein großes Problem könnte darin bestehen, tatsächlich Aufgaben zu finden, die verzögert werden können. Wir werden dieses Problem im nächsten Kapitel besprechen.
Verwenden Sie grünere Standorte
Ein kurzer Blick auf die Kohlenstoffintensitätskarte der Welt zeigt uns, dass einige Länder aus verschiedenen Gründen deutlich grünere Elektrizität haben als andere. Da wir Software in der Cloud betreiben, ist es einfach, Rechenzentren weltweit zu nutzen und von deren niedrigeren CO₂-Emissionen zu profitieren.
Dieser Ansatz wird „räumliches Verschieben“ genannt und ist relativ einfach umzusetzen, bringt jedoch auch einige Herausforderungen mit sich. Erstens, wenn alle ihre Software in der umweltfreundlichsten Region betreiben würden, würden dort schnell die Kapazitäten überschritten werden, sodass es keine ganzheitliche Lösung ist.
Zweitens haben weiter entfernte Regionen ihren Preis: Daten müssen einfach längere Strecken zurücklegen, was die Emissionen erhöht und die Latenzen steigert, was Nutzer unzufrieden machen könnte. Oft sind diese grünen Regionen teurer als andere.
Räumliche Verschiebung kann Emissionen erheblich reduzieren, ist jedoch nicht der ideale Ansatz für alle Probleme.
Anwendungsfälle könnten rechenintensive Arbeitslasten umfassen, wie zum Beispiel das Training von großen Sprachmodellen.
Erkenne die Probleme mit der Kohlenstoffbewusstheit
Das Konzept des Carbon Awareness ist kein Allheilmittel, um Ihre Software umweltfreundlicher zu gestalten, da es mit einigen Herausforderungen verbunden ist.
Zunächst könnte eine unregulierte Anwendung in großem Maßstab unvorhersehbare Auswirkungen auf die Stabilität des Stromnetzes haben.
Eine weitere Herausforderung ist die Akzeptanz der Nutzer: Sie sind daran gewöhnt, dass ihre Handlungen direkt und sofort ausgeführt werden. Werden sie akzeptieren, ein paar Stunden zu warten, bis der Energiemix wieder grüner ist? Wir werden dieses Problem im nächsten Kapitel näher untersuchen.
Stufe 5 - Produktdesign
Mit der letzten Stufe verlassen wir den Bereich der Technologie und springen in den Bereich des Produkt- und Nutzererlebnisses. Ähnlich wie in den meisten, wenn nicht allen Branchen, können wir nicht darauf hoffen, den Klimawandel allein durch den Einsatz von Technologie zu bekämpfen. Es ist auch notwendig, zu ändern, wie wir Produkte nutzen.
Das Beispiel aus dem vorherigen Kapitel, die Streaming-Qualität von Videos in Zeiten höherer Kohlenstoffintensität zu reduzieren, ist bereits ein Beispiel für nachhaltiges Produktdesign. Obwohl die Auswirkungen dieser Maßnahme erheblich sein können, haben wir sie auf Stufe 5 eingestuft, da sie eine umfassende Koordination mit anderen Abteilungen und Stakeholdern erfordert.

Bildnachweis: Getty
Informieren Sie Ihre Nutzer.
Maßnahmen wie die Reduzierung der Video-Streaming-Bitrate sollten nicht getroffen werden, ohne die Nutzer und andere wichtige Interessengruppen zu informieren. Andernfalls haben Sie unzufriedene Kunden, die sich über die niedrige Videoqualität beschweren, und uninformierte Helpdesk-Mitarbeiter, die nicht anders können, als die Bug-Reports an die Engineering-Teams weiterzuleiten.
Benutzer zu informieren kann mit der Sensibilisierung und dem Verständnis kombiniert werden. Zum Beispiel können Sie die aktuelle Kohlenstoffintensität in Ihrer Anwendung anzeigen, indem Sie Zeiten hoher Kohlenstoffintensität signalisieren.
Geben Sie ihnen eine Wahl
Ihre Kunden sollten in der Lage sein, aktiv in CO₂-sparende Maßnahmen einzuwirken (oder sich davon abzumelden), so wie sie es gewohnt sind, z.B. bei ihren Waschmaschinen, wo sie einen Eco-Modus auswählen können, der länger dauert, aber Energie spart. Ist es für Ihre Software-Nutzer akzeptabel, auf die Ausführung bestimmter Aufgaben zu warten, wenn sie wissen, dass dies Emissionen einsparen würde?
Aber denken Sie daran: Es hilft nichts, wenn Kunden aufgrund zu strenger Einschränkungen abspringen. Manchmal ist es notwendig, die Aufgabe so schnell wie möglich zu erledigen, auch wenn dies zu höheren CO₂-Emissionen führt.
Gestaltung für Nachhaltigkeit
Die Gestaltung Ihres Produkts unter Berücksichtigung von Nachhaltigkeit kann die CO₂-Emissionen erheblich reduzieren. Muss das Daten-Dashboard beispielsweise immer auf dem neuesten Stand sein und ständige Datenbankabfragen erfordern? Oder wäre der Benutzer damit einverstanden, dass die Daten ein paar Minuten alt sein können, wodurch das Backend Anfragen zwischenspeichern und somit Ressourcen sparen kann?
Andere Aspekte, wie die Verwendung anerkannter Designmuster und das Vermeiden von irreführenden Mustern, werden im Abschnitt zur Benutzererfahrung der Web Sustainability Guidelines (WSG) 1.0 erläutert. An dieser Stelle verbindet sich auch das Green Software Engineering mit Bereichen wie Barrierefreiheit oder Ethik, die zwar nicht Gegenstand dieses Artikels sind, jedoch dennoch von wesentlicher Bedeutung sind.
Eine Strategie definieren
.avif)
Credit: Unsplash
Jetzt, da wir das notwendige Wissen und die Werkzeuge haben, um softwarebezogene CO₂-Emissionen zu reduzieren, müssen wir eine Strategie zur Anwendung in Ihrer Organisation festlegen. An diesem Punkt gehen wir davon aus, dass das Management bereits zugestimmt hat, Maßnahmen zu Green IT einzuführen, d.h. Sie haben die Zustimmung.
Ein guter Ausgangspunkt wäre die Analyse der Emissions- / Kosten-Daten, um die Bereiche Ihrer Infrastruktur zu identifizieren, die das größte Potenzial für Kostensenkungen und die Reduzierung von CO₂-Emissionen bieten. Sobald einige Ziele formuliert wurden, kann dies in einen Projektplan überführt werden.
Potenzielle Projekt-KPIs könnten die Gesamtemissionen in CO₂ und die Infrastrukturkosten pro Woche sein. Wenn sie über einen längeren Zeitraum verfolgt werden, zeigen sie schnell Fortschritte.
Wenn Sie die Arbeitsstunden des Projekts erfassen, können Sie am Ende des Projekts den ROI berechnen.
Halte es am Laufen

Credit: Unsplash
Ein einzelnes Projekt im Bereich Green IT genügt jedoch nicht. Sobald die ersten CO₂-Einsparungen erzielt wurden, ist es entscheidend, nicht stehen zu bleiben, sondern den Schwung aufrechtzuerhalten. Da sich die typische IT-Landschaft ständig verändert, sind kontinuierliche Überwachung und Analyse erforderlich, um weitere Reduktionspotenziale zu identifizieren und ebenso wichtig, um erhöhten CO₂-Emissionen, z. B. durch Konfigurationsprobleme oder einfach uninformierte Mitarbeiter, vorzubeugen.
Eine einfache Maßnahme wäre, die KPIs der Grünen IT in das regelmäßige Management-Reporting aufzunehmen. Dies hält auch die Nachhaltigkeit im Bewusstsein der Entscheidungsträger.
Erkenntnisse: Wie Sie Ihre IT dekarbonisieren können
Dieser Artikel erklärt, wie der CO₂-Fußabdruck von Software reduziert werden kann, um sie CO₂-effizienter zu gestalten. Zuerst messen Sie die Emissionen Ihrer Software-Konfiguration.
Sobald Sie zuverlässige Emissionsdaten haben, können Sie diese reduzieren, indem Sie auf den folgenden Ebenen Maßnahmen ergreifen:
Die Ebenen sind nach der Schwierigkeit der Umsetzung und dem erwarteten CO₂-Einsparpotenzial geordnet, um Ihnen eine erste Orientierung zu geben. Viele Maßnahmen der Stufe 1 sind relativ einfach umzusetzen und haben eine hohe Wahrscheinlichkeit, signifikante Emissionsreduktionen zu erreichen.
Zuletzt sollten Sie, um die Maßnahmen der Grünen IT auf Ihre Anwendung anzuwenden, eine Strategie zu deren Umsetzung festlegen. Dies könnte so einfach sein wie ein einfacher Projektplan, in dem Sie konkrete Ergebnisse definieren und den Prozess durch KPIs transparent gestalten.
Sobald Sie Ihr erstes Projekt abgeschlossen haben, muss der Prozess von Neuem beginnen, denn Green IT ist kein einmaliges Projekt, sondern ein Wandel in Denkweise und Abläufen.
Beginnen Sie noch heute die Dekarbonisierungsreise Ihres Unternehmens.Buchen Sie eine Demo, um die besten Nachhaltigkeitslösungen kennenzulernen.