KI>Inside – Der Podcast für Unternehmen: Jetzt reinhören
Cloud-Ressourcen effektiv nutzen

Der nächste AI-Trend? Ressourcenschonend Kosten einsparen!

„Rightsizing“ wird meist als Synonym für Stellenstreichungen innerhalb von Unternehmen verwendet. Hier wollen wir jedoch einen weitaus positiveren Kontext für diesen Begriff etablieren, der jetzt – aber besonders zukünftig – für die Anwendung von künstlicher Intelligenz relevant sein wird: Die kosteneffiziente Nutzung von Cloud-Ressourcen.

Benjamin Krenn

VP Software & Co-Founder

Karin Schnedlitz

Content Managerin

Um die Cloud bestmöglich zu nutzen, werden die in der Infrastruktur vorhanden Computing-Ressourcen gemäß den benötigten Ressourcen laufend umverteilt, ohne die Verfügbarkeit des Systems zu beeinflussen. Zusätzlich können auch die genutzten virtuellen Maschinen je nach wechselnden Anforderungen und benötigter Ressourcen ausgetauscht werden (um zum Beispiel durch günstigere Varianten zu ersetzen).

Akute Lücken schließen, statt das Rad neu zu erfinden

Rightsizing ist daher ein effizienter Weg, um die operativen Kosten von Software-Applikationen in der Cloud maßgeblich zu reduzieren, ohne dabei die Verfügbarkeit des betriebenen Systems zu gefährden. Nachdem es schon viele Trends in den vergangenen Jahren gab, die quasi aus dem Nichts kursierten und genauso schnell wieder verschwanden, hat Rightsizing das Potential, sich langfristig zu etablieren. 
In Zeiten von Klimawandel, drohender Ressourcenknappheit, Inflation und den damit verbundenen steigenden (Strom-)Preisen ist es im Interesse der Kunden (oder seien wir mal ehrlich: im Interesse aller), einerseits die IT-Lösungen effizient und ressourcenschonend zu gestalten, aber andererseits die Infrastruktur in der Cloud so zu optimieren, dass der Speicher und die Cloud-Anwendungen so effizient wie möglich nutzbar sind. Das heißt, bei diesem Ansatz muss keine neue Technologie eingeführt oder komplizierte Verfahren Anwendung finden, sondern es werden bestehende Lücken geschlossen womit Ressourcen und in der weiteren Folge maßgeblich Kosten eingespart werden können.

Die Lösung: Rightsizing in der Cloud

Rightsizing bedeutet – banal gesagt – ein besseres Management der Cloud und ihres Online-Speichers sowie die Bereitstellung der Cloud Functions abhängig von den Bedürfnissen der User zu machen. Um die Cloud sinngemäß nutzen zu können, bedarf es einiger Voraussetzungen hinsichtlich der gewählten Cloud-System-Architektur und der Sicherheit (Security).

Gängige Public-Cloud Betreiber bieten eine Vielzahl an Services an, deren Einsatz eine mehr oder weniger starke architektonische Auswirkungen auf das Gesamtsystem haben können. So finden sich in den Portfolios der gängigsten Provider Services wie: Managed Service Bus Lösungen, Serverless-Lösungen, Object-Storages, Analytics Streaming Services und viele mehr. Grundsätzlich unterscheiden sich die Services in ihrer Abstraktionsstufe über die virtuellen Maschinen in der Cloud und im angebotenen Funktionsumfang. Es kann hierbei sehr grob zwischen Services mit hoher Abstraktion und hoher architektureller Abhängigkeit (wie etwa Serverless-Lösungen oder proptietäre Event-Bus-Systeme) und Services mit niedriger Abstraktion (wie Managed-Kubernetes-Cluster [1]) unterschieden werden.

Services mit hoher Abstraktion bieten einige wesentlichen Vorteile: einfache automatische Skalierung und die meist hervorragende Integration mit weiteren Services des Anbieters. Andererseits handelt es sich bei diesen Cloud-Services meist um proprietäre Eigenentwicklungen des Anbieters [2].

Wie setzen sich die Kosten für Kunden von Cloud-Anbietern zusammen?

Je mehr und intensiver das Service im Gesamtsystem genutzt wird, desto größer die Abhängigkeit zum Cloud-Provider. Zusätzlich gestaltet sich die Kostenoptimierung in dieser Service-Gruppe oft sehr schwierig. Verrechnet wird oftmals anhand vieler voneinander abhängigen Kriterien wie Anfragen pro Monat, Datentransfer, Zeit, gewähltes Skalierungsmodell etc. Die Kostenmodelle der Services sind oft heterogen. Das heißt, umso mehr diese Services genutzt werden, desto komplexer wird die Kostenoptimierung. Zur Kostenoptimierung werden spezielle Cloud-Cost-Optimization (CCO) Techniken und Tools eingesetzt.

