Sprache auswählen

COLA: Kollektive Autoskalierung für Cloud-Microservices

Analyse von COLA, einem neuartigen Autoscaler für Microservice-Anwendungen, der die VM-Zuweisung global optimiert, um Kosten zu minimieren und gleichzeitig End-to-End-Latenzziele einzuhalten.
apismarket.org | PDF Size: 1.6 MB
Bewertung: 4.5/5
Ihre Bewertung
Sie haben dieses Dokument bereits bewertet
PDF-Dokumentendeckel - COLA: Kollektive Autoskalierung für Cloud-Microservices

1. Einführung

Der Wechsel von monolithischen Architekturen zu lose gekoppelten Microservices in Cloud-Anwendungen führt zu einer erheblichen Komplexität im Ressourcenmanagement. Entwickler müssen entscheiden, wie viele Rechenressourcen (z. B. Container-Replikate, VMs) jedem Microservice zugewiesen werden sollen. Diese Entscheidung beeinflusst sowohl die Betriebskosten für den Entwickler als auch die End-to-End-Latenz, die der Anwendungsnutzer erlebt, entscheidend. Traditionelle Autoskalierungsmethoden, wie das Horizontal Pod Autoscaling (HPA), skalieren jeden Microservice unabhängig basierend auf lokalen Metriken wie der CPU-Auslastung. Dieser Ansatz ist jedoch suboptimal, da er die voneinander abhängige Natur von Microservices innerhalb eines Anwendungsworkflows ignoriert. COLA (Collective Autoscaler) wird als Lösung vorgeschlagen, die Ressourcen über alle Microservices hinweg mit einem globalen Ziel kollektiv zuweist: Minimierung der Kosten bei gleichzeitiger Einhaltung einer spezifischen Zielvorgabe für die End-to-End-Latenz der Anwendung.

2. Das Problem der unabhängigen Autoskalierung

Der aktuelle Industriestandard für Autoskalierung arbeitet verteilt und pro Microservice. Jeder Dienst löst Skalierungsaktionen (Hinzufügen/Entfernen von VMs oder Pods) aus, wenn seine eigene Ressourcenauslastung (CPU, Arbeitsspeicher) einen Schwellenwert überschreitet. Der grundlegende Fehler ist, dass diese lokale Sichtweise die globale Leistung der Anwendung nicht berücksichtigt. Die Verbesserung der Latenz eines Microservices kann einen vernachlässigbaren Einfluss auf die insgesamt wahrgenommene Latenz des Nutzers haben, wenn ein anderer Dienst in der Kette ein Engpass bleibt. Dies führt zu einer ineffizienten Ressourcenzuweisung – einige Dienste werden überdimensioniert, während kritische Engpässe unterdimensioniert bleiben – was zu höheren Kosten führt, ohne das gewünschte Latenz-Service Level Objective (SLO) zu erreichen.

3. COLA: Der kollektive Autoskalierungsansatz

COLA formuliert das Autoskalierungsproblem als Optimierungsproblem mit Nebenbedingungen neu. Es ersetzt mehrere unabhängige Autoscaler durch einen einzigen, zentralisierten Controller, der eine globale Sicht auf die Microservice-Topologie und -Leistung der Anwendung hat.

3.1. Kern-Optimierungsframework

Das Ziel wird wie folgt formalisiert:

  • Ziel: Minimierung der gesamten Rechenkosten.
  • Nebenbedingung: Mittlere oder Tail-Latenz (z. B. p95) der Anwendung End-to-End ≤ Ziel-Latenz.
  • Entscheidungsvariablen: Anzahl der VMs (oder Replikate), die jedem Microservice $i$ zugewiesen werden, bezeichnet als $n_i$.

Dies ist ein komplexes, nichtlineares Optimierungsproblem, da der Zusammenhang zwischen $n_i$ und der End-to-End-Latenz nicht direkt ist und von Workload-Mustern und der Kommunikation zwischen Diensten abhängt.

3.2. Offline-Suchprozess

Die Online-Lösung dieser Optimierung ist aufgrund der für die Bereitstellung und Leistungsstabilisierung benötigten Zeit unpraktikabel. Daher setzt COLA einen Offline-Suchprozess ein:

  1. Workload-Anwendung: Anwendung einer repräsentativen Arbeitslast auf die Anwendung.
  2. Engpassidentifikation: Identifizierung des am stärksten ausgelasteten Microservices (größter Anstieg der CPU-Auslastung unter Last).
  3. Ressourcenzuweisung via Banditenproblem: Für den Engpassdienst wird die optimale Anzahl von VMs mithilfe einer Multi-Armed-Bandit-Formulierung bestimmt. Die "Belohnungs"-Funktion balanciert Latenzverbesserung gegen Kostensteigerung.
  4. Iteration: Wiederholung der Schritte 2-3 für den nächstausgelasteten Microservice, bis das globale Latenzziel erreicht ist.
  5. Policy-Generierung: Das Ergebnis ist eine Skalierungsrichtlinie (eine Abbildung von Workload-Charakteristiken auf Ressourcenzuweisungen), die online eingesetzt werden kann.

