Sustainability im Software Engineering: Warum auf erneuerbare Energien warten?

(Bild: Halfpoint/Shutterstock.com)
Der Klimawandel ist real, und jeder muss einen Beitrag dazu leisten, ihn zu stoppen â auch und vielleicht sogar gerade Softwareentwickler. Aber wie?
Das Erzeugen von Energie verursacht den GroĂteil der weltweiten CO2-Emissionen (ca. 74 %). Wer sich also mit dem Kampf gegen den Klimawandel beschĂ€ftigt, kommt um das Thema Energieerzeugung und -verbrauch nicht herum. Erneuerbare Energien sind offensichtlich der SchlĂŒssel. Sobald wir Energie zu 100 Prozent aus erneuerbaren Quellen erzeugen, haben wir ein wichtiges Ziel erreicht, um die globalen CO2-Emissionen drastisch zu reduzieren. Das allein wird zwar nicht reichen, den Klimawandel aufzuhalten, aber einen erheblichen Beitrag dazu leisten.
Wo stehen wir?
2019 wurde beispielsweise der Strom in den USA zu knapp 18 Prozent aus erneuerbaren Quellen erzeugt, in Deutschland waren es im gleichen Jahr circa 40 Prozent [6]. Der Anteil steigt zwar stetig, es wird aber voraussichtlich noch viele Jahre dauern, bis wir Strom komplett aus erneuerbaren Energien liefern können. Hinzu kommt, dass gleichzeitig der Stromverbrauch steigt. Bezogen auf Software und deren Betrieb in Rechenzentren sind sich die Studien zum Thema nicht unbedingt einig. Unstrittig ist aber das stetige und teilweise sprunghafte Wachstum an KapazitĂ€ten, die durch Rechenzentren (vor allem der Public Cloud) zur VerfĂŒgung gestellt werden (mĂŒssen).
Die gute Nachricht ist: Gerade die Cloud-Rechenzentren brauchen â relativ betrachtet â zunehmend weniger Strom, um Software in der Cloud laufen zu lassen. AuĂerdem werden viele Rechenzentren mit erneuerbaren Energien versorgt und erzeugen die benötigte Energie teilweise sogar selbst und vor Ort. Es gibt also aus Sicht der CO2-Emissionen kaum eine bessere Möglichkeit, als die Software in der Public Cloud zu betreiben.
Woher kommt der "grĂŒne" Strom fĂŒrs Rechenzentrum?
Viele Betreiber erzeugen selbst â vor Ort oder in einer anderen geografischen Lage â erneuerbare Energien, die mehr oder weniger dem Energiebedarf des Rechenzentrums entsprechen. Diese Anstrengung ist erst einmal groĂartig und leistet einen wichtigen Beitrag dazu, die Gesamtmenge an erneuerbaren Energien zu erhöhen.
Es klingt zunĂ€chst verlockend, die Rechenzentren isoliert zu betrachten, vielleicht nach dem Motto: "Das Rechenzentrum wird zu 100 Prozent mit Strom aus erneuerbaren Energien versorgt, deshalb ist alles paletti." Das greift allerdings zu kurz. Einerseits können viele Rechenzentren ihren eigenen Strombedarf nicht rund um die Uhr mit selbst erzeugtem Strom aus erneuerbaren Quellen decken (Beispiel Photovoltaik). Einige Rechenzentren werden deshalb an geografisch gĂŒnstigen Orten errichtet, die guten Zugang zu beispielsweise Wind- oder Hydro-Energie haben.
Solange sich der gesamte globale oder regionale Strombedarf noch nicht zu 100 Prozent aus erneuerbaren Energien decken lĂ€sst, lieĂe sich die erneuerbare Energie auch ins Netz einspeisen, fĂŒr andere verfĂŒgbar machen (was teilweise schon passiert) und könnte so den Anteil an erneuerbaren Energien erhöhen. Daraus ergibt sich: Je weniger Energie das Rechenzentrum selbst verbraucht, desto mehr erneuerbare Energie steht fĂŒr andere Zwecke zur VerfĂŒgung. Ein geringerer Stromverbrauch wirkt sich also â auch bei Rechenzentren, die komplett mit erneuerbaren Energien versorgt werden â positiv aus.
Neben diversen Techniken zum energieeffizienten Betrieb von Rechenzentren können wir uns mit der Frage beschÀftigen, wie die Software, die im Rechenzentrum lÀuft, einen Beitrag leisten kann, um den Bedarf an Energie möglichst gering zu halten.
Virtualisierung als ein wichtiger Schritt
Die Virtualisierung physischer Maschinen ist ein wichtiger Schritt. Da diese Technik schon viele Jahre im Einsatz ist, kann man den Effekt gut nachvollziehen und berechnen. In der Abbildung kann man sehen [7], wie viel Energie und CO2-Emissionen beispielsweise durch den Einsatz von Virtualisierung mit VMware im Laufe der Jahre eingespart wurde.

Den Speicherhunger im Blick behalten
Ein GByte RAM verbraucht ungefĂ€hr zwei Watt. Dabei spielt es zunĂ€chst keine Rolle, ob der Speicher verwendet wird oder nicht. Reserviert man eine bestimmte Menge an Speicher fĂŒr eine Anwendung, fĂŒhrt das automatisch zu einem relativ konstanten Stromverbrauch â allein fĂŒr den reservierten RAM-Speicher. Vielleicht klingen zwei Watt pro GByte wenig. Leider skaliert der Wert relativ schnell hoch. Die logische Formel hierfĂŒr ist:
Anzahl GByte pro Anwendungsinstanz * Anzahl der Instanzen * Anzahl der genutzten Regions * 2 Watt
Sie bezieht sich allerdings nur auf eine einzelne Anwendung. Die gleiche Rechnung ist fĂŒr jede betriebene Anwendung durchzuspielen.
CPU als Stromfresser?
Ăhnlich lĂ€sst sich der Energieverbrauch der reservierten CPU-Ressourcen abschĂ€tzen. Deren Energiehunger ist zwar stark abhĂ€ngig von der tatsĂ€chlichen Auslastung, aber mit einem gesunden Mittelwert lĂ€sst sich auch hier die GröĂenordnung einer Anwendung grob einordnen. Geht man davon aus, dass eine CPU ungefĂ€hr 100 Watt verbraucht, kann man das grob auf einen Verbrauch pro vCPU von circa 25 Watt herunterrechnen. Als Formel ergibt sich daraus:
Anzahl der reservierten vCPUs pro Anwendung * Anzahl der Instanzen * Anzahl der genutzten Regions * 25 Watt
Strom (aus erneuerbaren Energien) ist nicht alles
Der Stromverbrauch einer Software ist allerdings nur eine Komponente der Gleichung. Um in einem Rechenzentrum oder einer Cloud Software betreiben zu können, braucht es nicht nur die Software und Strom, sondern auch die Hardware. Und diese muss hergestellt, ihre Komponenten mĂŒssen im Laufe der Zeit ausgetauscht und die Hardware im Betrieb teilweise aufwendig gekĂŒhlt werden. In jeder dieser AktivitĂ€ten verstecken sich zusĂ€tzliche CO2-Emissionen (neben anderen negativen EinflĂŒssen auf die Umwelt).
Wer versucht, die Software im Rechenzentrum mit weniger Ressourcen zu betreiben, spart also nicht nur einen Teil des Stroms, den das Rechenzentrum selbst verbraucht. Je weniger Hardware man zum Betrieb der Software braucht, desto weniger Emissionen werden bei der Herstellung verursacht.
Was lÀsst sich also tun?
FĂŒr mich ist ein wichtiger Leitsatz entstanden: Versuche, deine Software mit möglichst wenig Hardware zu betreiben. Folgt man diesem Leitsatz, entstehen automatisch Bestrebungen, die Software mit kleineren Instanzen in der Cloud und weniger Speicher zu betreiben, was wiederum weniger Ressourcen verbraucht und weniger CO2-Emissionen verursacht.
Doch macht das wirklich einen Unterschied? Die Frage ist berechtigt. Um sie zu beantworten, vergleiche ich die Zahlen mit Emissionszahlen aus dem Luftfahrtsektor. Mit einem Langstreckenflug von Frankfurt nach San Francisco in der Economy Class mit einer Boeing 747-8 verursache ich ungefĂ€hr 640 kg direkte CO2-Emissionen (pro Flug und Person in dieser Reiseklasse, ohne BerĂŒcksichtigung weiterer Emissionen wie der Klimawirkung der Kondensstreifen, berechnet mit www.atmosfair.de [8]).
Im Vergleich dazu entstehen [9] durch den Betrieb eines Dell-R640-Servers in einem Rack pro Jahr ungefĂ€hr 1932 kg CO2-Emissionen (32 GByte RAM, 2 CPUs). LĂ€sst sich also durch eine weniger speicher- und CPU-hungrige Anwendung diese Menge an Speicher und CPU einsparen, wĂ€ren das ungefĂ€hr drei solche LangstreckenflĂŒge â pro Jahr und pro Anwendung. Bei Annahme, dass ein Entwicklungs-Team vielleicht 20 solcher Anwendungen implementiert und betreibt und diese Anwendungen teilweise horizontal skaliert werden, lieĂen sich hiermit CO2-Emissionen von vielleicht 60 bis 100 LangstreckenflĂŒgen einsparen â pro Betriebsjahr der Software. Aus meiner Sicht macht das einen Unterschied.
Eine Win-Win-Situation
GlĂŒcklicherweise lohnen sich die diskutierten AktivitĂ€ten nicht nur aus Sicht der CO2-Emissionen, sondern auch direkt monetĂ€r: Weniger und kleinere Instanzen in einer Public Cloud reduzieren direkt die anfallenden Kosten fĂŒr die Miete der Instanzen. Eine Rechnung, sie sich schnell lohnt und gleichzeitig CO2-Emissionen reduziert.
Wir sollten damit nicht lÀnger warten.
Martin Lippert
arbeitet bei VMware an Entwicklungswerkzeugen und IDEs fĂŒr Spring und Spring Boot. Er ist langjĂ€hriges aktives Mitglied der Eclipse Community, diente im Program Committee fĂŒr zahlreiche internationale Konferenzen und blickt auf eine lange Historie von KonferenzvortrĂ€gen zurĂŒck. Das Thema Sustainability liegt ihm besonders am Herzen.
(ane [10])
URL dieses Artikels:
https://www.heise.de/-6029217
Links in diesem Artikel:
[1] https://www.heise.de/hintergrund/Sustainability-im-Software-Engineering-Teil-1-ein-Aufruf-6011723.html
[2] https://www.heise.de/hintergrund/Sustainability-im-Software-Engineering-Warum-auf-erneuerbare-Energien-warten-6029217.html
[3] https://www.heise.de/hintergrund/Sustainability-in-Software-Engineering-Teil-3-Datentransfer-im-Visier-6112966.html
[4] https://www.heise.de/hintergrund/Sustainability-in-Software-Engineering-Teil-4-Zombies-6167056.html
[5] https://www.heise.de/hintergrund/Sustainability-in-Software-Engineering-Teil-5-Klimakompensation-6277337.html
[6] https://ourworldindata.org/grapher/share-electricity-renewables?stackMode=absolute®ion=World
[7] https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/company/vmware-idc-whitepaper-2020.pdf
[8] https://www.atmosfair.de
[9] https://i.dell.com/sites/csdocuments/CorpComm_Docs/en/carbon-footprint-poweredge-r640.pdf
[10] mailto:ane@heise.de
Copyright © 2021 Heise Medien