Über unsMediaKontaktImpressum
Carsten Windler 25. Januar 2022

Coden gegen den Klimawandel

Der jüngste Bericht des Intergovernmental Panel on Climate Change (IPCC) war ein eindringlicher Weckruf [1]: Die durchschnittliche Temperatur der Erdatmosphäre steigt noch schneller als erwartet. Der vom Menschen verursachte Ausstoß von Treibhausgasen zeigt bereits erste Veränderungen, wie die Zunahme extremer Wetterbedingungen – selbst in Europa [2]. Aber auch wir, die Software-Entwickler, haben unseren Anteil daran. In diesem Artikel schauen wir uns die Hintergründe und insbesondere die Möglichkeiten zur Reduktion der Emissionen genauer an.

Der Software-Fußabdruck

Software-Entwickler stellen natürlich keine Güter im klassischen, materiellen Sinne her. Die Hardware, auf der unsere Software läuft, verbraucht jedoch bei der Produktion und in Betrieb elektrischen Strom. Diese Energie wird immer noch zu großen Teilen durch die Verbrennung fossiler Brennstoffe wie Gas, Öl und Kohle erzeugt. Und genau hier liegt das Problem.

Obwohl die Informations- und Kommunikationstechnologie mit 2,5 Prozent vergleichsweise wenig der weltweiten Gesamtemissionen ausmacht, entspricht dies bereits 1,4 Milliarden Tonnen an Treibhausgasen, die in die Atmosphäre gelangen [3]. Andere Schätzungen gehen sogar von bis zu 4 Prozent aus, was dem Ausstoß der weltweiten Luftfahrtindustrie im Jahr 2019 entspräche [4]. Ferner wird von einem jährlichen Wachstum von bis zu 9 Prozent ausgegangen. Steuern wir nicht dagegen, wird unser Anteil bald merklich größer sein.

Kohlendioxid ist das bekannteste Treibhausgas, aber nicht das einzige. Methan zum Beispiel erwärmt die Atmosphäre bis zu 80 mal stärker als Kohlendioxid (CO2), wobei der Faktor je nach Quelle stark variiert [5]. 1 kg Methan kann daher auch als 80 kg Kohlendioxid-Äquivalent (CO2e) bezeichnet werden. Der Einfachheit halber werden wir im weiteren Verlauf dieses Artikels alle Gase als Kohlendioxid bezeichnen.

Green IT

Green IT zielt darauf ab, die Menge des von der IT ausgestoßenen Kohlendioxids so weit wie möglich zu reduzieren [6]. Der naheliegendste Weg, dies zu erreichen, ist die Reduzierung des Energieverbrauchs unserer Systeme.

Software-Entwickler haben aber keinen direkten Einfluss auf die Effizienz der zugrundeliegenden Systeme. Wir können nicht kontrollieren, wie viel Energie ein vom Anwender eingesetztes Gerät benötigt, um eine bestimmte Berechnung durchzuführen. Wir können die Emissionen jedoch indirekt beeinflussen, indem wir Software schreiben, die weniger Rechenleistung benötigt, um das gleiche Ergebnis zu erzielen. Wie wir weiter unten sehen werden gibt es eine ganze Reihe von Möglichkeiten, dieses Ziel zu erreichen.

Erneuerbare Energien

Doch warum nutzen wir nicht einfach erneuerbare Energien? Wenn wir keine fossilen Brennstoffe verwenden, hat das doch auch keine negativen Auswirkungen mehr auf das Klima, oder?

Theoretisch ist das zwar richtig, aber die tatsächliche Situation sieht leider anders aus: Weltweit stammen nur etwa 16 Prozent der Primärenergie aus sogenannten kohlendioxidarmen Quellen, d. h. aus erneuerbaren Energien und Kernenergie [7]. Die restliche Energie muss aus fossilen Brennstoffen erzeugt werden.

Erneuerbare Energien wie Wind- und Sonnenenergie lassen sich nicht vorhersagen – ist es bewölkt oder windstill, muss die fehlende Energie kompensiert werden. Die Nachfrage passt sich schließlich nicht an das Angebot erneuerbarer Energien an. Solange wir aber keine wirtschaftlichen Möglichkeiten finden, überschüssige Energie zwischenzuspeichern, die bei günstigen Wetterlagen entstanden sind, sind wir auf fossile Brennstoffe angewiesen, um die Lücke zu schließen (s. Abb. 1).

