Programmieren für die Zukunft: Green Coding als Revolution für die Technologiebranche
20. April 2023Was ist schlimmer für das Klima: abends eine Serie auf einem Streaming-Anbieter sehen oder mit dem Flugzeug fliegen? Die Antwort ist nicht so offensichtlich, wie man denkt. Kommerzielle Flüge schlagen bei den weltweiten CO2-Emissionen mit 2,4 Prozent Gesamtanteil zu Buche, landen damit aber nur auf dem zweiten Platz. Mit 2,5 Prozent bis 3,7 Prozent Gesamtanteil liegen Rechenzentren auf Platz eins. Und die brauchen Netflix und Co für ihren Service.
Um fair zu bleiben – auch Flugzeuge sind mittlerweile auf die Dienste von Hyperscalern angewiesen und schreiben einen Teil ihrer Emissionen auf die Rechnung der Rechenzentren. Aber grundsätzlich erfordert nahezu alles heute auf irgendeine Art und Weise ein Rechenzentrum – globaler Digitalisierung sei Dank. Und deren Stromverbrauch für Betrieb und Kühlung sind enorm hoch. Es ist also nur logisch, auch hier nachhaltiger zu werden – und das schon beim kleinsten Element: dem Code der Anwendungen, die auf den Rechenzentren laufen.
Hinter Green Coding steht die Philosophie, durch die Optimierung des Codes so effizient zu werden, dass er nachhaltig wird. Denn effizienter Code benötigt wenig Energie. Um Code „green“ zu machen, gibt es mehrere Stellschrauben:
- Größe: Ein „kleiner“ Code braucht weniger Platz im Deployment und, viel wichtiger, im ständigen Transfer zwischen Endpunkten.
- Geschwindigkeit: Wird ein Code schnell ausgeführt, ist der Zeitraum, über den Energie und Leistung gebraucht wird, kürzer. Auch das spart also Energie.
- Ressourcen-schonend: Codes lassen sich von Anfang an so schreiben, dass sie weniger Ressourcen bei der Ausführung brauchen.
Darüber hinaus können auch minimale Veränderungen im Code eine große Wirkung haben. Verringert man beispielsweise in einer App die Auflösung der Bilder, hat das nur einen sehr geringen Einfluss auf den Energieverbrauch der Geräte.
Geht man aber davon aus, dass Hunderttausende User jeden Tag diese App öffnen, summiert sich das Ganze zu einer echten Einsparung. Den Nutzern dürfte der Unterschied aufgrund der kleinen Bildschirme kaum auffallen.
Ein weiterer Ansatz in Sachen Geschwindigkeit lässt sich anhand von Content-Delivery-Network-Anbietern (CDN) zeigen. Normalerweise müssen Webapplikationen jeglicher Art in Rechenzentren gehostet werden. Diese sind lokal gebunden und gegebenenfalls sehr verteilt. Greift ein Nutzer auf eine Web-App zu, dann tut er dies auf dem ihm am nächsten gelegenen Rechenzentrum.
Für einen deutschen User kann das heißen, auf ein Zentrum in Spanien zuzugreifen – einfach, weil es in Deutschland keines gibt und die anderen noch weiter weg sind. CDN-Anbieter verwenden ein geografisch verteiltes Netzwerk von Proxy-Servern und bringen die Anwendung so effizienter und schneller zum User. Und Geschwindigkeit heißt, dass weniger Energie verbraucht wird. Auch hier mögen die Einsparungen des Einzelnen minimal erscheinen; aber in Anbetracht dessen, dass beispielsweise Netflix mit Open Connect ein CDN verwendet, macht auch hier die Summe am Ende den echten Unterschied.
Im Marathon zur nachhaltigen Software
Software-Entwickler arbeiten oft mit begrenztem Budget. Üblicherweise schreibt man den benötigten Code, schickt ihn durch das Quality Assurance Testing (QA) und wenn er funktioniert, rollt man ihn aus. Das bringt zwar nicht unbedingt die höchste Effizienz, aber den höchsten Gewinn. Eine solche Aufgabe so schnell wie möglich in einem vorgegebenen Zeitfenster abzuschließen, nennt man in der Branche einen Sprint.
Anders verhält es sich mit einem optimierten Green Code. Denn bevor der das QA erreicht, wird er mehrfach in einer Testumgebung ausgerollt, getestet, gemessen und verändert. Dabei muss man mit dem Code so lange spielen, bis man eine Version mit der höchstmöglichen und gleichzeitig sparsamsten Effizienz hat, die dann erst das Q&A und anschließend ausgerollt wird.
Man testet zum Beispiel die Leistung der Datenbanken, wenn man den Code verändert, was einen Hinweis auf seine Effizienz gibt. Oder man überprüft mithilfe von Application-Performance-Monitoring-Tools, wie schnell und effizient der Code ausgeführt wird. Es gibt mittlerweile Anwendungen, die solche Funktionen zur konstanten Optimierung in sich vereinen, beispielweise SolarWinds Observability.
Nur ist ein Sprint dann kein Sprint mehr, sondern ein kosten- und zeitintensiver Marathon – und die sind für Unternehmen meist weniger rentabel. Grundsätzlich gab es auch vor weitreichenden Monitoring- und Observability-Lösungen die Möglichkeit zur effizienten Code-Optimierung, gemacht hat es eben nur keiner bisher. In Anbetracht des enormen Anteils der Rechenzentren an den globalen CO2-Emissionen schlummert im Green Coding aber ein ungenutztes Potenzial für mehr Nachhaltigkeit. Zeit, es zu nutzen.
Sascha Giese wird bei Solarwinds als Head Geek bezeichnet.