Zum Inhalt springen

Den App AutoScaler verwenden

Zuletzt aktualisiert am

In diesem Thema erfahren Sie, wie Sie den App AutoScaler verwenden. Cloud Foundry bietet Ihnen eine einfache Elastizität für Ihre Anwendungen. Sie können Anwendungsinstanzen nach Bedarf hoch- und herunterskalieren. Mit dem Service App AutoScaler lässt sich dieser Prozess anhand eines von Ihnen definierten Regelwerks auch automatisieren.

Die Service-Komponente App AutoScaler basiert auf einem Open-Source-Projekt. Den Quellcode finden Sie im öffentlichen App AutoScaler Repository.

Der App AutoScaler bietet die Möglichkeit, die Rechenressourcen für Cloud Foundry Anwendungen anzupassen durch:

  • Dynamische Skalierung auf Basis von Anwendungs-Performance-Metriken
  • Zeitgesteuerte Skalierung auf Basis von Zeitplänen

Der App AutoScaler sorgt dafür, dass Ihre Anwendung die richtige Anzahl an Instanzen hat, um die Servicequalität zu halten und nur die Ressourcen zu nutzen, die Sie wirklich benötigen. Mit der Auto-Scaling-Funktion profitieren Sie von folgenden Vorteilen:

  • Bessere Servicequalität: Auto-Scaling überwacht die Performance Ihrer Anwendung und skaliert sie horizontal nach oben oder unten, passend zum Ressourcenbedarf. So kann das in der Richtlinie definierte Servicequalitätsziel eingehalten werden.
  • Höhere Verfügbarkeit: Auto-Scaling hilft, bei vorhersehbaren Lastspitzen rechtzeitig genügend Instanzen bereitzustellen. Dadurch werden Überlastung und Anwendungsabstürze während Lastspitzen vermieden.
  • Kostensenkung: Auto-Scaling ermöglicht es Ihnen, nur für die Ressourcen zu zahlen, die Sie wirklich benötigen. Sie müssen keine starre Kapazitätsplanung mit fester Instanzanzahl vornehmen. Es spart Kosten, indem neue Instanzen nur bei Bedarf gestartet und bei Nichtbedarf wieder entfernt werden.

Der App AutoScaler wird als Cloud Foundry Service über die Open Service Broker API angeboten. Sie müssen den App AutoScaler Service zuerst über die Cloud Foundry CLI oder das Portal provisionieren und binden.

Terminal-Fenster
cf create-service autoscaler autoscaler-free-plan <service-instance_name>

Sie können die Skalierungsrichtlinie zusammen mit dem Service Binding hinterlegen, indem Sie den Namen der Policy-Datei als Parameter des Service-Binding-Befehls angeben.

Terminal-Fenster
cf bind-service <app_name> <service_instance_name> -c <policy_file_name>

Um den App AutoScaler von Ihrer Anwendung zu trennen, heben Sie das Service Binding der Instanz auf. Dadurch wird auch die Auto-Scaling-Richtlinie entfernt. Wenn keine Anwendung mehr gebunden ist, können Sie die Service-Instanz außerdem deprovisionieren.

Terminal-Fenster
cf unbind-service <app_name> <service_instance_name>
cf delete-service <service_instance_name>

Beispiel für eine JSON-Datei mit Skalierungsrichtlinie:

{
"instance_min_count": 1,
"instance_max_count": 4,
"scaling_rules": [
{
"metric_type": "cpu",
"threshold": 5,
"operator": ">=",
"adjustment": "+1"
},
{
"metric_type": "cpu",
"threshold": 5,
"operator": "<",
"adjustment": "-1"
}
]
}

Der App AutoScaler erwartet eine in JSON geschriebene Policy-Datei mit den folgenden Schemata:

  • cpu - Kurzbezeichnung für “CPU utilization”, also die CPU-Auslastung Ihrer Anwendung in Prozent.
  • memoryused - Absoluter Wert des verwendeten Speichers Ihrer Anwendung. Die Einheit der Metrik memoryused ist “MB”.
  • memoryutil - Kurzbezeichnung für “memory utilization”, also der prozentuale Anteil des verwendeten Speichers am insgesamt für die Anwendung zugewiesenen Speicher. Beispiel: Bei 100 MB Nutzung und 200 MB Speicher-Quota beträgt memoryutil 50%.
  • responsetime - Durchschnittliche Zeit, welche die Anwendung in einem bestimmten Zeitraum zur Beantwortung einer Anfrage benötigt. Die Einheit von responsetime ist “ms” (Millisekunden).
  • throughput - Gesamtzahl verarbeiteter Anfragen in einem bestimmten Zeitraum. Die Einheit von throughput ist “rps” (Requests per second).
  • Benutzerdefinierte Metrik - Sie können einen eigenen Metriknamen definieren und eigene Metriken an den App AutoScaler senden, um weitere dynamische Skalierung auszulösen. Für gültige Metriknamen sind nur Buchstaben, Zahlen und ”_” erlaubt; die maximale Länge beträgt 100 Zeichen.

Wenn sich zwei Zeitpläne überschneiden, wird der zuerst startende Zeitplan garantiert angewendet, während der später startende vollständig ignoriert wird, zum Beispiel:

Schedule #1: ———sssssssssss——————————————
Schedule #2: ——————————ssssssssss————————
Schedule #3: ————————————————sssssssss———

Bei der obigen Definition werden Zeitplan #1 und #3 angewendet, während Zeitplan #2 ignoriert wird.