COLA kann zwischen bekannten Workloads interpolieren und auf Standard-Autoscaler zurückfallen, wenn es auf ein unbekanntes Workload-Muster trifft.

4. Technische Details & Mathematische Formulierung

Das Kernoptimierungsproblem kann abstrakt dargestellt werden als:

$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{unter der Nebenbedingung: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ Wobei:

  • $M$: Anzahl der Microservices.
  • $n_i$: Anzahl der Ressourceneinheiten (z. B. VMs) für Microservice $i$.
  • $C_i(n_i)$: Kostenfunktion für Microservice $i$ mit $n_i$ Einheiten.
  • $L_{e2e}$: End-to-End-Latenzfunktion, abhängig von allen $n_i$ und der Workload-Intensität $\lambda$.
  • $L_{target}$: Das gewünschte Latenz-SLO.
Das "Banditenproblem" in Schritt 3 der COLA-Suche beinhaltet die Behandlung jeder möglichen VM-Zuweisung für den Engpassdienst als einen "Arm". Das Ziehen eines Arms entspricht der Bereitstellung dieser Konfiguration und der Messung des resultierenden Kosten-Latenz-Kompromisses. Algorithmen wie Upper Confidence Bound (UCB) können verwendet werden, um den Konfigurationsraum effizient zu erkunden und auszunutzen.

5. Experimentelle Ergebnisse & Auswertung

COLA wurde auf Google Kubernetes Engine (GKE) rigoros gegen mehrere Baseline-Autoscaler (nutzungsbasiert und ML-basiert) evaluiert.

5.1. Experimenteller Aufbau

  • Anwendungen: 5 Open-Source-Microservice-Anwendungen (z. B. Simple WebServer, BookInfo, Online Boutique).
  • Plattformen: GKE Standard (benutzergemanagte Nodes) und GKE Autopilot (anbietergemanagte Infrastruktur).
  • Baselines: Standard-HPA (CPU-basiert), fortgeschrittene ML-basierte Autoscaler.
  • Workloads: 63 verschiedene Workload-Muster.
  • Ziel: Einhaltung eines spezifizierten Median- oder Tail-Latenz-SLOs (z. B. p95).

5.2. Wichtige Leistungskennzahlen

SLO-Erreichung

53/63

Workloads, bei denen COLA das Latenzziel erreichte.

Durchschnittliche Kostenreduktion

19,3%

Im Vergleich zum nächstgünstigsten Autoscaler.

Kosteneffizienteste Policy

48/53

COLA war für 48 der 53 erfolgreichen Workloads der günstigste.

Optimalität bei kleinen Apps

~90%

Für kleinere Anwendungen, bei denen eine erschöpfende Suche möglich war, fand COLA in ~90% der Fälle die optimale Konfiguration.

5.3. Zusammenfassung der Ergebnisse

Die Ergebnisse zeigen den deutlichen Vorteil von COLA. Es erreichte konsistent das gewünschte Latenz-SLO, wo andere scheiterten, und das zu deutlich geringeren Kosten. Die Kosteneinsparungen waren so ausgeprägt, dass die "Trainingskosten" für den Offline-Suchprozess von COLA innerhalb weniger Betriebstage amortisiert wurden. Auf GKE Autopilot waren die Vorteile von COLA noch deutlicher, da es die anbietergemanagte Abstraktion effektiv nutzte, um Kosten zu minimieren.

Diagrammbeschreibung (fiktiv): Ein Balkendiagramm würde wahrscheinlich "Kosten pro erfolgreicher Anfrage" oder "Gesamt-Cluster-Kosten" auf der Y-Achse und verschiedene Autoscaler (COLA, HPA, ML-A) auf der X-Achse zeigen. Der Balken von COLA wäre deutlich niedriger. Ein zweites Diagramm könnte die "Latenz-SLO-Verletzungsrate" zeigen, wobei der Balken von COLA gegen Null geht, während andere höhere Verletzungsraten aufweisen.

6. Analyseframework & Beispielszenario

Analystenperspektive: Eine vierstufige Dekonstruktion

Kern-Erkenntnis: Der grundlegende Durchbruch der Arbeit ist kein ausgefallener neuer Algorithmus, sondern eine kritische Perspektivenverschiebung: Die gesamte Microservice-Anwendung wird als ein zu optimierendes System behandelt, nicht als Sammlung unabhängiger Teile. Dies ist analog zur Verschiebung in der Computer Vision durch Modelle wie CycleGAN (Zhu et al., 2017), die über die paarweise Bildübersetzung hinausgingen, indem sie die Zyklenkonsistenz des gesamten Transformationsbereichs betrachteten. COLA wendet ein ähnliches "Globale-Konsistenz"-Prinzip auf das Ressourcenmanagement an.

Logischer Ablauf: Das Argument ist überzeugend einfach: 1) Lokale Optima (pro-Dienst-Skalierung) summieren sich zu einer globalen Ineffizienz. 2) Daher verwende ein globales Ziel (Kosten) mit einer globalen Nebenbedingung (End-to-End-Latenz). 3) Da die Online-Lösung zu langsam ist, löse sie offline via Suche und setze die Richtlinie ein. Die Eleganz liegt in der Verwendung des Banditenproblems, um die Suche nach der optimalen Zuweisung für den Engpass effizient zu gestalten – eine Technik, die durch umfangreiche Forschung im Bereich Reinforcement Learning für Systemoptimierung (z. B. Arbeiten aus dem RISELab der UC Berkeley) gestützt wird.

