Nachhaltigkeit

Nachhaltigkeit in der Informatik

Nachhaltigkeit spielt auch in der Informatik eine immer größere Rolle. Ein erweiterter Nachhaltigkeitsbegriff umfasst üblicherweise drei Dimensionen: Neben ökologischer Nachhaltigkeit ist dieser auch sozial und gesellschaftlich sowie ökonomisch definiert. Für die Informatik verstehen wir die drei Säulen wie folgt:

  1. Ökologische Nachhaltigkeit hat zum Ziel ressourcenschonende IT-Lösungen, etwa durch energieeffiziente Hardware und Software, zu fördern. Insbesondere die Verlängerung der Lebenszeit von Hardware kann hier einen wichtigen Beitrag leisten, wie wir sehen werden.

  2. Soziale und gesellschaftliche Nachhaltigkeit umfasst zum Beispiel einen offenen und gerechten Zugang zu Bildung und digitalen Gütern. Menschen und Organisationen sollen in ihrer digitalen Souveränität gestärkt werden. In der Open Source Tradition wird digitales Wissen als gemeinschaftliches Kulturgut gesehen. (Reduktion von Abhängigkeiten, Lock-In-Effekte)

  3. Ökonomische Nachhaltigkeit bezieht sich auf einen fairen Wettbewerb und ein innovationsförderndes Umfeld. Dies kann durch kosteneffiziente, transparente und offene Technologien und Standards gestärkt werden. Open Source leistet dazu einen wichtigen Beitrag.

Ein Beispiel für die Umsetzung eines, in diesem Sinne nachhaltigen Ansatzes, ist die interne Informatik-Infrastruktur der Informatik unserer Hochschule. Diese wird auf gebrauchten Servern betrieben und setzt ausschließlich Open Source Software ein. Sie soll einen niedrigschwelligen Zugang für alle Informatikstudierende in eine leistungsstarke Programmier- und Entwicklungsumgebung bieten.

Unsere Auseinandersetzung mit Nachhaltigkeit in der Informatik umfasst folgende Aspekte:

Nachhaltiges Handeln in der Informatik erfordert daher ein Umdenken hin zu offenen, gemeinschaftlich entwickelten Lösungen, die langfristig positive Auswirkungen auf Umwelt, Wirtschaft und Gesellschaft haben.

Open Source und FLOSS

Es gibt zahlreiche Gründe, insbesondere im Hochschulkontext, ausschließlich auf Open-Source-Technologien zu setzen. Für das vorliegende Projekt ist Open Source vor allem ein Mittel, um nachhaltige Konzepte umzusetzen.

Nachhaltigkeit wird hier als vielschichtiges und mehrdimensionales Konzept verstanden. Entsprechend diskutieren wir Nachhaltigkeit und Open Source nicht nur unter ökologischen, sondern ebenso unter sozialen und wirtschaftlichen Gesichtspunkten. Das Paradigma hinter Free/Libre and Open-Source-Software (FLOSS) basiert auf Offenheit, Zusammenarbeit und der Bildung von Gemeingütern. FLOSS versteht Software als öffentliches Gut, das für alle zugänglich sein sollte, um Innovationen zu fördern und technologische Abhängigkeiten zu reduzieren. Die Open Source Initiative (2024) definiert FLOSS als Software, deren Quellcode frei einsehbar, modifizierbar und weiter verteilbar ist. Studien belegen, dass FLOSS erheblich zu einem nachhaltigeren Technologieeinsatz beitragen kann (Viduka 2015).

Ein praktisches Beispiel ist das Betriebssystem GNU/Linux, das die Lebensdauer von Hardware deutlich verlängern kann. Unter sozialen und wirtschaftlichen Aspekten trägt FLOSS außerdem dazu bei, technologische Abhängigkeiten zu reduzieren und digitale Souveränität zu fördern.