Kernenergie wird im Laufe dieses Artikels nicht weiter berücksichtigt. Der Anteil am Energiemix in Deutschland liegt bei ca. 11 Prozent [8], spielt also keine ausschlaggebende Rolle. Selbst wenn wir ihn trotz der Risiken und der schädlichen Auswirkungen des Uranabbaus erhöhen wollten, würde jedes neue Atomkraftwerk Jahrzehnte an Planungs- und Bauzeit benötigen. Zeit, die wir nicht mehr haben.

Die vorhandene Menge an erneuerbarer Energie reicht im Moment nicht einmal aus, um den derzeitigen Bedarf zu decken. Um die Kohlendioxidemissionen zu verringern, gehen viele Sektoren, wie z. B. die Automobil- oder die chemische Industrie, nun aber zusätzlich dazu über, fossile Brennstoffe durch Strom zu ersetzen. Diese Dekarbonisierung erfordert noch mehr Elektrizität, die nicht durch das Wachstum der erneuerbaren Energien gedeckt wird [9]. Abb. 2 verdeutlicht die zusätzliche Nachfrage, die bislang noch durch fossile Brennstoffe gedeckt werden muss.

In diesem Zusammenhang spricht man von Kohlendioxid-Intensität: Je mehr Kohlendioxid pro produzierter Einheit (üblicherweise Kilowattstunde) freigesetzt wird, desto höher die Intensität [10]. Obwohl Elektroautos also eigentlich besser für die Umwelt (und das grüne Image) sind, erhöht die Dekarbonisierung also kurzfristig sogar die Kohlenstoffintensität.

Solange wir fossile Brennstoffe nicht massiv durch erneuerbare Energien ersetzen, bleibt uns nur, den Energieverbrauch so weit wie möglich zu reduzieren, um die oben beschriebene Versorgungslücke so klein wie möglich zu halten.

Wo fangen wir an?

Was können wir nun also tun, um den Energiebedarf zu senken? Werfen wir zunächst noch mal einen Blick auf die Effizienz [11]: sie beschreibt, ob eine Maßnahme geeignet ist, ein vorgegebenes Ziel in einer bestimmten Art und Weise zu erreichen. Einfacher ausgedrückt, je weniger Rechenleistung für die Erreichung eines Ziels benötigt wird, desto effizienter ist unsere Software. Im Folgenden schauen wir uns mehrere Facetten dieses Problems genauer an.

Software-Effizienz

Die naheliegendste Option ist, Software zu schreiben, die weniger Rechenleistung für dieselbe Arbeitseinheit benötigt. Auf diese Weise reduzieren wir sofort die von unserer Software verursachten Emissionen.

Das klingt sicherlich einleuchtend, aber ist das nicht auch etwas, das wir sowieso tun wollen? Wir können wohl davon ausgehen, dass niemand "absichtlich" langsame Software schreibt. Allerdings kümmert es uns in der Regel auch nicht, wie viel Energie unsere Software später einmal verbrauchen wird – der Energieverbrauch unserer Software wird von uns externalisiert.

Um das zu ändern, müssten wir aber den Energieverbrauch unserer Software irgendwie messen und vergleichen können. Wir werden uns dieses Problem später noch einmal genauer ansehen. Schauen wir zunächst, wo sich uns Einsparungspotenzial bietet.

Algorithmen

Es gibt Algorithmen, die dieselbe Arbeit schneller erledigen können als andere. Aber wie lässt sich diese Effizienz von Algorithmen zuverlässig messen [12]?

Die Big-O-Notation vermittelt bereits eine gute Vorstellung [13]. Da Big-O jedoch die Effizienz für den schlechtesten Fall angibt, könnten andere Algorithmen für Ihren speziellen Anwendungsfall besser geeignet sein, obwohl die Big-O-Notation etwas anderes vermuten lassen würde.

Bei der täglichen Arbeit an Web-Applikationen werden aber oft keine ausgefuchsten Algorithmen eingesetzt, sondern einfache Schleifen oder vergleichbare Sprachkonstrukte. Daher lohnt sich ein genauerer Blick auf dieser Ebene. Für die Programmiersprache PHP z. B. gibt phpbench.com einen Überblick darüber, welche Sprachkonstrukte im Vergleich besser abschneiden [14]. Eine while-Schleife etwa würde deutlich schneller über ein Array mit Millionen von Einträgen iterieren als eine foreach-Schleife. Sie wäre demnach effizienter, da weniger Ressourcen verbraucht würden, um das gleiche Ergebnis zu erzielen.

