Ökologisch Programmieren?

Als Programmierer sitzt man vor dem Bildschirm und bearbeitet seine Tastatur ein wenig – was hat das schon mit den Problemen der Menschheit zu tun? Zwar gibt es da den Song mit „.. will nur noch schnell die Welt retten ..“ aber spielt das in der gleichen Liga wie der sorgsame Umgang mit Pflanzenschutzmitteln, mit …, mit dem C02 Verbrauch beim Fliegen?

Ja, tut es!

Natürlich weniger mit den angesprochenen Emails, aber als Programmierer kann man viel bewegen. So geht am Wochenende und nach Ladenschluss die Post ab im eCommerce. Um diese vielen Anfragen bewältigen zu können, müssen wir Computer vorhalten. Die gebaut werden müssen und – wenn sie dann mal da sind, Strom und Aufmerksamkeit brauchen. All dies kostet viel Energie. So schreibt auch die aktuelle „Schrot und Korn“ darüber, und beklagt die gigantischen Ressourcen, die wir „für das Internet“ verbrauchen. Eine fundiertere Diskussion des Themas findet sich auch gerade in der aktuellen c’t.

Nicht ganz zu Unrecht – aber natürlich sind die Zusammenhänge komplizierter. Wieviel Bäume haben wir schon gerettet, weil Email die Kataloge abgelöst hat? Oder (Flug)Benzin gespart, weil wir uns per Video getroffen haben? Oder eben ein „Sammeltransport“, der Abokisten an viele Kunden liefert, die dann nicht selber in den Supermarkt fahren? Trotzdem werden wir uns diesem Argument stellen müssen.

Zurück also zur Energie, die wir beim der Bereitstellung unserer Dienste verbrauchen. Man könnte das o.g. Problem am Sonntag auch mit kurzzeitig gemieteter Rechenkapazität lösen. Das ist dann aber leider wie mit dem Straßenverkehr: Mehr Verkehrsfläche zieht auch mehr Verkehr an.

Alternativ versuchen wir Programmierer mehr Zeit in die Planung der Architektur und der Algorithmen zu stecken. Insbesondere wird auch viel überwacht, d.h. gemessen und aufgezeichnet und immer wieder ausgewertet. Dabei geht es aber nun nicht mehr um die reine Laufzeit eines Prozesses (die kann man mit vielen gleichzeitig verwendeten „Prozessoren“ verringern), sondern auch um den Stromverbrauch und die Ausnutzung des vorhandenen Computers. Es gibt viele Techniken, von der Optimierung einzelner Algorithmen, über Zwischenspeicherung (Caching) oder der gemeinsamen Nutzung von Ressourcen (die teilen sich alle Anwender die Infrastruktur).

Prozesse, wo ein Mensch vor dem PC wartet, sollten schneller gehen. Anderes machen wir halt langsamer. Leider kostet uns auch diese Denkübung etwas mehr Zeit, bis wir ein neues Feature abliefern können.
Zum Glück helfen uns hier der Kostendruck (zunehmend wird auch die Rechenkapazität, die wir mieten, bepreist in sog. CPU-Stunden), aber auch die Werkzeuge zum Messen des Verbrauches werden immer besser, die Handies haben uns das vorgemacht. Moderne Computer-Komponenten optimieren ständig ihren Stromverbrauch, so das die Wattzahl am Gehäuse wenig aussagt.

Zwar nutzen wir für eigene Computer und insbesondere auch für die gemieteten Computer und Rechenleistung schon lange CO2 neutrale Energie (95% hetzner.de, Google in Europa, unsere Büros), und so spielt dies für den CO2 Footprint zwar keine direkte Rolle. Wohl aber steht diese Energie nicht mehr für „die anderen“ zur Verfügung und ist eben deshalb doch relevent.

Um nicht wie im Rechenzentrum nur heiße Luft zu produzieren, haben wir uns eine neue Kennzahl ausgedacht, die unsere Fortschritte auf dem Feld nachvollziehbar machen soll: Wattstunden pro Internet-Bestellung. Diese Zahl wird nicht absolut richtig sein, wegen der Komplexität, aber auch weil wir schon sehr effizient sind bei der Energie-Ausnutzung. Aber die Zahl lässt sich automatisch berechnen und wir können uns an der Tendenz messen lassen.

