Sustainable Programming – Softwarecode ohne Stromfresser
Wie man Anwendungssysteme dazu bringt, den Energieverbrauch einer ganzen Stadt zu sparen.
- Detlef Thoms
Green IT ist ein alter Hut – könnte man meinen. Wikipedia zum Beispiel datiert die Anfänge auf 1992. Damals hatte die US-Umweltbehörde EPA gerade den Energy Star herausgebracht, ein Gütesiegel, um stromsparende Endgeräte zu kennzeichnen. Heute, gut 25 Jahre später, beherrscht die grüne Cloud die Diskussion. Dabei lautet die Kernfrage, wie sich Rechen- und Speicherleistungen umweltschonend bereitstellen lassen.
Nach wie vor konzentriert sich Green IT auf den Betrieb und die Nutzung von Applikationen. Welche Weichen in ihrer Entwicklung gestellt werden, gerät eher weniger in den Fokus. Software-Ingenieure bewegen sich da oftmals wie in einer Art Elfenbeinturm. Dabei lässt sich mit geringem Aufwand eine Menge erreichen. Häufig sind es recht überschaubare Weichenstellungen, die dann im Wirkbetrieb zu erheblichen Verbrauchsunterschieden führen, die etwa bei größeren B2B-Anwendungen dem Jahresverbrauch mittelgroßer Städte entsprechen können.
Was beim CPU-Verbrauch drin ist
Referenz ist eine typische Rechenzentrumsumgebung für transaktionsstarke B2B-Applikationen. Wird in einer solchen Umgebung mit einer erfolgreich implementierten Sustainable-Programming-Maßnahme eine CPU-Sekunde eingespart, entspricht das einer Energiereduktion von 10 Wattsekunden pro Transaktion. Wird eine solche Transaktion von 1,5 Millionen Anwendern an 230 Werktagen 20-mal täglich durchgeführt, summiert sich die Energieersparnis auf 19 Megawattstunden. Wenn nun tausend Entwickler fünf Transaktionen auf diese Weise optimieren, kommt man gemäß Stromspiegel der Bundesregierung auf den Jahresverbrauch von über 30.000 Zwei-Personen-Haushalten.
Gleichwohl ist Sustainable Programming noch eine junge Disziplin, so man denn überhaupt von einer Disziplin sprechen kann. Denn wie sehr man damit Neuland betritt, zeigt eine simple Internetabfrage. Ganz gleich welche Suchmaschine man hierzu einsetzt, es ergibt sich kaum ein Treffer, der darauf hindeuten würde, dass sich energieeffiziente Softwareentwicklung als Best Practice etabliert hätte.
Um trotzdem kurzfristig etwas zu erreichen, ist zunächst einmal Pragmatismus gefragt. Bei der SAP wurde daher vor etwa zehn Jahren damit begonnen, spezifische Handlungsempfehlungen für das Engineering zu entwickeln, die zu mehr Energieeffizienz führen. Das Unternehmen baut damit auf einem Programm zur effizienten Nutzung von Hardware auf, welches das interne Qualitätsmanagement seit den Neunzigerjahren betreibt. Dessen Kernziel war und ist es, die Leistungsfähigkeit der Systeme bei den Antwortzeiten und beim Datendurchsatz zu optimieren.
Implizit führen die Maßnahmen des Programms fast immer auch zu einer höheren Energieeffizienz. Vor dem Hintergrund stellte der Stromverbrauch zunächst keine explizite Zielgröße dar. Vor etwa zehn Jahren hat sich das geändert. Seither wurde der Blickwinkel des Programms erweitert und den Faktoren Performance und Skalierbarkeit die Energieeffizienz als gleichrangige Kernanforderung an die Seite gestellt. Man hatte nämlich festgestellt, dass es spezifische Anwendungsszenarien gibt, in denen sich die drei Faktoren nur dann wunschgemäß entwickeln, wenn man ganz bewusst auch den späteren Stromverbrauch mit auf den Radar nimmt.
Aus diesem Wissen hat die SAP Handlungsempfehlungen für die Entwicklung abgeleitet. Diese ersten pragmatischen Schritte erheben keinerlei Anspruch darauf, einen umfassenden Ansatz dafür zu liefern, wie sich energieeffiziente Softwareentwicklung in jedweder Organisation verwirklichen lässt. Vielmehr dienen sie als Beispiele, um im Folgenden die Denk- und Handlungsprinzipien zu erläutern, die dem Sustainable Programming zugrunde liegen.