Ferner können Tools wie phpbench (nicht zu verwechseln mit der oben genannten Website) sicherstellen, dass Funktionen nicht plötzlich erheblich mehr Zeit benötigen als vorher [15]. Damit ließen sich auch "Energieregressionen" aufdecken: Programmierfehler, die immense Auswirkungen auf die benötigte Rechenleistung haben. Vielleicht hat Ihnen auch schon einmal ein App-Update Ihren Smartphone-Akku leer gesaugt? Was im Einzelnen nicht besonders schlimm klingt, wird angesichts von Millionen von Nutzern schon eher problematisch. Wäre der Bug schon frühzeitig behoben worden, hätten große Mengen an Energie gespart werden können.

Wie sieht es eigentlich bei der künstlichen Intelligenz aus? Obwohl sie vom sehr energieeffizienten menschlichen Gehirn inspiriert ist, kann der Energieaufwand für das Training eines KI-Modells überraschend hoch sein und jenen Emissionen entsprechen, die 5 PKWs über ihre gesamte Laufzeit verursachen würden [16].

Erste Forschungen zum Thema "Green AI" zeigen, dass es neuronale Modelle gibt, die effizienter sind als andere [17]. Als Maßeinheit werden FPOs (Fließkommaoperationen) verwendet, um die Energieeffizienz der Modelle zu bewerten und somit vergleichbar zu machen. Bisher liegt die Sparsamkeit zwar noch nicht im Fokus der aktuellen Entwicklung, trotzdem sollte hier auch der eigentliche Zweck Berücksichtigung finden. Dient die KI z. B. der Verhinderung von Verkehrsunfällen, rechnen sich die Emissionen schnell.

Datenbanken

Einer meiner früheren Chefs war, so schien es mir zumindest damals, in der Lage, fast alle Performance-Probleme durch die Optimierung von MySQL-Abfragen zu lösen. Mit dem Einsatz von ORMs, bei denen die Abfragen automatisch generiert werden, ist dies aber oft nicht mehr möglich. Daher ist das Wissen, wie man schnelle Abfragen schreibt, unter PHP-Entwicklern seltener geworden. Stattdessen wird lieber die zugrundeliegende Hardware skaliert, entweder durch mehr RAM/CPU-Kerne auf dem Server oder durch die Verteilung der Datenbanken auf mehrere Knoten.

Sie müssen kein Profi sein wie mein früherer Chef – öffnen Sie einfach das slow query log und suchen Sie sich die schlimmsten (also langsamsten) Queries heraus. Es gibt reichlich Literatur zum Thema Datenbankoptimierung. Bei größeren Anwendungen können kostenpflichtige Dienste wie New Relic oder Datadog helfen, problematische Abfragen zu identifizieren, da schnell ersichtlich wird, welche Query besonders oft ausgeführt wird. Bei millionenfach ausgeführten Abfragen kommt da schnell ein großes Einsparungspotenzial zusammen.

Am meisten Energie spart man aber, wenn man Abfragen gar nicht erst ausführt. Der Einsatz effektiver Caching-Mechanismen kann hier viel bewirken, aber Vorsicht – caching is hard [18].

CMS-basierte Webseiten können z. B. durch einen Website-Generator wie Hugo ersetzt werden, wenn nur statische Inhalte angezeigt werden sollen [19]. Derartige Tools generieren HTML/CSS-Dateien einmalig nach Aktualisierung des Inhalts, anstatt die Datenbank bei jedem Seitenaufruf viele Male zu belasten. Werden diese statischen Dateien dann noch über ein CDN ausgeliefert, kann es kaum noch effizienter werden.

Relationale Datenbanken sind flexible Werkzeuge, aber nicht für alle Anwendungsfälle die beste Wahl. Ziehen Sie Alternativen wie einfache Key-Value-Stores in Betracht, wenn Daten nur gespeichert und weder komplexe Transaktionen noch ACID-Konformität benötigt werden.

Frameworks

Bei modernen PHP-Anwendungen ist die eigentliche Anwendungslogik oft nur ein kleiner Teil des Codes, der bei jedem Request ausgeführt wird. Wenn Sie schon einmal eine PHP-Anwendung, die auf einem der bekannten Frameworks basiert, Schritt für Schritt debuggt haben, wissen Sie vielleicht bereits, wo ein guter Teil der Performance verloren geht: dutzende Dateien und Codezeilen des Frameworks müssen bei jedem Request wieder und wieder verarbeitet werden, bis unser Code schließlich ausgeführt wird. Viele davon sind für die Lösung des Problems gar nicht erforderlich, sind aber Bestandteil des Frameworks. Und dieses ist ja darauf ausgelegt, für möglichst viele verschiedene Problemstellungen eingesetzt werden zu können. Verglichen mit einem einfachen Skript, das ausschließlich PHP-eigene Funktionen verwendet und dabei den gleichen Zweck erfüllt, ist die Ausführungszeit und damit die benötigte Energie um ein Vielfaches höher.

