Dieses Zitat sollte jeder Entwickler im Hinterkopf behalten: 'Jede Code-Zeile hat das Potenzial, den Energieverbrauch und damit die Emission zu senken.' – Jakob Deiner
Mit einem Special zum IT-Consulting fand am 02. Dezember 2021 das Virtual Job Event von get in IT statt. Im Rahmen des job I/O-Programms berichteten Expert:innen aus der IT-Branche von ihren Erfahrungen aus der Praxis und gaben Tipps für Deinen Jobeinstieg. Im Live-Chat beantworteten die Speaker:innen Deine Fragen.
Mit dabei war Jakob Deiner mit seiner Live-Session. Er erklärte, wie nachhaltig sein Arbeitgeber msg jetzt schon arbeitet und mit welchen Maßnahmen Du für eine grünere Architektur sorgst. Denn mit jeder Zeile Code kannst Du Energie sparen und Ressourcen schonen.
Du hast das Live Event verpasst? Kein Problem! Schau Dir den Deep Dive von Jakob hier einfach gemütlich an.
Hier siehst Du die Session der job I/O in voller Länge:
Der Klimawandel ist eine der größten Herausforderungen unserer Generation. Jede und jeder von uns kann darauf achten, im Alltag möglichst wenig Energie zu verbrauchen. Du kannst Dein IT-Talent aber auch dafür einsetzen, mit Green Coding wirklich etwas zu bewegen in Sachen Nachhaltigkeit. Denn jede Code-Zeile hat das Potenzial, den Energieverbrauch und damit die Emissionen zu senken. Wie das geht? Jakob erklärte Dir, wie Du grünen Code schreibst und Deine Architektur nachhaltiger gestaltest.
Speaker
Jakob Deiner – Lead IT Consultant
Jakob Deiner absolvierte seinen Master of Science in Informatik an der Uni Passau. Nach seinem Abschluss startete er bei seinem Arbeitgeber msg als Werkstudent und ist seit 2011 Lead IT Consultant.
Unternehmen
Green Coding, Sustainable Programming oder Green IT
Das sind alles verschiedene Namen, die aber dasselbe beschreiben: eine relativ junge Disziplin, die Software als Teil des Nachhaltigkeitsgedankens betrachtet.
In seinem Alltag sollte jeder darauf achten, möglichst nachhaltig zu leben, also bewusst mit Ressourcen umzugehen und vor allem Energie zu sparen – Du machst wahrscheinlich auch das Licht aus, wenn Du morgens zur Arbeit gehst oder achtest darauf, dass Deine Heizung die Wohnung nicht auf 25 Grad hoch heizt, wenn Du in den Urlaub fährst. Als Informatiker:in kannst Du aber noch mehr tun und Dein IT-Talent nutzen, um ganze Software-Systeme nachhaltiger, also energiesparender, zu gestalten.
Green Coding erfüllt zwar keine nicht-funktionale Anforderung (NFR – Non-functional requirement) wie Effizienz, Performance oder Sicherheit, aber es zahlt auf die Nachhaltigkeitsziele ein, die sich inzwischen sehr viele Unternehmen auf die Fahnen geschrieben haben.
Das Ziel, möglichst wenig Energie zu verbrauchen und damit Ressourcen zu schonen, kannst Du auf diesen Ebenen umsetzen: Architektur, Implementierung und Betriebsplattform.
3 Säulen des Green Coding:
Grünere Logik: Für diese sorgst Du, indem Du darauf achtest, nicht genutzten Code zu entfernen und weniger komplexe Dateiformate zu verwenden. Nutze z.B. Json als Alternative zu XML.
Grünere Methode: Oft kann es nachhaltiger sein, agil zu arbeiten. Wenn Du mit Deinem Team am Ende eines zweiwöchigen Sprints merkst, dass der eingebaute Code zu viel Energie verbraucht, könnt Ihr das noch vor dem Go-live fixen. Code zu recyceln, also wieder zu benutzen, ist übrigens auch nachhaltig.
Grünere Plattform: Diese lassen sich im Hinblick auf Ressourcen skalieren. Ist die Auslastung der Anwendung messbar, kannst Du regulierend eingreifen. Abseits von Spitzenzeiten, wenn weniger Kund:innen auf der Site oder im Shop sind, kannst Du auf den veränderten Energiebedarf reagieren und z.B. Docker Container runterfahren. Grüne Rechenzentren verwenden außerdem Strom aus regenerativen Quellen.
Wie kannst Du als Entwickler:in nachhaltig coden?
Zugegeben, das klingt etwas abstrakt und Du fragst Dich bestimmt, was genau Du als Entwickler:in tun kannst, um nachhaltiger zu arbeiten. Jakob hat sehr konkrete Tipps im Gepäck: Wenn Du es z.B. täglich mit Datenbanken zu tun hast, leg dir Indizes an. So kannst Du gezielter suchen und im Vergleich zu einem full table scan sparst Du viele CPU-Zyklen und Deine Anwendung läuft schneller. Energie sparen kannst Du auch, wenn Du Caches verwendest.
Round-Trips durch das Internet sind sehr energiehungrig. – Jakob Deiner
Sei Dir bewusst, dass jeder Request, den Du startest, durch viele Stationen (Router, Switches) läuft und jede dieser Stationen verbraucht Energie. Hast Du gewusst, dass manche Programmiersprachen nachhaltiger sind als andere? Für kritische Systembereiche, in denen komplexe Berechnungen stattfinden und die schnell sein müssen, solltest Du kompilierte, hardwarenahe Sprachen verwenden wie C++ oder Rust. Interpretierte Sprache wie Python oder PHP haben schon durch das Framework und die Laufzeitumgebung viel Overhead.
Vorteile und Nachteile von Green Coding
Nachhaltigkeit ist eine nicht-funktionale Anforderung. Wie verhält sich Sustainable Programming zu den NRFs? Green Coding ist im Einklang mit Effizienz, Skalierbarkeit, Performance und Kosteneffizienz. Denn wenn Du Software auf geringen Energieverbrauch optimierst, wird sie auch geringe Betriebskosten haben.
Es gibt aber auch einige Nachteile, die Du im Blick haben solltest. Hardwarenahe Sprachen wie C/C++ haben ein größeres Sicherheitsrisiko im Vergleich zu sicheren Sprachen wie Java. Um Buffer Overflows und Speicherlecks zu vermeiden, musst Du als Entwickler:in deshalb besonders auf die Sicherheit achten.
Die Wartbarkeit und Lesbarkeit könnte u.U. schlechter sein, weil hoch optimierter Code mit effizienten Algorithmen komplexer ist. – Jakob Deiner
Entwickelst Du nativ für eine Plattform, kannst Du dabei zwar sehr genau auf Energieeffizienz achten. Nachteil ist aber: Dein Code funktioniert nur hier. Plattformunabhängige Sprachen wie Java schreibst Du nur einmal und sie laufen überall. Du musst also abwägen, was effizienter ist: Write once and run anywhere oder eine passgenaue Lösung für eine Plattform.
Wie groß die Einsparungen durch Green Coding-Maßnahmen sein können, zeigt ein Beispiel, das Jakob aus dem B2B-Bereich mitgebracht hat. Wenn Du als Entwickler:in durch einen effizienteren Algorithmus oder ein anderes Datenformat bei einer transaktionsstarken Applikation, z.B. für den Aktienhandel, nur 1 CPU-Sekunde einsparen kannst, sind das je nach Prozessor 10 Wattsekunden pro Transaktion. Bei 1,5 Millionen Anwendungen macht das 19 Megawattstunden und entspricht dem Jahresstromverbrauch von 4 Haushalten. Noch weiter gedacht: Optimieren 100 Devs in der Anwendung 5 Transaktionen lässt sich der Stromverbrauch von 30.000 2-Personen-Haushalten einsparen.
Green Code: Der Code der Zukunft?
Obwohl bis jetzt die wenigsten Kund:innen Green Coding fordern, wird es in Zukunft eine sehr wichtige Rolle spielen. Microsoft hat Green Coding bereits als NFR definiert. Und für Banken gibt es schon Richtlinien, die sie dazu anhalten, auf Nachhaltigkeit zu achten. In Zukunft könnte es auch Zertifizierungen geben, die Deine Software als nachhaltig kennzeichnet.
- 02:00 – Was ist Green Coding?
- 03:45 – Nachhaltige Architektur
- 05:15 – Die 3 Säulen des Green Coding
- 07:30 – Wie schreibst Du grüneren Quellcode?
- 11:15 – Beispiel aus der Praxis
- 14:05 – Green Coding bei msg
- 15:40 – Wer beschäftigt sich noch mit Sustainable Programming?
- 19:15 – Fragen aus dem Live-Chat