Die Open-Source-Bewegung ist eng mit der Unix-Tradition verbunden, die Quellcode als gemeinschaftliches Gut betrachtet, dessen Pflege und Weiterentwicklung gemeinschaftlich erfolgt. Eric S. Raymond beschreibt in The Art of Unix Programming (2003) Open Source nicht bloß als Lizenzmodell, sondern als grundlegende Denkweise, die tief in der Unix-Kultur verwurzelt ist. Die Unix-Entwicklung war seit Beginn geprägt von Offenheit, Modularität und gemeinschaftlicher Zusammenarbeit. Klarheit und Verständlichkeit des Codes sind dabei nicht nur technische Anforderungen, sondern spiegeln eine kulturelle und methodische Haltung wider, die kontinuierliche Kooperation und nachhaltige Innovation ermöglicht.

Um hochwertige und nachhaltige Software zu entwickeln, lohnt es sich, sich mit der Unix-Philosophie auseinanderzusetzen. Diese lässt sich nach Raymond prägnant anhand dreier Prinzipien beschreiben, die helfen, Software verständlich, wartbar und erweiterbar zu gestalten:

Write programs that do one thing and do it well. Write programs to work together. (Kapitel 1, „Philosophy“)

Eine modulare Struktur ermöglicht eine offene und dezentrale Wissensproduktion, fördert iterative Verbesserungen und gemeinschaftliche Innovationen.

Refurbished Hardware

Ein großer Hebel für die nachhaltige Konfiguration einer IT-Infrastruktur ist die richtige Auswahl der Hardware. Für den vorliegenden Anwendungszweck (HS-Informatik-Infrastruktur) argumentieren wir für gebrauchte bzw. refurbished Hardware, sowohl für End- als auch Server-Geräte.

Der Lebenszyklus von Hardware lässt sich in drei Phasen einteilen: Herstellung, Betrieb und Entsorgung. Insbesondere bei Endgeräten fällt der größte Teil der CO2e-Emissionen in der Herstellungsphase an (vgl. Prakash et. al. 2016: 21, 26). Allein die mikroelektronischen Komponenten eines Desktop-PCs machen bei einem Nutzungszeitraum von drei Jahren einen Anteil von über 60% der gesamten CO2e aus. Die Verlängerung der Lebenszyklen eines Geräts reduziert somit nicht nur die Investitionskosten, sondern vornehmlich auch die anfallenden CO2e-Emissionen. Zudem ist der Bedarf an seltenen Erden nicht zu vernachlässigen.

Für Server muss diese Bilanz differenzierter betrachtet werden, da hier weitere Aspekte wie Sekundärnutzung der Abwärme, Auslastung, Anwendungszweck etc. berücksichtigt werden müssen. Allerdings zeigen Bashroush et. al. (2020), dass der Einsatz von refurbished Servern sich nicht nur aus ökologischer, sondern auch aus wirtschaftlicher Sicht lohnt. Das zugrunde liegende Kalkül ist hier, dass das historische Wachstum der Energieeffizienz durch Moore’s Law in den letzten Jahren deutlich verlangsamt wurde und die meisten Server mit einer Auslastung von ca. 20 % laufen. Die Autoren analysieren verschiedene Szenarien zur Erneuerung von Servern und zeigen, dass der Austausch von Servern, die älter sind als 5 Jahre, durch refurbished Geräte wirtschaftlich und ökologisch sinnvoll ist. Für jüngere Server empfiehlt sich eine gezielte Optimierung, wie z.B. durch Speicheraufrüstung.

Bild des Lebenszyklus von Geräten.
Abbildung 1: Lebenszyklus von Geräten

Green-Coding

Green Coding bezeichnet einen nachhaltigen Ansatz in der Softwareentwicklung, der darauf abzielt, den Energieverbrauch sowie die Umweltbelastung von Software zu minimieren. Dabei geht es nicht nur um Effizienzsteigerung, sondern auch um bewusste Design-Entscheidungen, die die Nachhaltigkeit von Softwarelösungen fördern.