Die Performance von Frameworks variiert stark [20]. Dieser Vergleich ist natürlich etwas unfair, da man nicht einfach ein Framework mit einem anderen vergleichen kann. Wenn Sie jedoch nur einen kleinen Webdienst erstellen, sollten Sie ein schlankes Framework wählen oder sogar ganz auf ein Framework verzichten. Versuchen Sie zumindest, nicht für jedes Problem Ihr Allzweck-Lieblingsframework zu verwenden.

Im Laufe der Zeit werden Anwendungen immer größer. Hier helfen Tools den Überblick zu behalten. Mit einem Profiler können Sie z. B. Informationen darüber gewinnen, wie oft jede Funktion aufgerufen wird und wie lange ihre Ausführung dauert. Auf diese Weise können Sie Engpässe in Ihren Anwendungen leicht aufspüren und vermutlich werden Sie das eine oder andere Mal überrascht sein, wo diese sich versteckt haben.

Programmiersprachen

Eine bemerkenswerte Studie erstellte eine Rangliste der meisten heute gebräuchlichen Sprachen in Bezug auf Ausführungsgeschwindigkeit und Effizienz (zusammengefasst als "Energy Rank") [21]. Einige Ergebnisse sind in Abb. 3 zu sehen.

Es zeigt sich, dass kompilierte Sprachen wie C und Go weitaus effizienter sind als interpretierte Sprachen. PHP selbst hat in den letzten Jahren jedoch bemerkenswerte Verbesserungen (nicht nur) in Bezug auf die Geschwindigkeit gemacht. Die Verwendung einer aktuellen PHP-Version erhöht mit großer Wahrscheinlichkeit die Leistung Ihrer Anwendungen, vor allem, wenn es sich um gängige Tools wie Wordpress handelt [22,23]. Die Schonung des Klimas ist also ein weiteres Argument, um Ihre Vorgesetzte oder Ihren Vorgesetzten davon zu überzeugen, endlich Zeit für das Update auf die neuste PHP-Version aufzuwenden.

Hardware-Effizienz

Ein Server, der zu 80 Prozent ausgelastet ist, verbraucht nicht viel mehr Energie, als wenn er zu 50 Prozent ausgelastet wäre. Der Energieverbrauch ist nicht vollständig proportional zur Arbeitslast [24]. Das liegt daran, dass ein großer Teil der Energie bereits benötigt wird, um den Betrieb des Servers zu gewährleisten, unabhängig von der tatsächlichen Auslastung. Eine höhere Auslastung verringert also den durchschnittlichen Kohlendioxidausstoß.

Wenn die Last mehr oder weniger konstant ist, kann der Server im Prinzip möglichst stark ausgelastet werden. Oft genug ist das aber gar nicht so einfach – denken Sie an eine Website, die tagsüber Spitzenwerte bei den Besucherzahlen aufweist, nachts aber nur wenig besucht wird. Der Server benötigt einen Leistungspuffer, um sicherzustellen, dass die Website in Spitzenzeiten nicht ausfällt.

Das in der Cloud übliche Autoscaling von Instanzen virtueller Maschinen ist ein guter Ansatz, um auf unterschiedliche Lasten zu reagieren [25]. Bei geringerer Last werden nicht mehr benötigte Instanzen abgeschaltet und sparen somit Energie und Kosten.

Serverless Computing ist ebenfalls eine gute Option, um den Umgang mit den unvorhersehbaren Lasten den Hosting-Anbietern zu überlassen. Da diese eine große Anzahl von Servern in ihren Rechenzentren betreiben, können sie die Last gleichmäßig verteilen. Um die Kosten niedrig zu halten, stellen die Betreiber sicher, dass sie jeden Server auf einem hohem Niveau nutzen. Wir werden später noch einmal auf dieses Thema zurückkommen.

Bislang konnten Technologieunternehmen ihr Wachstum durch die Einführung effizienterer Hardware, sogenannter Hyperscaler-Rechenzentren, noch einigermaßen ausgleichen [26]. Durch den Einsatz sehr effizienter Server führte der erhöhte Internetverkehr somit nicht zu einem proportionalen Anstieg des Energieverbrauchs. Es ist jedoch nicht klar, wie lang es möglich ist, die Server noch effizienter zu machen.

Rechenzentren benötigen jedoch auch große Mengen an Wasser [27]. Da wir bereits mit mehr Dürren zu kämpfen haben, wird Sparsamkeit in Zukunft umso wichtiger [28].

