Cloud Computing ist nicht so dunstig, wie sein Name vermuten lässt, und auch das Internet, das Cloud Computing ermöglicht, ist es nicht. Das Internet wird von Millionen von Servern angetrieben, die in großen Rechenzentren stehen. Und die Energie, die für den Betrieb dieser großen, energieintensiven Computer benötigt wird, ist die Ursache für etwa 1 % der weltweiten Kohlenstoffemissionen, Tendenz steigend.
In vielen anderen Branchen, z. B. im Lebensmittelbereich, werden laut Feeding America bis zu 40 % der produzierten Lebensmittel verschwendet und landen im Müll. Beim Cloud Computing verhält es sich nicht anders, denn hier werden aus einem ganz einfachen Grund ständig Ressourcen verschwendet. Die Teams wollen, dass ihre Anwendungen Lastzeiten bewältigen können, und neigen daher zu einer Überversorgung, während ihre Server so ziemlich die gleiche Menge an Energie verbrauchen, ob sie nun genutzt werden oder nicht, was zu Verschwendung führt. Viele Studien - darunter auch eine Studie von Cloud Carbon Footprint - haben gezeigt, dass der größte Teil des Energieverbrauchs eines Servers von der CPU stammt, die für die Ausführung von Anwendungen zuständig ist.
Dies ist der Hauptgrund, warum die Nutzung einer modernen Platform-as-a-Service (PaaS) wesentlich effektiver ist als die Verwendung von Infrastructures-as-a-Service (IaaS) und virtuellen Servern. Effiziente Verteilung von Ressourcen zwischen Anwendungen und integrierte Tools zur Optimierung des Verbrauchs wie Profiler, relevante Caching-Schichten und vor allem automatische Skalierung. Ein modernes PaaS kann die zugrundeliegenden Ressourcen in vielerlei Hinsicht optimieren und die Verschwendung reduzieren, indem nur das verwendet wird, was wirklich benötigt wird.
Schauen wir uns einige Zahlen an, die zeigen, warum eine moderne PaaS in Bezug auf den Ressourcenverbrauch besser abschneidet. Nehmen wir das Beispiel von Upsun - dem neuesten Angebot von Platform.sh -, das sich an Entwicklungsteams richtet, die hauptsächlich Software-as-a-Service (SaaS)-Anwendungen mit technischen Microservice-Architekturen erstellen.
Wir haben im Laufe der Jahre eine Menge Daten über das Platform.sh -Produkt gesammelt. Wir führen Untersuchungen durch, um herauszufinden, wie viele CPU-Ressourcen durch die Verwendung unseres Produkts im Vergleich zu ähnlichen Anwendungen mit Bare-Metal-Implementierungen eingespart werden. Diese Untersuchung wurde von unserem Nachhaltigkeitsteam durchgeführt und von einer externen Quelle, Greenly, geprüft. Die Ergebnisse zeigen, dass eine Anwendung, die nicht auf virtuellen Instanzen (wie AWS EC2) läuft, sondern auf einem Container-Grid von Servern, die CPU-Auslastung im Durchschnitt um den Faktor 12 reduziert. Werfen Sie einen Blick auf das unten stehende Schema, in dem dies dargestellt ist, und erfahren Sie weitere Einzelheiten in dieser Fallstudie.
Hinweis: Das obige Schema ist ein vereinfachtes Schema dessen, was wir als Platform.sh Netzregion bezeichnen. Grid-Regionen bieten hocheffiziente Verteilungsebenen, die zu einer höheren Servereffizienz beitragen.
Nun, es gibt kein Patentrezept - vielmehr wirken viele Elemente zusammen, um die CPU-Auslastung zu optimieren. Erstens spielt die Verteilung der Arbeitslast eine große Rolle: Unsere Grid-Server sind hier entscheidend. Die Grid-Architektur kann die zugrundeliegenden Server aufgrund eines höheren und vielfältigeren Anfragevolumens viel besser ausnutzen. Im Gegensatz zu dedizierten Ressourcen können diese Grid-Regionen Arbeitslasten mit hohem Auslastungsgrad kontinuierlich ausführen und neu ausbalancieren. Der Skaleneffekt ermöglicht eine effektivere Optimierung der Ressourcenzuweisung in Produktionsumgebungen und noch mehr in Entwicklungsumgebungen, da das Grid seine Ressourcen selbst verwaltet, indem es Entwicklungscontainer in den Ruhezustand versetzt, wenn sie für längere Zeit nicht genutzt werden.
Ein weiterer wichtiger Faktor bei der Optimierung des Ressourcenverbrauchs ist unsere Orchestrierung. Eine Entscheidung, die wir getroffen haben, besteht darin, in unserem Container-Grid standardmäßig sehr kleine Container anzubieten. Mit diesem Ansatz können wir es ermöglichen, dass Anwendungen mit geringem Datenverkehr oder triviale Anwendungen auf kleiner dimensionierten Serverressourcen laufen. Außerdem können wir Teams dabei helfen, sehr kostengünstige Entwicklungsumgebungen für komplexere Anwendungen zu erstellen, während das gleiche Team seine Entwicklungsumgebungen traditionell wahrscheinlich auf einer ähnlichen Infrastruktur wie seine Produktionsumgebung betreiben würde. Dieser Ansatz summiert sich sehr schnell, so dass PaaS vom Standpunkt des Ressourcenverbrauchs aus gesehen eine viel schlankere Lösung darstellen.
Sobald die zugrunde liegende Infrastruktur optimiert ist, kann auch der Code der Anwendung optimiert werden, und Ihre PaaS sollte Ihnen dabei helfen. Ohne die richtigen Tools kann ein Entwicklungsteam nur raten, welche Teile der Codebasis von einem leistungssteigernden Refactoring profitieren könnten. Deshalb ist es unglaublich hilfreich, wenn Progressive Profiling und Application Performance Monitoring (APM) als integrierte Funktionen in ein em PaaS-Produkt integriert sind. Diese beiden Tools arbeiten zusammen - APM ist eine High-Level-Ansicht, die den Teams hilft, zu erkennen, welche Teile Ihrer Anwendung Optimierungspotenzial haben, und die feinere Profilerstellung zoomt heran, um genau die Codezeilen zu identifizieren, auf die man sich konzentrieren muss. Im Folgenden finden Sie einen Überblick über die Observability-Funktionen, die bei Upsun verfügbar sind und Ihnen bei diesem Prozess helfen können.
Upsun ist ein neues Angebot für die Platform.sh PaaS. Es handelt sich im Wesentlichen um dasselbe Produkt - einschließlich aller oben genannten Prinzipien - aber mit einem komplett überarbeiteten Preismodell, das auf die Bedürfnisse von entkoppelten und kleinteiligeren Architekturprojekten zugeschnitten ist. Darüber hinaus bietet es einige neue, erweiterte Funktionen, die bald auch auf Platform.sh PaaS bereitgestellt werden.
Dieses Preismodell lässt sich in zwei Worten zusammenfassen: nutzungsbasiert. Während dies darauf abzielt, den Entwicklungsteams viel mehr Flexibilität zu bieten, bietet es auch einige hochinteressante Vorteile im Hinblick auf unser Ziel, den CO2-Fußabdruck von Anwendungen zu reduzieren.
12x bessere CPU-Nutzung im Vergleich zu AWS EC2. Mit Upsun bieten wir unsere effizienteste Cloud-Orchestrierung an. Greenly errechnet eine 14-mal höhere Dichte für die Entwicklungs- und eine 10-mal höhere Dichte für die Produktions-Workloads.
Es bietet eine bessere Abstimmung zwischen Kostenoptimierung und CO2-Bilanz. Wir haben festgestellt, dass unser früherer Planbasierter Ansatz in dieser Hinsicht weniger effizient war: Wir haben Funktionen in einem Paket gebündelt und einige davon wurden nicht genutzt, obwohl sie bezahlt wurden. Unser neuer nutzungsbasierter Ansatz verabschiedet sich davon und sorgt dafür, dass Preis und Ressourcen immer im Verhältnis stehen.
Transparenz der Kohlenstoffintensität. Nicht alle Rechenzentren sind gleich, und wir haben bei Platform.sh schon früh erkannt, dass die Energiequelle eine enorme Rolle für den Kohlenstoff-Fußabdruck eines Rechenzentrums spielt. Daher ist der Strommix des Landes oder der Region, in der sich das Rechenzentrum befindet, sehr wichtig.
Das Beste kommt noch. In naher Zukunft werden wir über die wichtigste umweltrelevante Komponente von Upsun berichten - bleiben Sie dran und erfahren Sie bald mehr.
Wenn Ihnen Ihr digitaler Kohlenstoffausstoß wichtig ist und Sie über Upsun's Fähigkeit, den Ressourcenverbrauch zu reduzieren, sprechen möchten, nehmen Sie bitte Kontakt mit unserem Team auf!