Digitale Nachhaltigkeit - was hat das denn mit Softwareentwicklung zu tun?

Elena Höppner
de Elena Höppner Content Marketing 07.07.2022

Wachsende Datenmengen, komplexerer Code, höhere Speicherkapazitäten – im letzten Artikel hat sich gezeigt, dass durch den zunehmenden CO2-Verbrauch in der Digitalwirtschaft die digitale Nachhaltigkeit ein immer relevanteres Thema wird. Aber was genau ist digitale Nachhaltigkeit eigentlich und welche Faktoren spielen dabei eine Rolle? Inwieweit kann Software überhaupt nachhaltig sein? Und wo liegen die Zusammenhänge von Software und Hardware? All diesen Fragen wollen wir heute auf den Grund gehen – und um noch einen besseren Einblick in die Welt der digitalen Nachhaltigkeit zu erlangen, haben wir unseren Backend-Entwickler Carlo gefragt, der sich im Zuge seines Informatik-Studiums unter anderem mit diesem Thema beschäftigt.

Digitale Nachhaltigkeit – ein Begriff, viele Bedeutungen?
Wie wir im letzten Artikel schon festgestellt haben, geht es bei digitaler Nachhaltigkeit grundsätzlich darum, ressourcenschonend zu wirtschaften, Kapazitäten effizient zu nutzen und so nicht über dem eigenen sowie dem Bedarf zukünftiger Generationen zu leben. Unser Entwickler Carlo hat dazu noch eine etwas genauere Definition für uns: «Digitale Nachhaltigkeit heisst Software und Systeme so zu konzipieren und zu bauen, dass sie umweltschonend, energieeffizient und langfristig nutzbar sind.» 

Klingt gut, aber wie lässt sich das in Bezug auf Softwareentwicklung und -nutzung umsetzen? 
Natürlich gibt es hier – wie bei den meisten Themen dieser Art – nicht den einen allesverändernden Faktor, sondern es ist ein fliessender Prozess, der verschiedene Bereiche beinhaltet. Diese haben wir nun einmal zusammengestellt:

  1. Alle die Softwarenutzung betreffenden Faktoren: dies geht von der Verwendung von grünem Strom über die Optimierung von Kühlung bis hin zur Wärmenutzung.

  2. Es ist entscheidend, wie effizient die Software erstellt ist, also wie komplex ihr Quellcode ist oder welche Programmiersprache genutzt wird.

  3. Das Zusammenspiel zwischen Hardware und Software: Wie gut wird Software auf der entsprechenden Hardware genutzt und wie effizient gestaltet sich somit die Auslastung der Hardware?

Schauen wir uns das nun einmal genauer an.

Effiziente Energienutzung – grüner Strom, Kühlung und Wärmeoptimierung 
Software braucht Energie – das ist eine Tatsache, die feststeht und die wir nicht ändern können. Aber worauf wir Einfluss haben, ist die Herkunft des Stroms, der für unsere Software verwendet wird. So ist die Nutzung von grünem Strom, also Strom aus erneuerbaren Energieträgern, deutlich umweltschonender und trägt damit zu einer nachhaltigeren Software bei. Darüber hinaus entsteht durch die Nutzung von Software auf den Servern sehr viel Wärme, sodass auch der nachhaltige Umgang damit ein wichtiger Punkt ist. Vor allem Rechenzentren haben dabei entscheidende Vorteile, da die Gebäude beispielsweise so gebaut werden können, dass Kühlungsmittel wie Luft oder Wasser optimal geleitet und die Kühlung so sehr effizient durchgeführt werden kann. Darüber hinaus gibt es Konzepte, mit denen die entstehende Wärme zur Beheizung von Wohngebieten genutzt wird – das ist natürlich äusserst effektiv. 