Dateneffizienz

Haben Sie schon einmal während eines Systemausfalls auf die Wiederherstellung eines Backups gewartet, und es kam Ihnen vor, als würde es ewig dauern, weil die Protokolldaten von vor 3 Jahren Teil des Backups waren? Wenn nicht – Glück gehabt! Oft genug werden Daten jedoch "irgendwo" gespeichert und in Datenbanken oder Cloud-Buckets vergessen, weil der Speicherplatz vergleichsweise billig ist und die angehäuften Daten oft keine Probleme verursachen.

Nur weil etwas billig ist, heißt das nicht, dass es keine Emissionen verursacht. Die Festplatten müssen hergestellt und in einem Rechenzentrum betrieben werden. Sie geben Wärme ab, die gekühlt werden muss, und sie verbrauchen Strom, selbst wenn sie nur im Standby-Modus laufen. Studien zeigen, dass die Menge der verschwendeten Energie nicht zu unterschätzen ist und jährlich über 6 Millionen Tonnen Kohlenstoff emittiert [29].

Nur weil etwas billig ist, heißt das nicht, dass es keine Emissionen verursacht.

Die Einrichtung von Tools zur Log-Rotation ist keine große Sache, und für die Cloud können Sie die Aufbewahrungsfrist Ihrer Protokolldaten bequem auf 6 Monate oder weniger festlegen. Auch können archivierte E-Mails und Backups regelmäßig gelöscht werden. Es muss sich aber "irgendjemand" darum kümmern.

Es sind nicht nur die Daten im Ruhezustand, sondern auch die Daten im Transit, die wir berücksichtigen müssen. Auch wenn die Zahlen, die man dazu finden kann, variieren und diese nicht unumstritten sind, kann man davon ausgehen, dass die Übertragung von Daten über das Internet zumindest eine gewisse Menge an Strom benötigt, um die zugrundeliegende Hardware wie Server und Router zu betreiben [30]. Mit anderen Worten: Jedes Byte verursacht Treibhausgasemissionen.

Dies ist besonders für Webentwickler interessant, denn je weniger Daten übertragen werden müssen, desto schneller ist die Webanwendung. Wie oben angesprochen, schreibt sicherlich niemand absichtlich langsame Software. Aber wenn man sich heute noch viele Websites ansieht, muss man feststellen, dass es trotzdem passiert. Ein übertragenes Megabyte mehr oder weniger scheint zwar keinen Unterschied zu machen, aber denken Sie an all die Websites, die täglich von Tausenden oder Zehntausenden von Benutzern aufgerufen werden.

Hier können viele Techniken angewendet werden: Caching, Lazy Loading, Komprimierung... eigentlich alle Tools aus dem Website-Performance-Toolkit sind auch für unsere Umwelt von Vorteil. Es gibt dazu viele nützliche Quellen, die wir hier nicht behandeln werden [31].

Was können wir sonst noch tun?

Wie wir gesehen haben, sind erneuerbare Energien unberechenbar; daher schwankt die Kohlendioxideffizienz im Laufe des Tages. Je nach Wetterlage und Stromnachfrage ändern sich die Kohlendioxidemissionen, die zur Erzeugung einer Kilowattstunde erforderlich sind.

Warum sollte man rechenintensive Arbeiten nicht in Zeiten verlegen, in denen der Strom "grüner" bzw. emissionsärmer ist? Besonders extrem energiehungrige Kryptowährungen wie Bitcoin verbrauchen bereits mehr Energie als einzelne Länder der Erde [32]. Berechnungen wie diese könnten an Orte oder zu Zeiten verlegt werden, an denen der Strom weniger kohlendioxidintensiv ist. Die erforderlichen Datenquellen sind bereits verfügbar [33]. Manche Cloud-Anbieter ermöglichen es uns außerdem bereits heute, Regionen mit geringerer Kohlenstoffintensität auszuwählen [34].
 
Bevor wir alle unsere Daten nun nach Norwegen mit einem fast 100 Prozent grünen Energiemix verlagern, dürfen wir natürlich nicht die durch die Datenübertragung verursachten Emissionen vergessen [35]. Es ist bereits ein guter Anfang, Hosting-Anbieter zu wählen, die ausschließlich erneuerbare Energien verwenden.

Wolken vermessen

Wie können wir nun den Energieverbrauch unserer Dienste messen? Indirekt können wir Verbesserungen bereits durch kürzere Ladezeiten unseres Web-Frontends feststellen. Aber geht das auch genauer?

