Auto-Scaling, gelegentlich auch als „automatische Skalierung“ bezeichnet, ist eine Cloud-Computing-Funktion, die Rechenressourcen automatisch auf der Grundlage des Systembedarfs zuweist.
Auto-Scaling wird eingesetzt, um sicherzustellen, dass Anwendungen über die Ressourcen verfügen, die sie benötigen, um eine einheitliche Verfügbarkeit zu gewährleisten und Leistungsziele zu erreichen, sowie um die effiziente Nutzung von Cloud-Ressourcen zu fördern und Cloud-Kosten zu minimieren.
Laut einem Whitepaper von Infosys aus dem Jahr 2023 verschwenden Unternehmen, die in die Cloud migrieren, etwa 32 % ihrer Cloud-Kosten1 Da der Fokus auf einer effizienten Ressourcennutzung liegt, ist Auto-Scaling ein nützlicher Bestandteil einer erfolgreichen FinOps-Praxis.
Wenn Unternehmen eine Cloud-Infrastruktur konfigurieren, stellen sie Ressourcen entsprechend einer Basis für den Bedarf an Rechen-, Speicher- und Netzwerkressourcen bereit. Aber die Nachfrage schwankt beispielsweise aufgrund von Spitzen oder Einbrüchen des Netzwerkverkehrs oder der Anwendungsnutzung. Automatische Skalierungsfunktionen ermöglichen die Skalierung von Ressourcen entsprechend der Echtzeitnachfrage nach bestimmten Metriken wie CPU-Auslastung oder Bandbreitenverfügbarkeit, ohne dass ein Mensch eingreifen muss.
Auto-Scaling kann zur Optimierung der Ressourcenzuweisung auf verschiedene Weise eingesetzt werden. Bei der prädiktiven Skalierung wird beispielsweise historische Daten verwendet, um den zukünftigen Bedarf vorherzusagen. Oder die dynamische Skalierung, die in Echtzeit auf Ressourcenanforderungen reagiert, die durch die Auto-Scaling-Richtlinien eines Unternehmens bestimmt werden.
Richtlinien für Auto-Scaling automatisieren die Lebenszyklen von Cloud Computing-Instanzen und starten und beenden virtuelle Maschinen nach Bedarf, um den Ressourcenbedarf zu decken. Auto-Scaling wird häufig in Verbindung mit einem elastischen Lastausgleich eingesetzt, um die verfügbaren Cloud-Ressourcen vollständig zu nutzen.
Obwohl Auto-Scaling mit dem Lastausgleich zusammenhängt, sind sie nicht ganz dasselbe. Beide Prozesse wirken sich auf die Zuteilung von Backend-Ressourcen aus und dienen dazu, die Leistung zu optimieren und eine Überbelegung zu vermeiden. Sie werden oft zusammen verwendet.
Load Balancer verteilen eingehenden Traffic auf mehrere Server, um die Belastung auf einem bestimmten Server zu reduzieren. Load Balancer bieten häufig Funktionen wie Gesundheitsprüfungen, die den Datenverkehr von ungesunden Instanzen weg und zu gesunden Instanzen hin leiten. Der Ausgleich der Traffic-Last trägt dazu bei, die Leistung von Anwendungen in einer Cloud-Umgebung zu verbessern.
Im Gegensatz dazu passt Auto-Scaling die Systemkapazität anhand der Nachfrage an, um eine konsistente Leistung aufrechtzuerhalten und eine Überbereitstellung von Ressourcen zu vermeiden (das heißt, nur das zu verwenden, was benötigt wird). Auto-Scaling fügt neue Server oder Recheninstanzen hinzu (oder beendet sie), entsprechend dem Ressourcenbedarf und den von einem Unternehmen festgelegten Auto-Scaling-Richtlinien.
Die meisten Cloud-Anbieter wie IBM® Cloud, Amazon Web Services (manchmal AWS Cloud genannt), Microsoft Azure und Oracle Cloud Infrastructure bieten automatische Skalierungsservices auf ihren Cloud-Plattformen. Diese Dienste können Unternehmen dabei helfen Auto-Scaling-Richtlinien zu konfigurieren, um die Cloud-Computing-Anforderungen und -Ziele des Unternehmens zu erfüllen.
Verschiedene Anbieter und Plattformen bieten unterschiedliche Funktionen, Fähigkeiten und Preisgestaltung, und Unternehmen verfügen über unterschiedliche Ressourcen und unterschiedliche Anwendungsfälle, aber im Allgemeinen funktioniert Auto-Scaling wie folgt:
Der Prozess beginnt mit einer Startkonfiguration oder Basisbereitstellung, bei der ein Instanztyp (oder mehrere Instanztypen) mit einer bestimmten Kapazitäts- und Leistungsfunktion bereitgestellt wird. Dies geschieht häufig über API-Aufrufe und Infrastructure as Code (IaC), ein Verfahren, das Code zur Bereitstellung und Konfiguration von IT-Infrastrukturelementen nach vordefinierten Spezifikationen nutzt.
Die Unternehmen bestimmen die gewünschte Kapazität und die Art der Attribute, die die Instanz auf der Grundlage der erwarteten Arbeitslast für diese Instanz benötigt. Bei der Einrichtung einer Auto-Scaling-Richtlinie können Unternehmen Ziele und Schwellenwerte für die Rechen-, Speicher- oder Netzwerknutzung festlegen. Wenn diese Schwellenwerte erreicht werden, kann automatisch eine bestimmte Aktion ausgelöst werden, um den aktuellen Ressourcenbedarf genauer zu erfüllen. Bei Bedarf können Richtlinien so konfiguriert werden, dass bei jeder Initiierung einer Skalierungsaktion Benachrichtigungen gesendet werden.
Unternehmen können auch Instanzgruppen einrichten, die eine minimale oder maximale Anzahl von Instanzen für bestimmte Workloads beibehalten, oder verschiedene Instanztypen gruppieren, um verschiedene Arten von Workloads zu handhaben. Zu den Instanztypen gehören:2
Allzweck-Instanztypen sind für eine Vielzahl von Workloads konzipiert, darunter Webserver, kleine Datenbanken sowie Entwicklungs- und Testumgebungen.
Diese Instanzen sind für rechenintensive Workloads wie Hochleistungsrechnen, Batch-Verarbeitung und wissenschaftliches Modellieren optimiert. Diese Instanzen maximieren die Rechenleistung mithilfe einer GPU und einer CPU mit hoher Kernanzahl.
Diese High-Memory-Instanzen sind für speicherintensive Workloads wie Hochleistungsdatenbanken, verteilte In-Memory-Caches und Echtzeit-Datenverarbeitung/Big Data Analytics optimiert.
Diese Instanzen sind für speicherintensive Workloads wie Big Data, Data Warehousing und Protokollverarbeitung optimiert. Sie nutzen Caching mit hoher Kapazität und Solid-State-Laufwerke (SSD), um die intensiven Lese- und Schreibaktivitäten der Workloads zu unterstützen.
Auto-Scaling-Gruppen mit gemischten Instanztypen ermöglichen es CloudOps- und DevOps -Teams, Ressourcenanforderungen präziser und effizienter zu erfüllen. Wenn beispielsweise der Bandbreitenbedarf angemessen gedeckt ist, die CPU-Auslastung jedoch den in den Richtlinien für die Auto-Scaling festgelegten Schwellenwert überschreitet,können rechnerspezifische Instanzen hochgefahren werden, während die für die Abwicklung des Netzwerkverkehrs vorgesehenen Instanzen unverändert bleiben.
Sobald Teams die Arbeitslastnachfrage verstehen, können sie sogar Startkonfigurationsvorlagen für neue Instanzen erstellen. Diese Vorlagen definieren den Instance-Typ, die Konfigurationsparameter und andere Richtlinien für das Aufsetzen neuer Instances und ihren Beitrag zur gesamten Cloud-Umgebung. Auf diese Weise können Unternehmen die Lebenszyklen virtueller Maschinen vollständig automatisieren.
Es gibt verschiedene Arten der Skalierung sowie verschiedene Methoden von Auto-Scaling:
Bei der horizontalen Skalierung oder „Skalierung nach außen“ werden einer Cloud-Computing-Umgebung weitere Maschinen oder Knoten hinzugefügt. Sie können auch skalieren und so die Anzahl der Knoten in der Umgebung reduzieren.
Vertikale Skalierung oder „Aufwärtsskalierung“ ist der Prozess des Hinzufügens von mehr Leistung – z. B. RAM, CPU, Speicher – zu bestehenden Knoten in Ihrer aktuellen Cloud-Computing-Umgebung.
Auto-Scaling-Richtlinien können prädiktiv, dynamisch oder geplant sein.
Prädiktive Skalierungsrichtlinien nutzen künstliche Intelligenz (KI) und maschinelles Lernen, um den zukünftigen Ressourcenbedarf auf der Grundlage historischer Auslastungen vorauszusehen, bevor er entsteht.
Beispielsweise könnte eine prädiktive Auto-Scaling-Richtlinie die Wahrscheinlichkeit eines erhöhten Web-Traffics für ein E-Commerce-Unternehmen vor der Weihnachtseinkaufssaison ermitteln und gemäß der festgelegten Richtlinie skalieren oder vergrößern. Dies kann dazu beitragen, Netzwerklatenz und Ausfallzeiten proaktiv zu minimieren.
Dynamische Skalierungsrichtlinien reagieren auf Ressourcenanforderungen, sobald sie auftreten, und passen die Ressourcenzuweisung basierend auf der Echtzeitauslastung an. Mit einer dynamischen Skalierungsrichtlinie können Unternehmen mehr Ressourcen an einen bestimmten Knoten oder eine Auto-Scaling-Gruppe senden oder zusätzliche Instanzen starten, wenn ein bestimmter Schwellenwert, etwa ein Prozentsatz der CPU-Auslastung, erreicht wird.
Wenn ein Unternehmen beispielsweise eine Webanwendung betreibt, die in unregelmäßigen Abständen erhebliche Ressourcen verbraucht, könnte eine dynamische Skalierungsrichtlinie verwendet werden, um die Ressourcenverfügbarkeit nach Bedarf anzupassen. Die dynamische Skalierung geht häufig mit einer Abkühlungsphase einher, in der mehr Ressourcen zur Verfügung stehen, falls es zu weiteren Verkehrsspitzen kommt.
Geplante Auto-Scaling-Richtlinien weisen Ressourcen nach einem vorgegebenen Zeitplan zu. Wenn ein Unternehmen beispielsweise weiß, dass der Datenverkehr oder die Ressourcennachfrage abends viel höher ist als morgens, kann eine Auto-Scaling-Richtlinie festgelegt werden, um dieser Nachfrage gerecht zu werden.
Bei effektiver Implementierung kann Auto-Scaling eine wichtige Rolle bei der Optimierung der Cloud-Computing-Umgebung eines Unternehmens und der Reduzierung der gesamten Cloud-Kosten spielen.
Durch die Einrichtung robuster Auto-Scaling-Richtlinien können Unternehmen ihre Abhängigkeit von der manuellen Bereitstellung verringern und eine einheitlichere Systemleistung gewährleisten.
Auto-Scaling kann eine Cloud-Umgebung in Echtzeit auf den Ressourcenbedarf reagieren, ohne dass ein menschliches Eingreifen erforderlich ist. Dies ist effizienter als die manuelle Skalierung. Sie hilft, den Burnout der Mitarbeiter zu reduzieren, die Einheitlichkeit von Konfiguration und Bereitstellung zu verbessern und den Mitarbeitern mehr Zeit für wertvollere Aufgaben zu geben.
Auto-Scaling ermöglicht Unternehmen die nahtlosere Erweiterung ihrer Cloud-Computing-Umgebung und -Funktionen, ohne zusätzliches Personal für die Überwachung und Bereitstellung von Ressourcen einsetzen zu müssen.
Auto-Scaling stellt sicher, dass eine Cloud-Umgebung unabhängig von der Aktivität oder der Nachfrage über die erforderlichen Rechen-, Netzwerk- und Speicherressourcen verfügt, und trägt so zur Aufrechterhaltung einer einheitlichen und zuverlässigen Leistung von Cloud-Diensten bei.
Eine einheitlichere Web-App- und Netzwerkleistung bedeutet ein einheitlicheres Serviceniveau für den Benutzer.
Wenn sich Unternehmen auf die manuelle Bereitstellung von Ressourcen verlassen, nehmen sie oft vorsichtshalber eine Überdimensionierung vor, um sicherzustellen, dass die Ressourcen auch in Zeiten hoher Nachfrage verfügbar sind. Durch den Einsatz einer Plattform, die Rechen-, Netzwerk- und Speicherressourcen automatisch skalieren kann, um der Nachfrage in Echtzeit gerecht zu werden, können Unternehmen eine Überbereitstellung vermeiden. Dadurch wird sichergestellt, dass nur das genutzt wird, was benötigt wird, was zu niedrigeren Cloud-Rechnungen und einem höheren ROI führt.
Erstellen Sie Ihr kostenloses IBM Cloud-Konto und erhalten Sie Zugriff auf mehr als 40 immer kostenlose Produkte, einschließlich IBM Watson-APIs.
IBM Cloud ist eine Enterprise-Cloud-Plattform, die für regulierte Branchen entwickelt wurde und offene, KI-fähige, sichere und hybride Lösungen bietet.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.
1 „Cloud Cost Optimization “, Sarika Nandwani, Infosys.com, 2023.
2 „AWS EC2-Instanztypen: Herausforderungen und Best Practices für das Hosten Ihrer Anwendung in AWS“, Christopher Graham, 23. August 2023.