Nachhaltigkeit von Software testen
Es fehlen klare Handlungsempfehlungen, wie man die Nachhaltigkeit von Software bewertet, sagt Yelle Lieder von adesso SE.
Wie testet man Nachhaltigkeit von IT methodisch richtig?
Das methodische Vorgehen für solche Tests muss immer darauf abzielen, reproduzierbare und vergleichbare Messergebnisse zu erzielen. Unabhängig davon, ob wir die verwendete Bandbreite, Zugriffe auf die Disk, CPU-Zeit oder den tatsächlichen Stromverbrauch messen, das System, auf dem die Messungen durchgeführt werden, muss immer in exakt demselben Zustand sein. Dazu werden zunächst alle nicht benötigten Anwendungen geschlossen. Der Start von Anwendungen und Prozessen im Hintergrund wird unterbunden. Es ist nur Peripherie an das System angeschlossen, die für den Test benötigt wird. Alle angeschlossenen Geräte und die Anbindung ans Internet erfolgen über Kabel und nicht über drahtlose Netze. Benachrichtigungen werden deaktiviert und die Raumtemperatur ist konstant. Ein solches Setup minimiert das Rauschen in Messreihen und ermöglicht reproduzierbare Messungen.
Wie geht Quellcode-basierte Messung von Nachhaltigkeit?
Für viele Programmiersprachen gibt es bereits Open Source Tools, die installiert und im Code eingebunden werden. Diese Tools ermöglichen bis auf Ebene einzelner Methoden die Schätzung des Ressourcenverbrauchs. Über Methodenannotationen oder Start-Stopp-Systematiken, lassen sich so einzelne Code-Abschnitte granular messen. Gemessen wird dabei in der Regel die CPU-Zeit, also wie stark der Prozessor ausgelastet wird. Zusätzliche Datenpunkte können je nach Tool zudem die verbrauchte Bandbreite, Lese- und Schreiboperationen auf die Festplatte oder auch die Auslastung des Arbeitsspeichers sein. Diese digital gemessenen Werte, werden anhand vorab definierter Formeln in Umweltauswirkungen – meist wird von geschätztem Stromverbrauch auf CO2-Emissionen geschlossen – umgerechnet. Wer einmal einen Stromzähler an ein Gerät anschließt, welches parallel zu Quellcode-basierten Tools misst, wird feststellen, dass es durchaus Abweichungen gibt. Letztlich geht es aber nicht darum, die CO2-Emissionen auf das Gram genau zu bewerten. Vielmehr ist das Ziel, Größenordnungen und Trends zu verstehen und Versionen desselben Systems über die Zeit hinweg vergleichbar zu machen.
Wie kann man Nachhaltigkeit von IT monitoren?
Für Cloud-Dienstleistungen bieten viele Provider bereits Dashboards für das kontinuierliche Monitoring der Umweltauswirkungen ihrer Dienste an. Die berichteten Zahlen erlauben jedoch kaum Vergleichbarkeit zwischen verschiedenen Betriebsumgebungen, da die zugrundeliegende Methodik keinen Standards oder Normen folgt. In der Folge werden die Ergebnisse oft optimistischer dargestellt, als sie tatsächlich sind. Open-Source-Lösungen wie „Cloud Carbon Footprint“ können hier einen Beitrag zu mehr Transparenz schaffen und über APIs mit den Verbrauchsdaten aus der Cloud verbunden werden. Dies ermöglicht eine kontinuierliche Überwachung und Vergleichbarkeit der Ressourcenverbräuche eines Systems im tatsächlichen Betrieb. Diese Vorgehensweise deckt Verhaltensmuster auf, die in Testumgebungen möglicherweise übersehen wurden, und ermöglicht die Identifizierung von Emissionshotspots.
Interpretation der Messergebnisse
Nachdem die Nachhaltigkeit von IT-Systemen gemessen und überwacht wurde, stellt sich die wichtige Frage: Was geschieht mit den erfassten Daten und Erkenntnissen? Ergebnisse müssen interpretiert und Maßnahmen abgeleitet werden, um die Nachhaltigkeit zu verbessern.
Versionen vergleichen und Trends erkennen
Nicht jeder Anstieg, insbesondere im Monitoring, ist negativ. Steigende Nutzerzahlen beispielsweise, führen mutmaßlich zu höheren Emissionen eines Gesamtsystems. Der „Software Carbon Intensity Standard“ orientiert sich methodisch an der ISO 14040 für die Ökobilanzierung und schlägt vor, absolute Zahlen immer im Kontext steigender Nutzerzahlen zu betrachten. Bei der Bewertung einer Anwendung sollte daher nicht nur die absoluten Umweltauswirkungen berücksichtigt werden, sondern auch, wie sich diese im Verhältnis zur Nutzung entwickeln.
Hotspots identifizieren
Besonders im Rahmen des Monitorings fällt auf, wenn ein Dienst trotz geringer Nutzung konstant hohe Umweltauswirkungen verbraucht. Solche Umstände lassen sich bei punktuellen Tests im Quellcode schwieriger aufdecken. Das kontinuierliche Monitoring ermöglicht es, diese ineffizienten Verbrauchsmuster aufzudecken. Diese Erkenntnisse sind äußerst wertvoll, da sie auf verborgene Umweltauswirkungen hinweisen können, die bei oberflächlichen Untersuchungen übersehen werden. Durch die Identifizierung von Hotspots können gezielte Maßnahmen ergriffen werden, um den Energieverbrauch in diesen Bereichen zu reduzieren.
Ableitung von Handlungsmaßnahmen
Die Messergebnisse dienen als Grundlage für die Ableitung von Handlungsmaßnahmen zur Verbesserung der Nachhaltigkeit. Handlungsfelder mit hohem Wirkungsgrad lassen sich über die erhobenen Daten aus der Messung ableiten. Einen geringen Investitionsaufwand versprechen zudem jene Maßnahmen, bei denen zunächst offensichtliche Verschwendung reduziert wird. Etwa durch die Zusammenlegung unterausgelasteter Server, Abschaltung nicht genutzter virtueller Maschinen oder Scaling to zero. Erst wenn diese einfachen Maßnahmen ausgeschöpft sind, sollte man sich komplexeren Aktivitäten zuwenden, wie der Performance-Optimierung des Quellcodes zur Laufzeit. Compiler nehmen hier schon viele Optimierungen vor, sodass eine lohnenswerte zusätzliche Optimierung häufig mit signifikantem Aufwand verbunden ist.
Limitationen
Die Messverfahren konzentrieren sich hauptsächlich auf die Messung des Stromverbrauchs und, je nach verwendetem Tooling, auf die Berechnung der resultierenden CO2-Emissionen. Obwohl diese Informationen äußerst wertvoll sind, um die Laufzeiteffizienz zu bewerten, gibt es einige wichtige Limitationen zu beachten:
- Begrenzung auf Laufzeiteffizienz: Sie ermöglichen keine Rückschlüsse darauf, ob noch Potenziale in Bezug auf nachhaltige Entwicklungspraktiken im gesamten Lebenszyklus der IT-Produkte und -Dienstleistungen vorhanden sind.
- Fehlende Anreize für erneuerbare Energien: Die Messungen fokussieren sich auf den Stromverbrauch, bieten jedoch keine Anreize für den bewussten Bezug von erneuerbaren Energien.
- Vernachlässigung älterer Hardware: In vielen Fällen ist die Verwendung älterer Geräte nachhaltiger, da sie die Ressourcen für die Herstellung neuer Hardware einsparen.
- Begrenzte Betrachtung weiterer Umweltauswirkungen: IT-Systeme haben viele weitere Umweltauswirkungen, darunter Ökotoxizität, Wasserverbrauch und den Abbau seltener Erden für die Produktion von Elektronikkomponenten.
Mangelnde Sensibilisierung und Umsetzung: Eine jüngst veröffentlichte Befragung der Gesellschaft für Informatik hat ergeben, dass nur 18 % der befragten Unternehmen überhaupt Messungen der Nachhaltigkeit durchführen. Im Kontext steigender regulatorischer Anforderungen, sich ändernder Kundebedürfnisse und Kapitalmarktanforderungen, werden jedoch auch die IT-Abteilungen nicht daran vorbeikommen, ihren Beitrag zur Erreichung von Nachhaltigkeitszielen zu leisten. In der Branche gibt es vermehrt Verantwortliche, deren Zielerreichung und erfolgsabhängige Vergütung auch von Nachhaltigkeitszielen abhängt. Diese Entwicklungen werden mittelfristig dazu führen, dass jedes Unternehmen auch die Nachhaltigkeit seiner IT im Auge behalten muss.
Yelle Lieder
ist Informatiker und Berater für Technologie und Nachhaltigkeit bei der adesso SE.