Stärken & Schwächen: Stärken: Die empirischen Ergebnisse sind herausragend – eine Kostenreduktion von 19,3% ist eine Kennzahl für die Vorstandsetage. Der Offline-Ansatz ist pragmatisch und vermeidet Laufzeitinstabilität. Das Framework ist plattformunabhängig. Schwächen: Die Achillesferse ist die Abhängigkeit von repräsentativen Offline-Workloads. In sich schnell entwickelnden Anwendungen oder bei "Schwarzer-Schwan"-Verkehrsereignissen kann die vorberechnete Richtlinie veraltet oder katastrophal sein. Der Rückfall auf Standard-Autoscaler im Paper ist ein Pflaster, keine Heilung für dieses Robustheitsproblem. Darüber hinaus skaliert die Suchkomplexität wahrscheinlich schlecht mit der Anzahl der Microservices, was die Verwendung in extrem großen, komplexen Anwendungen einschränken könnte.

Umsetzbare Erkenntnisse: Für Cloud-Architekten ist die Botschaft klar: Hören Sie auf, CPU-Schwellenwerte isoliert zu setzen. Investieren Sie in den Aufbau oder die Übernahme von globaler Performance-Observability und einer zentralisierten Entscheidungs-Engine. Beginnen Sie mit einem hybriden Ansatz: Nutzen Sie die Philosophie von COLA, um kritische Dienstketten zu definieren und dort kollektive Skalierung anzuwenden, während weniger kritische, unabhängige Dienste auf traditionellem HPA bleiben. Die Kapitalrendite, wie gezeigt, kann schnell erfolgen. Cloud-Anbieter sollten Notiz nehmen; Tools wie GKE Autopilot benötigen solche intelligenten Orchestrierungsebenen, um das Versprechen einer "gemanagten" Infrastruktur wirklich einzulösen.

7. Anwendungsausblick & Zukünftige Richtungen

Die Prinzipien hinter COLA haben eine breite Anwendbarkeit über die grundlegende VM-Skalierung hinaus:

  • Multi-Ressourcen- & Heterogene Skalierung: Zukünftige Versionen könnten kollektiv über VM-Größe (speicher- vs. rechenoptimiert), GPU-Zuweisung und sogar Platzierung über Verfügbarkeitszonen oder Cloud-Anbieter hinweg für Kosten und Resilienz entscheiden.
  • Integration mit Service Meshes: Die Kopplung von COLA mit einem Service Mesh (wie Istio) würde reichhaltigere Telemetrie (Anfrage-Level-Tracing, Abhängigkeitsgraphen) bieten und sogar die direkte Kontrolle über Traffic-Routing und Circuit Breaking als Teil der Optimierung ermöglichen.
  • Online-Anpassung & Meta-Lernen: Die große Forschungsfront ist die Überwindung der Offline-Beschränkung. Techniken aus dem Meta-Learning könnten es COLA ermöglichen, seine Richtlinie online basierend auf Echtzeit-Feedback schnell anzupassen oder während verkehrsarmer Zeiten sicher neue Konfigurationen zu erkunden.
  • Green-Computing-Ziele: Das Optimierungsziel könnte erweitert werden, um den CO2-Fußabdruck oder Energieverbrauch zu minimieren und sich mit Initiativen für nachhaltiges Computing in Einklang zu bringen, indem Daten aus Quellen wie dem Cloud Carbon Footprint-Projekt einbezogen werden.
  • Marktplatz für Richtlinien: Für gängige Anwendungsmuster (z. B. E-Commerce, Media-Streaming) könnten voroptimierte COLA-Richtlinien geteilt oder verkauft werden, was den Bedarf an individuellen Trainingsläufen reduziert.

8. Referenzen

  1. Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
  2. Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
  3. Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
  4. Hoffman, M., Shahriari, B., & Aslanides, J. (2020). Addressing Function Approximation Error in Actor-Critic Methods. Proceedings of the 37th International Conference on Machine Learning (ICML). (Beispiel für fortgeschrittenes RL, relevant für Online-Anpassung).
  5. Cloud Carbon Footprint. (n.d.). An open source tool to measure and visualize the carbon footprint of cloud usage. Abgerufen von https://www.cloudcarbonfootprint.org/.
  6. Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at Google with Borg. Proceedings of the European Conference on Computer Systems (EuroSys).