Theoretisch können wir sogar den Stromverbrauch einer Frontend-Anwendung direkt anhand des Stromverbrauchs eines lokal betriebenen Computers messen [36]. Dieser Ansatz lässt sich natürlich schwer in eine CI-Pipeline integrieren. Tools wie der Website Carbon Calculator gehen hingegen einen anderen Weg und schätzen den CO2-Fußabdruck Ihrer Webseite [37].

Für Backend-Anwendungen ist das nicht ganz so einfach. Nehmen wir an, unsere Anwendung ist die einzige, die auf einem Server im Serverraum nebenan betrieben wird, dann ist es einigermaßen machbar, den Energieverbrauch zu messen [38]. Was aber, wenn unsere Daten durch verschiedene Cloud-Dienste wandern, bis sie Tausende von Endgeräten erreichen? An diesem Punkt sind wir auf die Informationen angewiesen, die unsere Hosting-Unternehmen zur Verfügung stellen müssen.

Glücklicherweise gibt es bereits erste Tools, die dieses Problem lösen wollen: GreenFrame behauptet zum Beispiel, den CO2-Ausstoß Ihrer Webanwendung, einschließlich Browser, Netzwerk und Datenbanken, messen zu können [39]. Zum Zeitpunkt des Schreibens hatte der Autor den Service jedoch noch nicht testen können.

Es scheint mittlerweile ein Konsens darüber zu bestehen, dass der Wechsel in die Cloud energieeffizienter ist [40]. Können wir aber mit Sicherheit sagen, dass beispielsweise AWS Lambda eine bessere Wahl ist als AWS EC2, wenn beide für eine ähnliche Arbeitslast verwendet werden?

Wir können davon ausgehen, dass ein Dienst umso weniger Energie verbraucht, je billiger er ist. Zwei Dinge können jedoch problematisch sein: Erstens, was ist, wenn ein Dienst generell energieeffizienter ist, nur nicht so groß wie der andere, sodass die Größenvorteile noch nicht zum Tragen kommen? Zweitens könnten Cloud-Anbieter ihre Dienste querfinanzieren – die Kosten würden also nicht den tatsächlichen Energieverbrauch widerspiegeln.

Lang leben die Maschinen!

Schauen wir uns noch das Konzept des "gebundenen Kohlendioxids" – also des in Produkten rechnerisch enthaltenen Kohlendioxids – genauer an. Angenommen, die Herstellung eines Laptops verursacht 500 kg CO2, so muss diese Zahl zu den Emissionen hinzugerechnet werden, die später bei der Benutzung verursacht werden. Dabei überwiegt der Anteil des gebundenen Kohlendioxids oftmals; ein anschauliches Beispiel sind Smartphones, die zwar sehr wenig Energie, aber bei der Herstellung recht viel Ressourcen verbrauchen [41].

Wir können hier relativ einfach eine Verbesserung erwirken, indem wir die Hardware so lange wie möglich benutzen. Elektronische Komponenten altern nicht besonders schnell, mit Ausnahme von Batterien und minderwertigen Kondensatoren. Wie in Abb. 4 dargestellt, ist das gebundene Kohlendioxid pro Jahr rein rechnerisch geringer, wenn der Laptop fünf statt nur drei Jahre betrieben wird.

Die Gesamtemissionen, also das gebundene Kohlendioxid zuzüglich der Emissionen aus dem benötigten Strom des Laptops pro Jahr, nehmen mit längerer Lebensdauer ab. Das gleiche Prinzip gilt für alle anderen elektrischen Geräte, die wir benutzen. Mit anderen Worten: Um die Kohlendioxidemissionen zu verringern, sollten wir die Hardware so lange wie möglich in Betrieb halten, indem wir Software (einschließlich Betriebssysteme!) schreiben, die weniger Ressourcen verbrauchen und nicht jedes zweite Jahr einen neuen Laptop/Server/Smartphone erfordern.

Wie steht es überhaupt mit den Verbesserungen der Energieeffizienz moderner Hardware? Smartphones sind um ein vielfaches leistungsfähiger als der durchschnittliche Heimcomputer, wie er vor vielen Jahrzehnten im Einsatz war, und verbrauchen dabei deutlich weniger Energie. Allerdings sind heute auch viel mehr Smartphones in Gebrauch, als es jemals Heimcomputer gab [42].

Dies wird auch als Rebound-Effekt bezeichnet [43]: Weil eine Technologie viel weniger Energie verbraucht, nutzen wir sie auch entsprechend mehr. Gute Beispiele sind z. B. E-Mails anstelle von klassischen Postsendungen, oder LED-Lampen (die oft Tag und Nacht eingeschaltet bleiben) anstelle herkömmlicher Glühbirnen.

