Berücksichtigen Sie bei jeder Art der Skalierung die Architektur Ihrer Anwendung und welche Optimierungen möglich sind. Statische Inhalte sollten beispielsweise über optimierte Content Delivery Networks bereitgestellt werden, die Preis- und Leistungsvorteile bieten. Zusätzliches Caching für das Datenspeicher-Back-End kann ebenfalls die Leistung verbessern und die Anforderungen an eine teure Skalierung minimieren.
Leistungstests und Benchmarks
Mit Benchmarking und Leistungstests können Sie potenzielle Leistungsengpässe während der Entwicklung erkennen, Trends im Zeitverlauf verfolgen und durch den Vergleich von Architekturen, Technology Stacks, Cloud-Anbietern oder anderen Optionen Entscheidungen treffen.
Bei Lasttests werden vordefinierte, kontrollierte Typen von Lasten, Traffic oder Daten verwendet, um die Leistung Ihres Back-Ends im Hinblick auf Ihre Ziele zu messen. Sie können sehen, wie sich verschiedene Laststufen auf die Leistung Ihrer Anwendung auswirken.
Bei Skalierbarkeitstests geht es um die Analyse der Fähigkeit Ihrer Anwendung zum Skalieren und Hochskalieren. Skalierbarkeitstests zeigen, wie Ihre Anwendung auf erhöhte Lasten reagiert und wie sich das Back-End (einschließlich Datenspeicher) anpasst.
Definieren Sie klare Ziele, bevor Sie mit dem Benchmarking der Anwendung beginnen, einschließlich Leistung und Geschwindigkeit (z. B. Latenz, Durchsatz, Geschwindigkeit), Ressourcenauslastung (CPU-Auslastung, Arbeitsspeichernutzung, Netzwerkverkehr zwischen Back-End-Komponenten) und Kosten. Berücksichtigen Sie Verzögerungen bei der Skalierung, z. B. wenn die Anwendung bei Bursts oder Trafficspitzen über eine zugewiesene Gruppe von „Reserve“-Ressourcen hinaus skaliert werden muss.
Für Benchmarking und Leistungstests stehen viele Tools zur Verfügung, z. B. Apache JMeter und Locust. Überlegen Sie bei der Auswahl eines Testtools, welche Testtypen verfügbar sind, einschließlich der Frage, ob Sie Unterstützung für Skripts, IDE-Integrationen für das Debugging benötigen, zusätzliche Plug-ins oder Unterstützung für die Art des Traffics und die Skalierung, die getestet werden sollen.
Wenn Sie einen Cloud-Anbieter nutzen, ermitteln Sie, ob es für die Lasttests zusätzliche Anforderungen oder Best Practices gibt, um potenzielle Einschränkungen zu vermeiden. Sehen Sie sich beispielsweise die Best Practices für Cloud Run an.
Kosten- und Leistungsaspekte
Das Hochskalieren ist zwar für die Verbesserung der Leistung unerlässlich, das Herunterskalieren sollte jedoch auch eine Überlegungen zur Kostenminimierung sein. Berücksichtigen Sie die Grundkosten Ihrer Back-End-Anwendung ohne Anfragen und die Kosten für das Hochskalieren der Anwendung.
Möglicherweise gelten feste Kosten für lokale oder serverbasierte Architekturen, unabhängig von der Auslastung. In einigen Cloud-Umgebungen können Sie auf null skalieren, um Kosten zu vermeiden, wenn keine Anfragen gesendet werden. Cloud-Anbieter stellen Rechner zur Verfügung, mit denen Sie verschiedene Konfigurationen und Preisstrategien untersuchen können, z. B. vorab Zusicherungen für Ressourcen.