Warum Unternehmen nachhaltige und sichere Software einsetzen sollten
Der Begriff Nachhaltigkeit ist eng mit dem Thema Umweltschutz und Ressourcen-knappheit verknüpft. Aber auch Softwarelösungen können nachhaltig entwickelt werden, um für einen langen und sicheren Einsatz im Unternehmen zu sorgen. Das spart den Unternehmen wiederum Ressourcen, Zeit und Geld. Welche teilweise einfachen Möglichkeiten der Umsetzung es gibt, erfahren Sie in unserem Blogartikel.
Was ist Green Coding?
Eine nachhaltige, energiesparende und umweltfreundliche Software-Entwicklung wird als Green Coding bezeichnet. Zentrale Handlungsfelder in diesem Rahmen sind die Bereiche der Software-Architektur, der einzelnen Software-Komponenten sowie der Betriebsplattformen für den Code.
Digitale Technologien können einen Großteil dazu beitragen, dass Deutschland bis zum Jahr 2030 seine Klimaziele erreicht. Wie die im Auftrag des Digitalverbands Bit-kom erstellte Studie „Klimaeffekte der Digitalisierung“ zeigt, können die CO2-Emissionen in Deutschland durch den gezielten und beschleunigten Einsatz digitaler Lösungen in den kommenden zehn Jahren um bis zu 152 Megatonnen CO2 verringert werden.
Das entspricht rund einem Fünftel der heutigen CO2-Emissionen. Einsparungen lassen sich unter anderem durch die Automatisierung von Produktionsanlagen, smarte Verkehrssteuerung und Logistik oder Online-Banking erzielen.
Green Coding zielt in diesem Kontext darauf ab, die Software selbst effizienter zu gestalten, um den Verbrauch von Strom und damit auch CO2-Emissionen zu reduzieren. Dies erfordert jedoch eine darauf abgestimmte Gestaltung der gesamten Unterneh-mensarchitektur, um den ökologischen Fußabdruck der Organisation zu reduzieren. Ei-nen wesentlichen Beitrag hierzu leistet der Betrieb von Software in grünen Clouds. Ökologischen Prinzipien entsprechen Rechenzentren und Datenverarbeitung vor allem dann, wenn es möglich ist, sie vollständig in die Cloud zu verlagern. Im Vergleich zu firmeneigenen Rechenzentren sind cloudbasierte Server um bis zu 93 Prozent energie-effizienter und um bis zu 98 Prozent CO2-effizienter.
Priorisierung von Green Coding
Netflix beispielsweise gibt an, dass eine Stunde Video-Streaming pro Nutzer einen CO2-Ausstoß von 100 Gramm erzeugt – wer den Dienst tagtäglich für zwei Stunden nutzt, erzeugt damit jährliche CO2-Emissionen in Höhe von 73 Kilogramm. Diese Summe muss natürlich auf Millionen Nutzer hochgerechnet werden. Wenn ein Netflix-Entwickler in der Lage wäre, den CO2-Ausstoß pro Nutzerstunde von 100 Gramm auf 97 oder 95 Prozent zu reduzieren, würde hieraus weltweit eine Emissionsreduktion von sehr großem Umfang erzielt werden.
Ein solches Szenario lässt sich auch auf die Entwicklung und Nutzung von Unternehmenssoftware übertragen. Damit Green Coding tatsächlich klimarelevant wird, ist es unternehmensweit als nichtfunktionale Anforderung (NFR – non-functional requirement) mit hoher Priorität zu definieren. Hieraus können jeweils konkrete Detailanforderungen sowie Best Practices für Entwickler und IT-Architekten abgeleitet werden. Zu einem gemeinsamen Verständnis von Green Coding tragen Schulungsprogramme für alle betei-ligten Personen bei, die sich idealerweise an konkreten Praxisbeispielen orientieren.
Die Priorisierung von Green Coding kann einer einfachen Regel folgen: Im Fokus stehen dabei jeweils die firmeneigene Software mit dem höchsten potenziellen Energieverbrauch. Die Anzahl der realen oder potenziellen parallelen Nutzer ist für entsprechende Projekte das entscheidende Auswahlkriterium.
Die Optimierung beginnt immer mit der Messung des aktuellen Stromverbrauchs. Im Hinblick auf Softwareprojekte gehört hierzu auch, energieintensive Anforderungen wie hochdynamische Inhalte oder die Datenverarbeitung in Echtzeit kritisch zu hinterfragen, um Lastspitzen so weit wie möglich zu vermeiden. Selbstverständlich muss auch im Rahmen einer grünen Softwarenentwicklung in Absprache mit den internen oder externen Nutzern der Programme ein sinnvolles Gleichgewicht zwischen funktionalen Anforderungen und der Senkung des Energieverbrauchs gefunden werden.
Entwicklungsanforderungen im Green Coding
Netflix beispielsweise gibt an, dass eine Stunde Video-Streaming pro Nutzer einen CO2-Ausstoß von 100 Gramm erzeugt – wer den Dienst tagtäglich für zwei Stunden nutzt, erzeugt damit jährliche CO2-Emissionen in Höhe von 73 Kilogramm. Diese Summe muss natürlich auf Millionen Nutzer hochgerechnet werden. Wenn ein Netflix-Entwickler in der Lage wäre, den CO2-Ausstoß pro Nutzerstunde von 100 Gramm auf 97 oder 95 Prozent zu reduzieren, würde hieraus weltweit eine Emissionsreduktion von sehr großem Umfang erzielt werden.
Effizienter Code mit optimalen Algorithmen
Software beruht grundsätzlich auf mathematischen Algorithmen. Der wichtigste Optimierungsansatz im Green Coding besteht darin, den für die Einsparung von Energie und die Reduktion von CO2-Emissionen am besten geeigneten Algorithmus zu entwickeln und praktisch anzuwenden. Im ersten Schritt sollten Soft-wareentwickler prüfen, ob vorhandene Algorithmen diese Aufgabe erfüllen oder sie mit dieser Zielstellung weiterentwickelt werden können.
Vermeidung unnötiger Round-Trips
Bei der Vermeidung unnötiger Round-Trips geht es darum, die Zahl der Server-anfragen auf ein funktional erforderliches Mindestmaß zu reduzieren. Für jede Anfrage sollte im Rahmen von Green Coding daher abgewogen werden, ob sie tatsächlich nötig ist.
Caching
Durch das Zusammenfassen von Serveranfragen und Zwischenspeicherungen von Anfragen auf dem Client trägt effizientes Caching in hohem Maße dazu bei, unnötige Round-Trips innerhalb des Netzwerks sowie teure und energieintensive Zugriffe auf Festplatten oder Datenbanken zu vermeiden. Caches, die für häufige Anfragen eingerichtet werden, senken den Energieverbrauch von Software. Gleichzeitig optimieren sie ihre Performance.
Optimiertes Datenvolumen
Zur Einsparung von Ressourcen trägt auch die Optimierung des Datenvolumens bei. Die verschiedenen Dateiformate sind in unterschiedlichem Umfang datenintensiv. CSV verbraucht weniger Ressourcen als Excel, YAML oder JSON erzeugen ein geringes Datenvolumen als XML. Auch die Wahl der API kann erheblichen Einfluss auf die CO2-Emissionen haben.
Komprimierte Netzwerkkommunikation
Ebenso spart das Komprimieren von Daten Bandbreite, Strom und Übertragungskosten. Bei der Übertragung von Bildern ist im Green Coding neben der Komprimierung auch der Verzicht auf verlustbehaftete Formate wie JPEG, AAC oder AV1 von Bedeutung.
Datenbankindizes
Indizes auf Tabellen und folglich auch auf Datenbankeinträge gehören zu den Standards einer zeitgemäßen IT-Architektur. In der Praxis wird jedoch noch häufig Software angewendet, die auf die Indizierung von Datenzugriffen verzichtet. Abhängig von den genutzten Datenmengen steigen beim Verzicht auf Datenbankindizes die Zugriffszeit sowie die CPU- und IO-Belastung. Hieraus resultiert ein hoher Energieverbrauch mit entsprechenden Konsequenzen für den Ausstoß von CO2-Emissionen.
Cloud Computing
Im Fokus einer optimierten Ressourcennutzung steht die Minimierung von Leerlaufzeiten. Ein Server mit ungenutzten Kapazitäten vernichtet Kapital und Energie. Cloud-Computing kann große Energieeinsparungen bewirken. Public-Cloud-Systeme folgen einem hochgradig modularen Aufbau, der eine präzise Steuerung der Auslastung unterstützt. AWS, die Google Cloud oder Microsoft Azure erreichen eine Standardauslastung von rund 65 Prozent. Zum Vergleich: Stationäre Rechenzentren sind meist nur zu zwölf bis 18 Prozent ausgelastet.
Performance Engineering
Performance Engineering ist ein Konzept, der Leistungsanforderungen im Rahmen eines ganzheitlichen Ansatzes als wesentlichen Bestandteil der Entwicklung neuer Softwareprodukte ansieht. Energiebezogenes Performance Engineering erfordert die Messung des Energieverbrauchs von Software während der Entwicklung und im laufenden Betrieb. Falls er zu hoch ist, müssen gegenläufige Maßnahmen ergriffen werden. Voraussetzung für seine Anwendung ist die Definition messbarer Bedingungen für konkrete Anforderungen. Dabei kann es sich um das Gesamtsystem oder einzelne Komponenten handeln. Zudem dürfen Hardware und Software im Performance Engineering nicht voneinander isoliert betrachtet werden – vielmehr müssen auch energetische Aspekte der Hardware in die Bewertung einbezogen werden.
Anwendungsbeispiele
Fazit
CO2-Emissionen lassen sich durch Green Coding in zahlreichen verschiedenen Di-mensionen reduzieren. Wird über die Software hinaus noch grüne IT im Unternehmen verwendet, sind zusätzliche Ressourceneinsparungen möglich. Grüne IT beschreibt den Betrieb von Hardware mit ökologisch erzeugtem Strom aus erneuerbaren Ener-gien sowie einen generell energiesparenden Hardware-Einsatz. Falls Sie hierzu zum Einsatz von Green Coding und grüner IT in Ihrem Unternehmen Fragen haben, können Sie sich gerne an die Novartum Gruppe wenden.