Nachhaltige Software ist effizient geschriebene Software 
Abgesehen von grüner Stromnutzung und der Wärme- und Kühlungsoptimierung kommt es zu einem wesentlichenen Teil darauf an, wie die Software programmiert ist – wie also ihr Quellcode aussieht. Eine effizient geschriebene Software bedeutet den Quellcode möglichst einfach zu halten, was zu einer besseren Performance und somit zu einer nachhaltigeren Funktionsweise führt.
Carlo erklärt uns dazu: «Komplexer Quellcode heisst immer mehr Entwicklungs- und Wartungskosten, weil er schwieriger zu lesen ist und es entsprechend mehr Zeit braucht, damit klarzukommen. Auch hat er mehr komplexe Probleme, die man gar nicht sieht, aber die immernoch Energie verbrauchen, obwohl das gar nicht notwendig wäre. Das heisst man sollte Quellcode so einfach wie möglich halten.»

Gleichzeitig berichtet uns Carlo auch von den Schwierigkeiten beim Erstellen effizienter und nachhaltiger Software: «Es ist aufwendig effiziente Software zu schreiben; es ist aufwendig schonende Software zu schreiben. Dabei geht es um die gesamte Architektur der Software. Mittlerweile haben wir immer grössere Datenmengen, wir wollen immer mehr Daten sammeln und verarbeiten. Die ganzen Prozesse müssen optimierter sein, müssen effizienter sein, damit man dem Energieverbrauch der wachsenden Datenmengen entgegenwirken kann.» 
Software effizienter zu programmieren kostet also erstmal Zeit und Geld, ist aber langfristig sinnvoll, um Kosten, Aufwand und Energieverbrauch zu reduzieren. 

In diesem Kontext ist auch die Wahl der Programmiersprache für die Energiebilanz der Software äusserst interessant: So hat eine Studie von Accenture ergeben, dass die gewählte Programmiersprache den Energieverbrauch einer Software um bis zu 50 Prozent verringern kann! Hier zeigt sich also, dass in einigen Bereichen noch Luft nach oben ist. 

Hardware und Software – auf die optimierte Auslastung kommt es an 
Abschliessend nicht zu vergessen: das Zusammenspiel von Soft- und Hardware. Entscheidend ist, wie effizient die Hardware durch die darauf aufgespielte Software ausgelastet ist, sodass möglichst wenig Leistung verschwendet wird.
Carlo erklärt dazu: «Hardware und Software stehen in einem engen Zusammenhang miteinander. Auf dem Server, also auf der Hardware, befinden sich eine festgelegte Anzahl von Ressourcen, sei das der Arbeitsspeicher oder die Anzahl Prozessorkerne. Nun geht es darum, Software so effizient wie möglich auf diese abzupassen, sodass die Ressourcen nicht verschwendet, sondern so effizient wie möglich genutzt werden. Es geht darum, dass möglichst viel Software auf der Hardware läuft, ohne dass sie sich gegenseitig beissen, indem sie voneinander Ressourcen aufsaugen.»

Eine möglichst hohe Auslastung der Hardware ist somit aus Nachhaltigkeitsperspektive höchst relevant. Schätzungen aus dem Jahr 2015 kamen beispielsweise zu dem Ergebnis, dass bis zu 30 Prozent der Server in Rechenzentren leerlaufen, also keine Leistung erbringen. In diesem Kontext interessant ist der Vergleich der beiden Modelle Private und Public Cloud: Während in der Private Cloud nur die Daten eines einzigen Unternehmens gespeichert und verarbeitet werden, laufen in der Public Cloud die Prozesse mehrerer Unternehmen ab. Da die Ressourcen in einer Public Cloud somit geteilt werden können, ist hier eine sehr viel effizientere Auslastung möglich als durch eine Private Cloud.
Dazu erklärt uns Carlo: «Wenn ich einen Server hier stehen habe oder eine Private Cloud benutze, wird es für mich enorm schwierig die Ressourcen, die auf dem Server verfügbar sind, voll auszunutzen. Das heisst sie laufen im Leerlauf, sind verfügbar, sind reserviert, werden für nichts anderes genutzt – aber eben, sie werden effektiv für nichts anderes genutzt. In der Public Cloud hat man demgegenüber oft schon Optimierungen vom Cloud Provider aus, sodass festgelegt ist, was auf welchen Server kommt, um so viel wie möglich auszunutzen.» 

Viele spannende Einblicke in das Feld der digitalen Nachhaltigkeit – wir bedanken uns bei Carlo für das Interview!