Durch optimierten Code, effiziente Algorithmen und ressourcenschonende Softwarearchitekturen kann der Verbrauch essenzieller Ressourcen wie Prozessorleistung, Speicherplatz und Netzwerkbandbreite erheblich reduziert werden. Dies trägt dazu bei, die Lebensdauer von Hardware zu verlängern, den Energieverbrauch zu senken und somit einen positiven ökologischen Fußabdruck zu hinterlassen.

Es gibt eine Vielzahl von bewährten Methoden und Best Practices, die Green Coding unterstützen. Im Folgenden werden einige dieser Techniken vorgestellt und anhand konkreter Beispiele veranschaulicht, wie sie in diesem Projekt umgesetzt wurden.

Architektur

Eine durchdachte Architektur ist essenziell für energieeffiziente Software. Die Wahl der Komponenten sollte gezielt erfolgen, um ressourcenschonende und nachhaltige Lösungen zu ermöglichen. Eine lose Kopplung zwischen Modulen trägt dazu bei, die Wiederverwendbarkeit und Skalierbarkeit zu verbessern, während unnötige Abhängigkeiten reduziert werden. Zudem kann das bewusste Weglassen von Features helfen, unnötige Komplexität zu vermeiden und den Energieverbrauch zu senken. Reaktive Architekturen und ressourcenschonende Algorithmen können ebenfalls einen positiven Beitrag leisten.

Testen und Dokumentation

Um eine nachhaltige Softwareentwicklung sicherzustellen, ist es entscheidend, den Energieverbrauch während des gesamten Entwicklungsprozesses zu messen und zu dokumentieren. Methoden wie Lasttests und Performance-Monitoring helfen dabei, ineffiziente Komponenten zu identifizieren und zu optimieren. Zudem sollten Tests so geplant werden, dass sie zu Zeiten mit hohem Anteil erneuerbarer Energien durchgeführt werden. Die Dokumentation der Energieeffizienz ist ebenso essenziell, um langfristig nachhaltige Softwarelösungen zu fördern

Anwendung von Green Coding

Zu Beginn des Projekts spielte Green Coding noch keine zentrale Rolle. Etwa zur Mitte der Entwicklung wurde jedoch gezielt darauf geachtet, nachhaltige Prinzipien in den Entwicklungsprozess zu integrieren. Als Grundlage hierfür dienten vor allem Materialien des Bundesumweltamtes, die wertvolle Leitlinien und Best Practices für energieeffiziente Softwareentwicklung lieferten. Dabei zeigte sich, dass einige Green-Coding-Techniken bereits unbewusst angewendet wurden.

Gleichzeitig wurden Bereiche mit Optimierungspotenzial identifiziert. Besonders in den Bereichen Serverlaufzeiten, Datenspeicherung und Dokumentation des Energieverbrauchs konnten gezielte Verbesserungen vorgenommen werden, um die Anwendung energieeffizienter und nachhaltiger zu gestalten.

Die folgenden Abschnitte beleuchten sowohl die bereits umgesetzten Maßnahmen als auch weitere mögliche Optimierungen.

Diagramm der Testinfrastruktur mit Laptop, Sonne und Uhr, die zu einem Automation-Server führen. Von dort aus gehen Verbindungen zu Workspace-Containern und einer Datenbank für die Messdatenspeicherung Diagramm der Testinfrastruktur mit Laptop, Sonne und Uhr, die zu einem Automation-Server führen. Von dort aus gehen Verbindungen zu Workspace-Containern und einer Datenbank für die Messdatenspeicherung
Abbildung 2: Green-Coding in unserer Projektinfrastruktur

Containerisierung

Von Beginn an wurden Container eingesetzt, um die Anwendung ressourcenschonend und flexibel bereitzustellen. Durch den Verzicht auf herkömmliche virtuelle Maschinen (VMs) konnten sowohl der Speicherverbrauch als auch die Rechenleistung optimiert werden. Im Projekt wurde dafür Docker genutzt, wodurch eine leichte Skalierbarkeit sowie eine effiziente Verwaltung der Anwendungsumgebung ermöglicht wurden.

Optimierung der Server