Formel

Aller paar Sekunden berechnen wir den den mittleren Stromverbrauch jedes Computers. Dies ist ein Wert, der zwischen dem Leerlauf-Verbrauch und dem Maximalwert nach Spezifikation („TDP“) befindet und der anhand der durchschnittlichen Auslastung in dem Zeitfenster berechnet wird („load“). Hinzu kommt noch ein Faktor (=2) , der die anderen Komponenten eines Systems berücksichtigen soll.
Dieser Verbrauch wird aufsummiert und kann der erbrachten Leistung, also z.B. die Anzahl der abgewickelten Bestellungen, gegenüber gestellt werden.

Das Alter des Computers (und damit indirekt die Herstellungskosten) haben wir außen vor gelassen – man kann argumentieren, dass die lange Nutzung von Geräten gut ist, hinsichtlich des Ressourcenverbrauchs bei der Herstellung (Material und Energie). Wir mieten Rechenkapazität bei Hetzner.de und entscheiden uns stets für ältere Modelle. Da man aber bei neueren Modellen weniger Computer braucht, fließt diese Evolution indirekt -und verzögert- in die Rechnung ein.

Bei der Nutzung von externen IT-Diensten haben wir 10% der Kosten in kWh nach deutschen Preisen umgerechnet (2020: 31.47ct) und hinzugerechnet.

Im Durchschnitt: 0,3 Wh/Bestellung

Dies ist ein erster Wert – wir haben die Infrastruktur zur Messung geschaffen und haben eine erste Orientierung. Wie jede Kennzahl wird dies aber nur einen Teil unseres Handelns bestimmen. Das Bestellen in den Shops muss trotz der Effizienz Spass machen – sonst kauft keiner und wir könnten beim CO2 sparen an dieser Stelle nicht helfen!

Welcher Browser?

Aus verschiedenen Gründen brauchen wir Informationen über den Browser eines Besuchers. Nicht nur, um Shop-Inhalte für das jeweilige Endgerät optimiert auszuliefern, sondern auch, um unseren Aufwand für die Tests neuer Funktionen zu bewerten: Wir testen immer die Top-5 Browser/Betriebssystem-Kombinationen. Dazu klassifizieren wir die Angaben der Browser (den sog. „User-Agent“).

Im Admin-Bereich gibt es übrigens diese Info auch für jeden einzusehen.

Aktuell vorn: Android vor Windows. Im Browser-Krieg führt klar Googles Chrome – dies wohlgemerkt basierend auf Daten unserer europäischen Kundschaft aus ca.  120.000 Besuchen pro Woche.

Diese Statistik verwendet übrigens die Versionen der Browser und Betriebssysteme – dadurch ist sie immer aktuell.

Welche Browser haben wohl im obigen Bild (von StatCounter) die Nase vorn?

Statistik 2016

Hier ein paar Kennzahlen von 2016. Diese Zahlen helfen, unsere Dienste zu überwachen und auch die Qualität einzuschätzen.

Bei 3.47 Mio Kundensitzungen gab es 1.47 Mio Bestelländerungen und 0.6 Mio Neubestellungen – und auch 0.28 Mio Stornos.

Es wurden etwa 10 Mio Emails zugestellt, bei einer sehr hohen Zustellrate.

Die Anzahl eingehender Problemberichte (wir zählen *jede* Mail von euch pro Endkunde) ist absolut in 2016 gestiegen, im Wesentlichen wegen einem langsamen System im März und Problemen jeweils an einem Wochenende im Oktober („t-online“) und November. Dabei lag zwar das ursprüngliche Problem nie bei uns, aber leider waren unsere Systeme noch nicht „elastisch“ genug, um das abzufedern.
Anteilig zu den Kundensitzungen ist die Zahl der Problemberichte aber gesunken (von 0.06‰ auf ~0.04‰, mit max 0.5 ‰ Anfang November)

Insgesamt ist das Wachstum bei allen Shops schwächer als in den Vorjahren verlaufen, bei leicht steigenden Warenkorbgrößen.

Tipp: Statistiken findet ihr im Admin-Bereich, unter dem Haupt-Punkt „Statistiken“ und einige vergleichende Werte auch im Bereich „Aktueller Status“.