Das Verhalten der anderen

Bisher haben wir erörtert, wie wir Kohlendioxidemissionen für bestehende Arbeitslasten reduzieren können. Wir können das Ganze aber auch aus einem anderen Blickwinkel angehen: Was wäre, wenn wir unseren Usern helfen, ihre Emissionen zu reduzieren, indem sie ihr Verhalten ändern?

Ein einfaches Beispiel ist der Dark Mode, den heutzutage wahrscheinlich die meisten IDEs und auch andere Tools anbieten [44]. Durch die Verwendung eines dunklen Themes benötigen unsere Bildschirme (je nach Typ) weniger Energie. Auch wenn die Stromersparnis für den Einzelnen marginal zu sein scheint, würde es sicherlich einen Unterschied machen, wenn die Millionen Nutzer von großen Websites wie YouTube das dunkle Theme verwenden würden.

Warum nicht einen Öko-Modus für Ihre App einführen?

Ein echtes Problem sind Social-Media-Apps [45]. Wie Verhaltensstudien belegen, sind diese so erfolgreich, weil sie ihre User dazu verleiten, sie immer häufiger zu nutzen [46]. Denn jedes Mal, wenn wir einen "Like" für einen Beitrag erhalten, schüttet unser Gehirn Dopamin aus, eine Chemikalie, die uns für vorteilhaftes Verhalten wie erfolgreiche soziale Interaktionen belohnt  – oder für Gewinne beim Glücksspiel [47]. Schlimmer noch, unser Körper gewöhnt sich schnell daran und verlangt immer mehr davon. Auf diese Weise verbringen wir mehr Zeit damit, die App zu nutzen, als wir es normalerweise tun würden.

Aber genau das ist es ja, was viele Unternehmen wollen: oft ist das Geschäftsmodell darauf aufgebaut, durch das Sammeln von Nutzerdaten und das Ausspielen von Werbung Geld zu verdienen. Das geht umso besser, je öfter und länger die Nutzer die App benutzen. Eine Verringerung der Nutzungsdauer würde zwar Energie sparen, aber auch die Einnahmen schmälern.

Zum Glück gibt es nicht nur süchtig machende Apps. Produktdesigner könnten Features einführen, die Energie sparen, wie z. B.

  • eine niedrigere Standardstufe für die Bild-/Audio-/Videoqualität verwenden,
  • die Anzahl der Funktionen reduzieren, die automatisch auf der Startseite oder auf jeder Unterseite geladen werden,
  • Videos und Werbung nicht automatisch abspielen lassen,
  • die Anzahl der Benachrichtigungen reduzieren oder
  • Tracking vermeiden/verringern.

Unabhängig davon, wie groß oder klein die Wirkung der einzelnen Maßnahmen tatsächlich sind, helfen sie, das Bewusstsein der User in Bezug auf nachhaltiges Verhalten zu schärfen. Es geht auch darum, wie Produktdesigner diese Maßnahmen "verkaufen". Warum z. B. nicht einen "Öko-Modus", so wie man ihn von Waschmaschinen kennt, für Ihre App einführen? Viele Apps bieten zumindest einige der oben genannten Optionen bereits an, die meisten Nutzer wissen nur nichts davon, weil sie tief in den Konfigurationsoptionen versteckt sind. Ein Öko-Modus würde es den Usern erleichtert, sie zu aktivieren.

Fazit

Wir haben nun einige Möglichkeiten zur Verringerung der Kohlendioxidemissionen kennengelernt. Aber lohnt sich das alles auch wirklich? Sollen wir Stunden damit zubringen, einen Algorithmus oder eine Datenbankabfrage zu verbessern oder die Größe unserer Website zu optimieren, während die größten Emittenten von Treibhausgasen eigentlich Sektoren wie die Lebensmittelproduktion oder der Verkehr sind (Abb. 5) [48]?

Wir dürfen nicht vergessen, dass jedes eingesparte Kohlekraftwerk einen Gewinn für die Umwelt darstellt. Dabei sollten wir uns nicht auf einige, wenige Maßnahmen konzentrieren. Wir können z. B. grüne Hosting-Unternehmen wählen, die Effizienz unserer Software steigern oder langlebige Produkte dem Billigmüll vorziehen. Indem wir die Nutzer dazu anregen, ihr persönliches Verhalten kritisch zu überdenken, schärfen wir zudem deren Problembewusstsein. Auf diese Weise können wir indirekt Druck auf die Entscheidungsträger in Politik und Industrie ausüben, damit sie im großen Maßstab Änderungen vornehmen.