Auf der anderen Seite ist das Pricing-Modell bei Services mit niedriger Abstraktion einfacher zu optimieren. Natürlich gibt es auch hier mehrere Faktoren, die in die Kosten mit einfließen. Allerdings sind die primären Kostentreiber die Stunden pro Monat, in der eine beliebige virtuelle Maschine angemietet wird. Dieser Stundenpreis steigt mit der Leistungsfähigkeit der gewählten virtuellen Maschinen. Das Pricing-Modell der virtuellen Maschinen unterscheidet sich zwischen den Cloud-Anbietern ebenfalls nur um Nuancen. Bei diesen Services kann Rightsizing eingesetzt werden, um Kostenoptimierung zu betreiben.

Rightsizing als laufender automatisierter Prozess

Rightsizing eignet sich vor allem in dynamischen Systemen. das heißt, dort wo Eigenschaften wie rasche horizontale Skalierbarkeit oder On-Demand-Computing gefragt sind. Es kann als laufender Prozess verstanden werden der stetig angewandt wird. Kubernetes, eine quelloffene Container-Orchestrierungs-Plattform, ermöglicht es den Einsatz von Rightsizing weitgehend zu automatisieren. Die im Cluster vorhanden Computing-Ressourcen können gemäß den benötigten Ressourcen laufend umverteilt werden, ohne die Verfügbarkeit des Systems zu beeinflussen. Zusätzlich können auch die genutzten virtuellen Maschinen gemäß der aktuell vom System benötigten Ressourcen durch beispielsweise günstigere Varianten ersetzt werden. Kubernetes liefert hierfür einige Hilfsmittel [,3,4,5,6] um dies zu bewerkstelligen – und es kann durch benutzerdefinierte Erweiterungen [7] stärker in das von Kubernetes vorgenommene Scheduling eingegriffen werden

Durch den Einsatz dieser Hilfsmittel können Unternehmen die eingesetzten virtuellen Maschinen besser nutzen und laufend optimieren, und so Betriebskosten reduzieren. Voraussetzungen hierfür sind, gerade in der horizontalen Skalierung, umfassende Applikationsmetriken und Telemetrie-Daten, die als Basis für etwaige Rightsizing-Operationen dienen. Somit ist die Etablierung eines leistungsfähigen und umfassenden Metriken- und Telemetrie-Systems unumgänglich, um überhaupt Rightsizing durchführen zu können.

Rightsizing à la Leftshift One

Kubernetes ist eine hervorragende Plattform um die Kosten des Betriebs von komplexen Software-Systemen in der Cloud-Umgebung laufend zu optimieren. Allerdings sei an dieser Stelle erwähnt das der Einsatz von Kubernetes erst ab einem gewissen Komplexitätsgrad des Software-Systems und einem hohen Umfang der zu nutzenden Software Sinn ergibt. Ferner handelt es sich um ein umfangreiches System, das einiges an Einarbeitungszeit und spezialisiertes Personal bedarf. Für einfache Software-Projekte, die keine strengen Anforderungen an Portabilität stellen, sind die proprietären Cloud-Services eine sinnvolle und oftmals kostengünstigere Alternative.

Die MLOps Platform AIOS von Leftshift One baut auf Kubernetes auf und nutzt die zur Verfügung gestellten Mittel, um das Rightsizing der laufenden Machine-Learning-Modelle zu bewerkstelligen. Jeder mittels AIOS gestarteter Machine-Learning Workload (Skill) ist automatisch in das Telemetrie-System von AIOS integriert und exponiert die notwendigen Applikationsmetriken. Die Workloads werden stetig auf Ressourcen-Nutzung geprüft und automatisch, je nach aktueller Auslastung des Systems, auf möglichst kostengünstige virtuelle Maschinen umverteilt oder skaliert. Da die Plattform Kubernetes vollständig abstrahiert, benötigen die BenutzerInnen keine Expertise in Kubernetes oder mit Telemetrie-Systemen. Workloads können einfach und zuverlässig in Produktion gebracht werden und der Kunde kann von den Vorteilen des Rightsizings uneingeschränkt profitieren.

Referenzen
[1] https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

[2] Proprietäre Software bedeutet, die Nutzung und Weiterverbreitung ist von dem Anbieter eingeschränkt. Das Gegenteil ist „open-source „

[3] https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
[4] https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
[5] https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
[6] https://virtual-kubelet.io
[7] https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/

 

Nach oben scrollen