Ressourcenbewusster Umgang in der IT
Kurzfristige und im kleinen Bereich umsetzbare Maßnahmen
Zuerst zeige ich Ideen auf, die ohne große Vorbereitungen, finanziellen Aufwand und teilweise auch vom Team oder einzelnen Teammitgliedern umgesetzt werden können.
Speicher- und/oder Rechenleistung sparender Code
Das hört sich auf den ersten Blick nach einer Selbstverständlichkeit an, ist es aber in Wirklichkeit nicht. Ich habe es in meinem Berufsleben oft genug erlebt, dass effizienter Einsatz von Speicher und Rechenleistung zumindest in Teilbereichen keine wichtige Nicht-Funktionale-Anforderung war. Oft gibt es nur die Anforderung, dass die Benutzeroberfläche schnell reagieren muss, Back-End-Tasks werden aber oft nicht in Hinblick auf Effizienz programmiert, wenn ihre Durchlaufzeit keine Wichtigkeit hat. Man sollte aber jetzt auch nicht in einen “Optimierungswahn” verfallen. Lesbarer und leicht verständlicher Code ist in den meisten Fällen besser als hoch optimierter Code, der z.B. exzessiv Objekte wiederverwendet, um Aufwand durch Initialisierungen und Garbage Collection zu reduzieren. Es besteht die Gefahr, dass kleine Ressourceneinsparungen hier durch erhöhten Wartungsaufwand aufgefressen werden.
Modularer Code
Per se spart modulare Programmierung jetzt keine Ressourcen, sie ermöglicht es aber erst, exakt an die Anforderungen skalierbare Software zu erstellen.
Wahl effizienter Programmiersprachen
Programmiersprachen haben stark unterschiedliche Stärken und Schwächen. Manche Aufgaben können ausgezeichnet von leichtgewichtigen Skriptsprachen erledigt werden. Schwergewichtige Allzweck-Sprachen mit großem Funktions- und Leistungsumfang zu verwenden bedeutet, öfters auch mal mit Kanonen auf Spatzen zu schießen. Sicherlich haben diese Sprachen ihre Berechtigung, der Einsatz sollte aber bewusst erfolgen und nicht als einzigen Grund haben, dass “es das eh auch kann”.
Wahl der passenden IDE
Hier gibt es 2 Dinge zu beachten. Erstens gibt es IDEs, die initial schon deutlich mehr Ressourcen verbrauchen als leichtgewichtige Alternativen. Hier sollte man nicht einfach die IDE wählen, die die meisten Funktionen hat, sondern die, die die benötigten bietet. Zweitens kann man mittlerweile quasi alle IDEs hochgradig erweitern und Zusatzmodule installieren. Hier gibt es die Gefahr, dass man nicht genau überlegt, was man braucht, sondern einfach aus Bequemlichkeit viel zu viel installiert und die IDE unnötig aufbläht.
Richtiger Einsatz von KI
KI wird mittlerweile nicht nur als Hilfe bei der Programmierung, sondern auch immer mehr in der Software selbst eingesetzt. Klarerweise benötigt dieser Einsatz Ressourcen, er wird aber in vielen Fällen sinnvoll sein. Oft gibt es hier aber noch sehr viel Optimierungspotential. Mächtige LLMs liefern mittlerweile in vielen Szenarien erstaunlich gute Ergebnisse, brauchen aber sehr viel Energie (und verursachen dann auch hohe Kosten). Viele Tasks können aber auch von gut eingestellten, speziellen Modellen ähnlich gut, aber mit viel weniger Energieverbrauch und Kosten erledigt werden.
Maßnahmen, die typischerweise aufwendiger in der Umsetzung sind und über die Teamebene hinausgehen
Die folgenden Maßnahmen müssen üblicherweise firmenweit getroffen werden, benötigen höheren finanziellen Einsatz und können oft nur langfristig umgesetzt werden.
Nutzung von Software-Virtualisierung
Software-Virtualisierung kann helfen, die Software je nach Auslastung nach unten oder oben zu skalieren und damit nur so viele Ressourcen wie wirklich aktuell gebraucht werden.
Auch können so Test- und Staging-Systeme einfach nach Bedarf hoch- und nieder gefahren.
Modulare Software, die auf Services aufbaut, kann hier noch gezielter benötigten Teilen mehr Ressourcen zuweisen, ohne automatisch das ganze System hochskalieren zu müssen.
Nutzung von Hardware-Virtualisierung
Hardware-Virtualisierung hat den Vorteil, dass aus einem gemeinsamen Pool an Speicher und Rechenleistung beides nach Bedarf den laufenden Systemen zugeteilt werden kann. Ohne diese Virtualisierung müsste jedem System von vornherein so viele Ressourcen zugeteilt werden, wie es maximal benötigen darf – was in Summe deutlich mehr sein kann. Besonders sinnvoll ist dies, wenn man schon a priori weiß, dass das System zu unterschiedlichen Zeiten hohe Auslastungen haben wird.
Natürlich wird durch diese Virtualisierung Overhead erzeugt, daher muss dies mit dem Einsparungspotential abgeglichen werden. Sicherheitstechnisch muss man zusätzlich bedenken, dass physische Daten von mehreren Systemen auf einer Hardware landen, was eventuell nicht gewünscht ist. Sauber konfigurierte Systeme können diese Risiken aber softwaretechnisch gut mitigieren, bei extrem sensiblen Daten mag dies aber nicht reichen.
Dann stellt sich auch die Frage, ob diese Virtualisierung intern abgewickelt, von einem Rechenzentrum übernommen oder überhaupt von einem Cloud-Anbieter abgewickelt werden soll.
Das größte Ressourcen-Einsparungspotential gibt es sicherlich in der Cloud. In der Cloud können Einsparungsmaßnahmen so weit gehen, dass Rechenleistung zeitlich an unterschiedlichen Orten generiert wird, wo gerade Überschuss an Energie herrscht. Nachteil ist aber, dass man kaum Einfluss darauf hat, wie der Cloud-Anbieter dies wirklich umsetzt, ob diese Einsparungen sich ökonomisch auch für den Kunden lohnen und ob andere Nebeneffekte den ökologischen Fußabdruck nicht doch noch größer machen. All dies hat man natürlich besser im Griff, wenn Rechenleistung und Speicher intern bereitgestellt werden.
Passende Hardware für Mitarbeiter
Eine sinnvolle Auswahl der Hardware kann auch Einsparungspotential bieten. ARM-Systeme sind derzeit deutlich ressourcenschonender als x86-Systeme.
Ebenso ist der Einsatz von Echtgeräten eine Alternative zur Verwendung von besonders rechenstarker Hardware, die die Emulation stemmen können muss.
Eine weitere Möglichkeit ist die Verwendung von virtualisierten Arbeitsumgebungen. So muss die geforderte Rechenleistung nicht von der Hardware des Users generiert werden, sondern kann von einem zentralen Server bezogen werden, der dies potenziell effizienter machen kann.
Homeoffice im Hinblick auf Ressourcenschonung
Homeoffice spart zwar Ressourcen, die bei der Anfahrt zum Arbeitsort verbraucht werden, verbraucht aber an anderer Stelle auch Ressourcen. Als einfachstes Beispiel gebe ich hier ein größeres Meeting an, bei dem einmal alle Teilnehmer ihren eigenen Computer und Bildschirm nutzen und über das Netzwerk kommunizieren müssen, während, wenn alle an einem Ort wären, keine technischen Geräte in Betrieb sein müssten. Auch andere Aspekte könnten ein großes Büro effizienter bedienen als viele einzelne verteilte Arbeitsplätze.
Ein öffentlich gut erreichbares, energieeffizientes Gebäude, Mitarbeiter-Benefits wie gestützte E-Mobility und sinnvoller Einsatz von Homeoffice tragen sicherlich auch zu ökologischer Effizienz bei.
SEQIS ist der führende österreichische Anbieter in den Spezialbereichen IT Analyse, Development, Softwaretest, AI und Projektmanagement. Beratung, Verstärkung und Ausbildung: Ihr Partner für hochwertige IT-Qualitätssicherung. Weitere Informationen zum Unternehmen finden Sie unter www.SEQIS.com.
SEQIS GmbH
Wienerbergstraße 3-5
A1100 Wien
Telefon: +436648378719
Telefax: +43 (2236) 320320350
https://www.SEQIS.com
Marketing
Telefon: +43 2236 320 320 0
E-Mail: marketing@seqis.com

