Categories: Green-ITInnovation

Nachhaltige Software-Architektur

Nachhaltigkeit ist überall gefragt und auch Software-Architekturen haben Auswirkungen auf die globale Erwärmung und den Klimawandel. Die Frage, die sich in der heutigen Zeit stellt, lautet: Wie kann man bessere und nachhaltigere Lösungen konzipieren? Es gibt dabei fünf Bereiche, die bei der Entwicklung von Anwendungen im Hinblick auf Nachhaltigkeit zu berücksichtigen sind. Dabei geht es um die Daten, die Applikation, die Plattform, den Code und den Betrieb.

Die fünf Segmente mit konkreten Handlungsempfehlungen im Überblick:

1. Datendesign, -nutzung und -speicherung

In einem ersten Schritt sollten Unternehmen die Datenspeicherung und -nutzung auf ein absolutes Minimum reduzieren. Hilfreich ist hierbei die Einführung von Richtlinien für die Datenklassifizierung, etwa mit der Festlegung, welche Daten wie lange gespeichert werden. Unnötige Daten sollten immer unter Einhaltung regulatorischer Bestimmungen gelöscht werden. Auch eine Überprovisionierung an Speicherplatz und Datenbewegungen über Netzwerkgrenzen hinweg sind möglichst zu vermeiden. Nicht zuletzt ist auch die Nutzung von Datenzugriffstechnologien sinnvoll, die einen standortbezogenen Datenabruf unterstützen.

2. Anwendungsdesign

Hinsichtlich des Anwendungsdesigns muss klar sein, dass ein „Always on“-Ansatz unnötig viel Energie verbraucht und meistens überflüssig ist. Ressourcen sollten auch für eine parallele und asynchrone Verarbeitung nutzbar sein. So können nicht zeitkritische Aufgaben aufgeteilt und dann asynchron bearbeitet werden, etwa in einer Zeit, in der umweltfreundlicher Strom zur Verfügung steht. Hilfreich ist zudem ein Application-Monitoring, um Runtime-Veränderungen und -Auswirkungen auf die Nachhaltigkeit zu verfolgen. Eventuell kann auch die Nutzung nachhaltig betriebener Managed Services in Betracht gezogen werden.

3. Plattformbereitstellung, -nutzung und -skalierung

Eine hohe Komplexität weist das Thema Plattformbereitstellung, -nutzung und -skalierung auf, da es hier auch um spezifische Architektur-Entscheidungen geht. Bei den Technologien, die auf die Nutzung und Skalierung abzielen, kommen etwa Knative und Serverless ins Spiel. Hinsichtlich Kubernetes-Umgebungen ist festzuhalten, dass sie häufig nach dem Prinzip „ein Cluster pro App“ konzipiert werden, manchmal aber auch nach dem Muster „mehrere Cluster (Staging/Prod/Dev) pro App“. Die Auslastung in diesen Clustern ist gering. Das heißt, selbst wenn ein Pod auf null skaliert, haben Unternehmen immer noch einen Overhead an Kubernetes inklusive CO2-Fußabdruck der Hardware. Zwar ist der Stromverbrauch des Workloads geringer, die Verbesserung der Klimabilanz ist jedoch marginal. Unternehmen müssen deshalb auf jeden Fall ihre Gesamtkonfiguration betrachten, bevor sie zusätzliche Technologien für eine Anwendung nutzen. Idealerweise kommt dabei für das Entwickeln und Testen einer Applikation eine minimale, funktionsfähige und repräsentative Umgebung zum Einsatz.

4. Code-Effizienz

„Der effizienteste Code ist kein Code und der beste Zeitpunkt, um unnötige Workloads zu erkennen, ist so früh wie möglich im Designprozess“, erklärt die Green Software Foundation. Unternehmen, die Ziele und Anforderungen im Vorfeld definieren, können bereits viel erreichen. Eine Änderung der Aufbewahrungszeit von Protokolldateien oder die Anpassung der Service Level Agreements (SLAs) an den tatsächlichen Bedarf sind dafür nur zwei Beispiele.

5. Betrieb

Beim Betrieb bietet die hohe Rechendichte von Managed Cloud Services entscheidende Vorteile. Solche Services teilen die Ressourcen unter Tausenden oder sogar Millionen von Nutzern, wodurch eine extrem hohe Auslastung erreicht wird und der Aufwand für SRE (Site Reliability Engineering)-Teams verringert wird, die sich um den Betrieb von Infrastruktur und Anwendungen kümmern. Darüber hinaus gibt es immer mehr Open-Source-Projekte, die Unternehmen beim Erreichen ihrer Nachhaltigkeitsziele unterstützen. Dazu zählen etwa das Kubernetes-Add-on Kube-green, das Ressourcen bei Nichtnutzung automatisch herunterfährt, oder das Tool Cloud Carbon Footprint, das den Energieverbrauch und die CO2-Emissionen bei der Public-Cloud-Nutzung schätzt. Zu nennen ist auch das Projekt Kepler (Kubernetes Efficient Power Level Exporter), das eBPF (extended Berkeley Packet Filter) verwendet, um energiebezogene Systemstatistiken zu ermitteln und als Prometheus-Metriken zu exportieren.

Die empfohlenen Maßnahmen in den fünf unterschiedlichen Bereichen zielen primär auf die Anwendung in ereignisgesteuerten oder Microservices-Architekturen ab. Eines sollte dabei klar sein: Jede Maßnahme kann nur dann den gewünschten Erfolg bringen, wenn ein Unternehmen vorab die Ziele definiert und die Zielerreichung mittels sinnvoller Messmetriken dann auch überprüft.

ZDNet.de Redaktion

Recent Posts

Microsoft verschiebt erneut Copilot Recall

Die Entwickler arbeiten noch an weiteren „Verfeinerungen“. Windows Insider erhalten nun wohl eine erste Vorschau…

17 Stunden ago

GenKI im Job: Mitarbeitende schaffen Tatsachen

Laut Bitkom-Umfrage werden in jedem dritten Unternehmen in Deutschland private KI-Zugänge genutzt. Tendenz steigend.

19 Stunden ago

97 Prozent der Großunternehmen melden Cyber-Vorfälle

2023 erlitten neun von zehn Unternehmen in der DACH-Region Umsatzverluste und Kurseinbrüche in Folge von…

20 Stunden ago

„Pacific Rim“-Report: riesiges, gegnerisches Angriffs-Ökosystem

Der Report „Pacific Rim“ von Sophos beschreibt Katz-und-Maus-Spiel aus Angriffs- und Verteidigungsoperationen mit staatlich unterstützten…

23 Stunden ago

DeepL setzt erstmals auf NVIDIA DGX SuperPOD mit DGX GB200-Systemen

NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.

23 Stunden ago

Latrodectus: Gefährlicher Nachfolger von IcedID

Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.

24 Stunden ago