Immer mehr Firmen überprüfen die ökologischen Folgen ihres Tuns – an allen Stellen ihrer Organisation sowie innerhalb der Lieferkette. Eine wichtige Rolle spielt dabei die IT. Der Kohlenstoff-Fußabdruck aller global genutzten Geräte, des Internets und der sie unterstützenden Systeme ist für etwa 3,7 Prozent der weltweiten Treibhausgasemissionen verantwortlich. Ebenso viel verursacht die Luftfahrtindustrie weltweit. So der Lean-ICT-Report, den der französische Think Tank „The Shift Project“ 2019 veröffentlicht hat.
Geht es um Nachhaltigkeit in der IT, wird aber Software-Entwicklung bislang außer Acht gelassen. Dabei ist sie dafür verantwortlich, wie die Hardware eingesetzt – und wie effizient sie genutzt wird. Je mehr Hardware leisten muss, umso mehr Energie verbraucht sie und der CO2-Ausstoß steigt. Das gilt für Computer am heimischen Schreibtisch und am Arbeitsplatz ebenso wie für die Geräte, welche Datenpakete durchs Netzwerk schicken.
Jeder Software-Code hat also einen ökologischen Fußabdruck. Doch das Potenzial von Green Coding – also auf Nachhaltigkeit angelegtes Programmieren – wird bisher kaum genutzt.
Toter Code verbraucht unnötig Ressourcen
Dabei machen die Entwickler häufig schon vieles richtig, sagt Torsten Stiller, Developer Lead Azure Business Group bei Microsoft und Experte für Softwareentwicklung: „Viele achten zum Beispiel auf Effizienz, um Kosten zu sparen. Oder sie schreiben eleganten Code, um innovative Technologien einsetzen zu können.“
Doch will man Nachhaltigkeit vorantreiben, funktioniert das nur, wenn man das bewusst tut und nicht als Seiteneffekt, erläutert Stiller: „Es geht darum, sich stets auf das konkrete Ziel der Programmierung zu konzentrieren und grundsätzlich zu überlegen, wie sich dieses mit dem geringsten Ressourcenverbrauch erreichen lässt.“ So sollten sich Entwickler schon bei der Planung und beim Schreiben des Codes Gedanken über die ökologischen Auswirkungen machen.
Die Punkte, an denen man ansetzen kann, lassen sich fünf Bereichen zuordnen.
(1) Unnötige Berechnungen vermeiden
Mithilfe von Code-Coverage-Messungen lässt sich schon frühzeitig feststellen, wie viel Code wirklich ausgeführt wird. Unterschreitet dies einen bestimmte Prozentsatz, sollte der Entwickler noch einmal neu ansetzen. „Sonst produziert man toten Code“, so Stiller. „Und toter Code belegt zum Beispiel unnötig Speicher und erhöht mitunter die Komplexität.“
(2) Komplexität verringern
Grundsätzlich sollte man darauf achten, Code „möglichst sauber zu schreiben“, wie Stiller betont. Dadurch hätten anderen Entwickler die Möglichkeit, den Code ebenfalls zu nutzen oder ihn leichter umzubauen. Das verhindert, dass Code neu geschrieben werden muss, was wiederum Ressourcen verbraucht.
(3) Anwendungen modular aufbauen
Bei dem Konzept der Microservices lassen sich zum Beispiel Module oder Services unabhängig voneinander hoch- und runterskalieren. Werden Anwendungsteile zeitweise wenig intensiv genutzt, können sie unabhängig von anderen Teilen die Hardware freigeben, die sie zuvor genutzt hatten. Die Last wird dann auf weniger Compute-Einheiten verteilt. Services lassen sich also automatisch herunter- und bei Bedarf wieder hochfahren. Das fördert einen effizienteren Betrieb der Anwendung. Dagegen muss eine monolithisch aufgebaute Software komplett hochgefahren werden – inklusive von Services, die gar nicht genutzt werden.
(4) Zusammenarbeit von Entwicklung und Betrieb optimieren
Ein weiterer Bereich, der beim Green Coding eine wichtige Rolle spielt, sind die Methoden, wie Software geplant und kollaborativ erstellt wird. Ganz wichtig dabei ist DevOps – also die optimierte Zusammenarbeit von Entwicklung und IT-Betrieb. Das stellt sicher, dass die kommenden Anwendungen auch wirklich für den anvisierten Zweck passen. „Grundsätzlich sollte man so agil wie möglich auf Anforderungen reagieren können, die sich ständig ändern. Um nicht etwas zu entwickeln, was am Ende des Tages wieder toten Code und unnötige Aufwände generiert“, sagt Stiller.
(5) Open Source nutzen
Außerdem hält er es für wichtig, beim Thema Nachhaltigkeit auch auf Open Source zu setzen. Quelloffene Software kann von anderen genutzt und weiterentwickelt werden. So lässt sich verhindern, dass das Rad jedes Mal neu erfunden beziehungsweise eigentlich vorhandener Code wieder neu geschrieben werden muss. Entwickler sollten dabei jedoch darauf achten, Redundanzen zu vermeiden, so Stiller. Will heißen: Der verwendete Open-Source-Code kann Abschnitte enthalten, die für die individuelle Anwendung nicht notwendig sind, bei der Ausführung aber Ressourcen verbrauchen.
Auch die Wahl der Plattform spielt eine Rolle
Wo wird die Software schließlich bereitgestellt? Die Cloud bietet hier aus Energieeffizienz-Perspektive klare Vorteile. Die großen Cloud-Provider können ihre Infrastruktur in der Regel unter günstigeren Bedingungen betreiben als Anwenderunternehmen. So setzen sie etwa auf Technologien, die weniger Energie verbrauchen. Und Cloud-Provider wie zum Beispiel Microsoft achten darauf, die eigenen Rechenzentren mit erneuerbaren Energien zu betreiben.
IT als Schlüssel für Nachhaltigkeit
Lernen Sie Beispiele kennen für erfolgreiche Digitalisierungs- und Nachhaltigkeitsinitiativen bei Microsoft, Kunden und Partnern.
Teilen sich zudem viele Anwender die gleichen Rechen-Ressourcen in einer Public Cloud, ist der Betrieb von IT effizienter. Das ist vergleichbar mit dem Car Sharing, das ökologisch sinnvoller ist ein eigenes Auto zu besitzen, das 80 Prozent der Zeit auf dem Parkplatz steht.
Bewusstsein für Green Code schärfen
All diese Methoden sind bekannt und werden auch angewandt. Aber es gibt noch reichlich Potential, glaubt Stiller. Daher steht für ihn an erster Stelle, ein entsprechendes Bewusstsein zu schaffen. „Im Privatleben achtet man mittlerweile oft auf Nachhaltigkeit“, so Stiller. „Mein Frau fährt zum Beispiel ein E-Auto, wir kaufen regionale und saisonale Lebensmittel und vermeiden Plastiktüten. Und genauso geht es auch in der Softwareentwicklung darum, eine entsprechende Denke zu verinnerlichen.“
Um das Thema weiter voranzubringen, hat Microsoft mit weiteren IT-Unternehmen wie Accenture, GitHub und ThoughtWorks sowie der Linux Foundation die Initiative „The Green Software Foundation“ ins Leben gerufen. Ziel ist es, ein Ökosystem für die Entwicklung grüner Software aufzubauen, das Organisationen verbindet sowie Standards, Werkzeuge und Best Practices liefert. Damit könnte dann auch Green Coding so selbstverständlich werden wie der Verzicht von Plastiktüten im Supermarkt.
Eine weitere Lösung von Microsoft ist das Emissions Impact Dashboard. Nutzen Sie Dienste aus der Microsoft-Cloud, behalten Sie mit dem Dashboard die CO2-Emissionen ihrer Dienste im Blick.
Alle Artikel aus Nachhaltigkeit
Digitalisieren Sie mit Blick auf die Zukunft Ihres Unternehmens. Legen Sie heute den Grundstein für das Business von morgen.