Sie haben sicher auch schon bemerkt, dass viele der oben genannten Maßnahmen nicht nur die Emissionen reduzieren, sondern auch die Leistung Ihrer Websites und Anwendungen verbessern. Das spart Kosten und führt indirekt zu besseren Umsätzen, denn unsere Kunden und auch Suchmaschinen lieben schnelle Websites [49]. Eigentlich eine klassische Win-win-Situation!

Das Thema Green IT nimmt gerade erst so richtig Fahrt auf. Die ersten Tools zur Messung der Kohlendioxidemissionen unserer Software sind verfügbar, weitere werden folgen. Ähnlich wie bei Web-Performance-Budgets könnten wir zum Beispiel Kohlendioxid-Budgets einrichten, die während des Builds in der CI-Pipeline überprüft werden [50]. Es wird sicherlich bald viele weitere Möglichkeiten geben, unsere Software grüner zu machen. Vielleicht müssen wir auch einfach nur wieder kleiner denken und uns auf Effizienz statt schnelle Entwicklung konzentrieren [51]. Die Umwelt und unsere User würden es uns sicherlich danken.

Quellen
  1. IPCC: AR6 Climate Change 2021: The Physical Science Basis
  2. Wikipedia: Treibhausgas
  3. Mike Berners-Lee: Wie schlimm sind Bananen? (2020)
  4. The Shift Project: Lean ICT - Towards Digital Sobriety
  5. Factcheck: How Potent Is Methane?
  6. University of Michigan: Green IT Factsheet
  7. Our Worls In Data: Energy Mix
  8. Statistisches Bundesamt: Energieerzeugung
  9. TWI: What is Decarbonisation?
  10. The Guardian: Electric cars produce less CO2 than petrol vehicles, study confirms
  11. Gabler: Effizienz
  12. Wikipedia: Effizienz (Informatik)
  13. Wikipedia: Landau-Symbole
  14. The PHP Benchmark
  15. Github: phpbench
  16. MIT Technology Review: Training a single AI model can emit as much carbon as five cars in their lifetimes
  17. Cornell University: Green AI
  18. Phil Sturgeon: Caching is hard, draw me a picture
  19. Hugo
  20. PHP Benchmarks
  21. Greenlab: Energy Efficiency across Programming Languages
  22. PHP Benchmarks
  23. Kinsta: The Definitive PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, and 8.0 Benchmarks (2021)
  24. Principles.Green: Energy Proportionality
  25. Wikipedia: Autoscaling
  26. nature: How to stop data centres from gobbling up the world’s electricity
  27. MDPI: The Water Footprint of Data Centers
  28. NBC News: Drought-stricken communities push back against data centers
  29. TechRepublic: 6.4M tons of CO2 will pollute the atmosphere in 2020 due to dark data
  30. iea: The carbon footprint of streaming video: fact-checking the headlines
  31. Smashing Magazine: A Smashing Guide to Performance
  32. BBC News: Bitcoin consumes 'more electricity than Argentina'
  33. Carbon Intensity API
    electricityMap
  34. GoogleCloud: Helping you pick the greenest region for your Google Cloud resources
  35. Statistik sentralbyra: Electricity
  36. Microsoft: How To Measure The Power Consumption of Your Frontend Application
  37. website carbon calculator: How is your website impacting the planet?
  38. Microsoft: How To Measure The Power Consumption of Your Frontend Application
  39. Greenframe: Measure and reduce your website's CO2 emissions
  40. CXOtoday: AWS Cloud is Helping Firms Reduce their Carbon Footprint
  41. The Conversation: How smartphones are heating up the planet
  42. bankmycell: How Many Smartphones Are In The World?
  43. resilience.org: Why ‘rebound effects’ may cut energy savings in half
  44. T. Greenwood: Sustainable Web Design
  45. Science Focus: Trapped – the secret ways social media is built to be addictive
  46. The Shift Project: Climate Crisis: The Unsustainable Use Of Online Video
  47. Harvard University: Dopamine, Smartphones & You: A battle for your time
  48. Our World in Data: Emissions by sector
  49. Hubspot: 12 Statistics That Show How Page Load Time Impacts Conversion Rate
  50. web.dev: Performance budgets 101
  51. tonsky: Software disenchantment

Autor

Carsten Windler

Carsten Windler ist langjähriger Web-Developer und hat als Entwicklungsleiter zudem diverse Teams in verschiedenen Firmen und Branchen betreut.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben