Sustainability im Software Engineering: Warum auf erneuerbare Energien warten?

Der Klimawandel ist real, und jeder muss einen Beitrag dazu leisten, ihn zu stoppen – auch und vielleicht sogar gerade Softwareentwickler. Aber wie?

In Pocket speichern vorlesen Druckansicht 20 Kommentare lesen

(Bild: Halfpoint/Shutterstock.com)

Lesezeit: 8 Min.
Von
  • Martin Lippert
Inhaltsverzeichnis

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.

Sustainability im Software Engineering – die Kolumne

Durch ihre Aufgaben haben Softwareentwickler ungeahnte Möglichkeiten, die Zukunft zu gestalten. Vielmehr noch es liegt auch in ihrer Verantwortung, für ein besseres Morgen zu sorgen. Eine neue Kolumne auf heise Developer von Martin Lippert.

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. 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.

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.

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, wie viel Energie und CO2-Emissionen beispielsweise durch den Einsatz von Virtualisierung mit VMware im Laufe der Jahre eingespart wurde.

Weltweite Stromverbrauch- und Kohlenstoffeinsparungen in Verbindung mit der Vermeidung von Infrastruktur aufgrund der Verwendung von VMware-Produkten, 2013-2019

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.

Ä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

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.

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).

Im Vergleich dazu entstehen 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.

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)