Zu Beginn des Projekts wurde festgestellt, dass die Server durchgehend in Betrieb waren – selbst in Zeiten, in denen sie nicht genutzt wurden. Dies führte zu einem unnötig hohen Energieverbrauch. Als Gegenmaßnahme wurden Skripte implementiert, über die die Server bei Nicht-Nutzung heruntergefahren und bei Bedarf wieder gestartet werden können.

Bei der Analyse des Energieverbrauchs wurde festgestellt, dass insbesondere der Startvorgang der Server besonders energieintensiv ist. Um dies zu optimieren, wurde erwogen, die Nutzungszeiten des Teams systematisch zu erfassen. Statt einzelne Server individuell herunter- und hochzufahren, hätte man sie zu festen Zeiten aktivieren können, um den Gesamtenergieverbrauch weiter zu senken. Diese Maßnahme wurde jedoch nicht mehr umgesetzt.

Verwendung von Open Source

Im gesamten Projekt wurde konsequent auf Open-Source-Technologien gesetzt.

Während des gesamten Projekts wurde konsequent auf Open-Source-Technologien gesetzt. Dies betraf nicht nur die Komponenten der Testinfrastruktur, sondern auch die vom Team verwendeten Werkzeuge zur Kommunikation und Dokumentation. Durch die Nutzung freier Software konnte nicht nur Transparenz gewährleistet, sondern auch langfristige Nachhaltigkeit gefördert werden.

Zudem wurde die eigens entwickelte Extension zur Automatisierung der Test unter einer Open-Source-Lizenz veröffentlicht, um anderen Entwickler*innen die Möglichkeit zu geben, darauf aufzubauen und sie weiterzuentwickeln. Dieser Ansatz trägt zur Stärkung der Open-Source-Community bei und unterstützt nachhaltige Softwareentwicklung.

Datenerhebung und Speicherung

Ein bewusster Umgang mit Daten war ein zentraler Aspekt des Projekts. Von Anfang an wurde darauf geachtet, nur relevante Informationen zu speichern und überflüssige Datensätze zu vermeiden. Um dies zu gewährleisten, wurden gezielt Teamdiskussionen geführt, um sicherzustellen, dass Daten nicht „um des Speicherns willen“ gesammelt wurden.

Zur Optimierung der Datenbankleistung wurden Indizes gezielt eingesetzt, um Abfragen effizienter zu gestalten und den Speicherverbrauch zu minimieren. Trotz dieser Maßnahmen wurde erkannt, dass die aktuelle Implementierung der Datenbankabfragen noch weiter verbessert werden könnte, da einige Prozesse in ihrer jetzigen Form nicht optimal auf Energieeffizienz ausgelegt sind. Eine weiterführende Optimierung in diesem Bereich wäre daher eine sinnvolle Maßnahme für zukünftige Entwicklungszyklen.

Erhebung der Energieeffizienz der Anwendung

Eine systematische Messung der Energieeffizienz wurde im bisherigen Entwicklungsprozess nicht durchgeführt. Dennoch wurde das Thema intensiv diskutiert, da eine regelmäßige Analyse dazu beigetragen hätte, frühzeitig Optimierungspotenziale zu identifizieren und gezielte Maßnahmen zur Reduzierung des Energieverbrauchs zu ergreifen.

Im Verlauf des Projekts wurden verschiedene Messwerkzeuge evaluiert, um herauszufinden, welche Methoden sich für eine effektive Energieverbrauchsdokumentation eignen. Diese Erkenntnisse könnten zukünftig dazu beitragen, eine kontinuierliche Überwachung der Energieeffizienz zu etablieren und die Nachhaltigkeit der Anwendung langfristig zu verbessern.

Nachhaltiges Handeln in der Informatik

Nachhaltiges Handeln in der Informatik bedeutet, ökologische, soziale und ökonomische Verantwortung aktiv in den Entwicklungsalltag zu integrieren. Es reicht nicht, punktuelle Maßnahmen umzusetzen – Nachhaltigkeit sollte sich durch den gesamten Entwicklungsprozess ziehen: von der Konzeption über die Umsetzung bis zum Betrieb und zur Weiterentwicklung.

Ein zentraler Aspekt dabei ist die Abstraktion von Hardware: Software sollte nicht unnötig stark an spezifische Systeme gebunden sein, sondern auf unterschiedlichen Geräten mit möglichst geringem Ressourcenbedarf lauffähig sein. Dadurch wird die Nutzung langlebiger und auch gebrauchter Hardware erleichtert – ein wichtiger Beitrag zur Reduktion von Elektroschrott und Emissionen.

Lose gekoppelte Architekturen fördern nicht nur Wartbarkeit und Wiederverwendbarkeit, sondern ermöglichen auch eine gezielte Optimierung einzelner Komponenten. Ein schlanker Technologie-Stack hilft dabei, Komplexität zu reduzieren und unnötige Abhängigkeiten zu vermeiden. Wer seine Werkzeuge beherrscht und sie klug wählt, kann effizienter entwickeln und bewusster mit Ressourcen umgehen.

Nachhaltigkeit lebt zudem von Transparenz: Der Ressourcenverbrauch von Software sollte sichtbar gemacht werden – etwa durch Monitoring oder gezielte Messungen im Entwicklungsprozess. Nur so lassen sich Verbrauchsmuster erkennen und Optimierungen gezielt vornehmen. Die Entwicklung selbst sollte ressourcensparsam gestaltet werden, durch effiziente Algorithmen, gezielte Datenverarbeitung und bewusste Designentscheidungen.

Gleichzeitig darf die Freude am Coden nicht zu kurz kommen: Mit Freude programmieren, im Austausch mit anderen, fördert nicht nur Motivation, sondern auch gemeinschaftliches Lernen, bessere Ergebnisse und nachhaltige Lösungen. Denn nachhaltiges Handeln ist nicht nur eine Frage der Technik – sondern auch der Haltung, der Kultur und des Miteinanders.

Literaturverzeichnis

Bashroush, R., Rteil, N., Kenny, R. and Wynne, A. (2022) 'Optimizing Server Refresh Cycles: The Case for Circular Economy With an Aging Moore’s Law', IEEE Transactions on Sustainable Computing, 7(1), pp. 189-200, 1 Jan.-March. doi: 10.1109/TSUSC.2020.3035234.

Bundesministerium für Umwelt, Naturschutz und nukleare Sicherheit (2024) Green Coding - Booklet zur Workshopreihe. Available at: https://www.bmuv.de/fileadmin/Daten_BMU/Download_PDF/Digitalisierung/ das_green_coding_booklet_bf.pdf (Accessed: 23 January 2025).

Köppl-Turyna, M., Briglauer, W., Koch, P., Wolf, M., Schwarzbauer, W., Gotsch, M. and Eberling, E. (2021) 'Digitalisierung und Emissionen'. ECO Austria - Institut für 11 Wirtschaftsforschung. Available at: https://ecoaustria.ac.at/wp-content/uploads/2021/05/Studie-Digitalisierung- Emissionen.pdf (Accessed: 24 January 2025).

Open Source Initiative (2025) 'Open Source Definition'. Available at: https://opensource.org/osd (Accessed: 23 January 2025).

Prakash, S., Antony, F., Köhler, A. and Liu, R. (2016) Ökologische und ökonomische Aspekte beim Vergleich von Arbeitsplatzcomputern für den Einsatz in Behörden unter Einbeziehung des Nutzerverhaltens. Umweltbundesamt. Available at: https://www.umweltbundesamt.de/sites/default/files/medien/377/publikationen/ endbericht_oko-apc_2016_09_27.pdf (Accessed: 1. February 2025).

Raymond, E.S. (2004) The Art of Unix Programming. 1st edn. Addison-Wesley Professional. ISBN: 0131429019.

Viduka, D. and Baić, A. (2015) 'Impact of Open Source software on the environmental protection', Computational Ecology and Software, 5, pp. 113–118.