Autoscaling ist die automatische Vergrößerung oder Verkleinerung von Rechenressourcen, die für die Zuweisung an Arbeitslasten zur Verfügung stehen.
Autoscaling ist eng mit Load Balancing verbunden. Streng genommen benötigt ein Load Balancer keine Autoscaling-Funktionen. Allerdings sind Lastenverteiler, die über Autoscaling verfügen, im Allgemeinen wesentlich effektiver. Außerdem eignet sich Autoscaling ideal für Workloads mit Lastausgleich, die in der Cloud ausgeführt werden. Heute integrieren die großen Cloud-Anbieter Autoscaling in ihre Cloud-Lastausgleichsfunktionen.
Autoscaling ist ein unkompliziertes Konzept. Backend-Server werden automatisch online oder offline geschaltet, je nachdem, welche Rechenlasten sie bewältigen müssen. Der Lastausgleich verteilt dann die Arbeitslasten über den Serverpool. (Beachten Sie, dass ein „Server“ in diesem Zusammenhang ein physischer Rechner sein kann, aber nicht muss. Es kann sich auch um eine virtuelle Maschine, eine Cloud-Instanz usw. handeln.)
Im Allgemeinen hat die erste Aufgabe Vorrang vor der zweiten. Bei reaktivem Autoscaling (siehe unten) verwenden Unternehmen beispielsweise häufig eine Konfiguration, die bei steigender Arbeitslast aggressiv hochskaliert, aber bei sinkender Arbeitslast langsamer herunterskaliert.
Ein perfekter Autoscaler wäre also in der Lage, beide Aufgaben zu erfüllen. Zu jedem Zeitpunkt wäre gerade genug Serverkapazität verfügbar, um die aktuelle Arbeitslast effektiv zu bewältigen. Obwohl diese Perfektion in der realen Welt nicht möglich ist, wurden große Fortschritte in Richtung dieses Ideals gemacht, was sich in den folgenden Richtlinienoptionen widerspiegelt.
Bei der Konfiguration eines Autoscaling-Systems gibt es in der Regel eine Einstellung (oft als Richtlinie bezeichnet), die definiert, wie die Skalierung erfolgt. Es gibt drei Haupttypen von Autoscaling-Richtlinien: geplant, reaktiv und vorausschauend.
Bei der geplanten Skalierung werden die Server nach einem vorgegebenen Zeitplan automatisch hoch- oder heruntergefahren. So kann ein Unternehmen beispielsweise während der Geschäftszeiten höhere Arbeitslastanforderungen haben. Um in den Nebenzeiten Strom und andere Betriebskosten zu sparen, kann eine bestimmte Anzahl von Servern jede Nacht vom Netz genommen werden.
Reaktive Skalierung bedeutet, dass die Server als Reaktion auf Änderungen der Arbeitslast hoch- und heruntergefahren werden. Wenn die Arbeitslast steigt, reagiert das System, indem es mehr Server online schaltet. Wenn die Arbeitslast sinkt, werden die Server wieder vom Netz genommen. Dies ist wesentlich effektiver als eine geplante automatische Skalierung. (Mit anderen Worten: Die verfügbare Serverkapazität entspricht viel eher den aktuellen Anforderungen der Arbeitslast). Allerdings ist es auch viel komplizierter.
Das System muss in der Lage sein, eingehende Arbeitslasten genau und korrekt zu bewerten und gleichzeitig die verfügbare zusätzliche Kapazität auf den Servern, die derzeit online sind, zu ermitteln. Dies ist eng mit dem Betrieb des zugrunde liegenden Load Balancers verbunden. Tatsächlich gelten viele der gleichen Überlegungen; zum Beispiel gibt es eine Vielzahl möglicher Metriken, die zur Bewertung der Kapazität verwendet werden können (z. B. aktuelle Bandbreitennutzung, Anzahl der Verbindungen, CPU-Nutzung, Speichernutzung usw.). Jede Kennzahl hat ihre Vor- und Nachteile.
Die reaktive automatische Skalierung kann sehr effektiv sein, hat aber einen potenziellen Nachteil. Sie wartet, bis die Arbeitslast steigt, bevor sie die Rechenressourcen aufstockt. Das bedeutet, dass es eine leichte Verzögerung gibt: eine kurze Zeitspanne, in der die Arbeitslast höher ist, aber noch nicht mehr Kapazität verfügbar ist. Wenn die Arbeitslast schnell ansteigt, kann dies zu Problemen führen, und die Leistung der Clients kann sich verschlechtern.
Die vorausschauende Skalierung behebt einen potenziellen Fehler der reaktiven Skalierung – die leichte Verzögerung bei der Skalierung von Rechenressourcen, wenn die Arbeitslast schnell ansteigt. Um dem entgegenzuwirken, nutzt die prädiktive Skalierung die Analyse historischer Daten, um Muster der Ressourcennutzung zu erkennen, und sagt voraus, wann die Arbeitslasten steigen werden. Das System erweitert die Serverkapazität proaktiv, kurz bevor der erwartete Anstieg eintritt, und sorgt so für eine reibungslose Bewältigung von Lastspitzen.
Predictive Scaling ist der ausgefeilteste Ansatz unter den drei Optionen, aber auch der am schwierigsten zu implementierende. Cloud-Anbieter wie AWS haben beispielsweise Predictive Scaling eingeführt, um die Autoscaling-Funktionen ihrer Dienste zu verbessern.
Die Autoscaling-Technologie entwickelt sich ständig weiter, angetrieben durch kontinuierliche Bemühungen, ihre Fähigkeiten und Leistung zu verbessern. Eine vielversprechende Richtung für die Zukunft ist die Integration mehrerer Skalierungsrichtlinien gleichzeitig. Beispielsweise könnte eine Webanwendung sowohl reaktive als auch prädiktive Skalierung nutzen, um dynamisch auf unmittelbare Änderungen des Datenverkehrs zu reagieren, während sie gleichzeitig von der Analyse historischer Daten profitiert, um künftige Anforderungen genau vorherzusehen.
Forscher und Anbieter arbeiten aktiv an der Entwicklung von Best Practices für die effektive Kombination von Skalierungsstrategien. Durch die Optimierung der Synergie zwischen diesen Richtlinien können Unternehmen hervorragende Ergebnisse erzielen, die auf ihre spezifischen Anwendungen zugeschnitten sind. Es wird erwartet, dass Autoscaling eine kritische Komponente der Web-Sicherheit bleiben wird, die eine entscheidende Rolle dabei spielt, sicherzustellen, dass Web-Anwendungen unterschiedliche Verkehrslasten effizient und sicher bewältigen können.
Die heutigen Autoscaler sind leistungsstark und ausgereift, aber die Anbieter arbeiten weiter daran, sie noch besser zu machen.
Autoscaling ermöglicht es Webanwendungen, die Rechenressourcen dynamisch an die Anforderungen des Datenverkehrs anzupassen. Es ist eng mit dem Lastausgleich verknüpft, um eine effiziente Verteilung der Arbeitslast auf die Server zu gewährleisten. Verschiedene Skalierungsstrategien, wie geplante, reaktive und prädiktive Skalierung, bieten unterschiedliche Ansätze zur Anpassung der Serverkapazität. Die Zukunft der automatischen Skalierung sieht vielversprechend aus, da sie sich durch die laufende Forschung und das Streben nach optimaler Leistung und Sicherheit bei Webanwendungen ständig weiterentwickelt.
Schließlich spielt die Autoskalierung auch eine immer wichtigere Rolle für die Web-Sicherheit. Eine Lösung, die DDoS-Angriffe abwehrt, sollte beispielsweise in der Lage sein, sich selbst zu skalieren, um das hohe Volumen des eingehenden Datenverkehrs zu bewältigen. Und auch intensivere Arbeitslasten wie die Verhaltensanalyse können von der Ressourcenoptimierung profitieren, die die automatische Skalierung bietet.