Was ist Green-Software

Green Software ist ein Konzept, das von der Green Software Foundation definiert wurde, mit dem Ziel, die CO2-Emissionen zu reduzieren, und damit den Klimawandel zu bekämpfen. Es gibt andere Begriffe im Bereich der Nachhaltigkeit, aber in diesem Beitrag möchte ich mich auf Green Software konzentrieren.

Die Green Software Foundation ist eine gemeinnützige Organisation unter der Linux Foundation. Sie definiert Green Software mit folgendem Diagramm. Das Ziel von Green Software ist es, die Menge an ausgestossenem CO2 zu reduzieren, nicht die Neutralisierung von bereits ausgestossenem CO2. Dabei wird die Software in den Fokus gerückt, da sie der Haupttreiber für CO2 in unseren IT-Lösungen ist.

Green Software

Schauen wir uns die verschiedenen Prinzipien auf diesem Diagramm und ihre Bedeutung an:

CO2-Effizienz

Das Ziel des Prinzips der CO2-Effizienz (Carbon efficient) ist es, weniger CO2 auszustossen. Dies kann entweder durch geringeren Energieverbrauch während der Produktion (energieeffizient) oder durch den Einsatz von weniger Hardware (hardwareeffizient) erreicht werden.
Abhängig vom Gerät und seiner Anwendung dominieren entweder Energieeffizienz oder Hardwareeffizienz den Lebenszyklus.

Bei Servern ist der CO2-Ausstoss während der Nutzungsphase durch den Energieverbrauch erheblich. Hier kann eine Verbesserung der Code-Effizienz vorteilhaft sein. Auf der Client-Seite werden die meisten Emissionen während der Produktion ausgestossen. Der Energieverbrauch bei der Nutzung eines Tablets, Handys oder Laptops ist fast vernachlässigbar. Daher ist es wichtiger, Software zu entwickeln, die die Lebensdauer des Client-Geräts nicht verkürzt (z. B. durch Rückwärtskompatibilität zu älteren Plattformen).

Energieeffizient

Energieeffiziente Software nutzt möglichst wenig Energie, um die notwendigen Aufgaben zu erfüllen. Dies kann auf unterschiedliche Weise erreicht werden. Der offensichtliche Ansatz ist das Schreiben energieeffizienten Codes. Ein grosser Hebel, der oft einfacher umzusetzen ist, liegt in der Nutzung weniger energieintensiver Sprachen, Frameworks und Bibliotheken.
Ein weiterer wichtiger Faktor ist es, einfach weniger zu tun. Ein Lean-Ansatz bei der Softwareentwicklung kann helfen, alles zu hinterfragen und nur das umzusetzen, was wirklich notwendig ist.

Hardwareeffizient

Um hardwareeffizient zu werden, müssen wir zwei Hauptziele erreichen. Erstens: die Auslastung der Hardware maximieren. Das liegt daran, dass jede Hardware sogenannte Graue Energie beinhaltet, die während der Produktion, des Transports und der Entsorgung entstehen.
Zweitens: die Nutzung optimieren. Je mehr wir auf einem Gerät ausführen können, desto weniger müssen wir kaufen, und somit wird die Menge des eingebetteten CO2 reduziert.

CO2-Bewusst

Wenn wir CO2-bewusst (Carbon aware) handeln, nutzen wir Energie an Orten oder zu Zeiten, an denen dieselbe Energiemenge mit weniger CO2-Ausstoss erzeugt werden kann. Dies ist durch Fortschritte in der Cloud-Infrastruktur möglich geworden, da Rechenzentren zunehmend regionale oder zeitliche Verschiebungen von Arbeitslasten unterstützen. Online-Dienste wie electricity map können Echtzeitdaten liefern, um die richtigen Entscheidungen zu treffen.

Im Rechenzentrum haben wir oft viel Kontrolle. Wir können entscheiden, wo und wann der Code ausgeführt wird. Es ist möglich, unseren Code in Regionen der Welt zu verschieben, in denen die Energie gerade grüner ist. Mit “Demand Shaping” können wir versuchen, die Nachfrage unserer Anwendung zu einem optimaleren Zeitpunkt zu verschieben oder sogar zu reduzieren. Nicht zeitkritische Aufgaben wie Batch-Jobs, Backups oder KI-Modell-Training können auf Zeiten verschoben werden, in denen die Energie weniger CO2-intensiv ist.
Auf der Client-Seite haben wir weniger Einfluss. Viele Dinge können wir nicht einmal messen. Wir wissen (in der Regel) nicht, wie grün der Strom des Nutzers ist, und es ist oft schwierig, dies auf seinem Gerät zu erfassen.

Messung und Überwachung

Man kann nicht verbessern, was man nicht weiss. Hier kommen Messung und Überwachung ins Spiel. Wir stehen noch am Anfang der Reise, um zu lernen, wie wir dies in unserer zunehmend komplexen IT-Landschaft umsetzen können. Es gibt viele Punkte im Lebenszyklus, an denen wir die CO2-Äquivalente unserer Lösung messen können. Wir können Testläufe messen, den Energieverbrauch unserer Server oder die Effizienz einer Webseite. Es gibt keine einzelne, universelle Messgrösse.

Fazit

Green Software ist ein nützliches Framework, das uns hilft zu verstehen, in welchen Bereichen wir arbeiten müssen, um den CO2-Ausstoss unserer IT-Lösungen zu reduzieren. Die Prinzipien “energieeffizient”, “hardwareeffizient” und “CO2-bewusst” geben uns Leitlinien, wo wir mit Verbesserungen beginnen können.

Dieser Überblick ist auf einem sehr hohen Niveau, und jedes der Prinzipien bietet viel mehr zu lernen. Wenn du mehr wissen möchtest, folge mir hier, sieh dir das Material des Green Software Practitioner-Kurses an oder lies das fantastische Buch “Building Green Software” von Anne Currie.

Auch wenn das gesamte Thema gross und überfordernd wirkt, das Wichtigste ist, einfach anzufangen. Wähle ein Prinzip, lerne mehr darüber und beginne es umzusetzen!