Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tipp
Dieser Inhalt ist ein Auszug aus dem eBook, Architecting Cloud Native .NET Applications for Azure, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.
Es gibt zwei Möglichkeiten zum Skalieren einer Anwendung: nach oben oder unten. Der erste bezieht sich auf das Hinzufügen von Kapazität zu einer einzelnen Ressource, während letzteres auf das Hinzufügen weiterer Ressourcen zum Erhöhen der Kapazität verweist.
Die einfache Lösung: Skalieren nach oben
Das Upgrade eines vorhandenen Hostservers mit erhöhter CPU-, Arbeitsspeicher-, E/A-Geschwindigkeit und Netzwerk-E/A-Geschwindigkeit wird als Skalierung bezeichnet. Die Skalierung einer cloud-native Anwendung umfasst die Auswahl leistungsfähigerer Ressourcen des Cloudanbieters. Sie können beispielsweise einen neuen Knotenpool mit größeren VMs in Ihrem Kubernetes-Cluster erstellen. Migrieren Sie dann Ihre containerisierten Dienste in den neuen Pool.
Serverlose Apps skalieren, indem Sie den Premium-Funktionsplan oder Premium-Instanzgrößen von einem dedizierten App-Service-Plan auswählen.
Skalieren von cloudeigenen Apps
Cloud-native Anwendungen erleben häufig große Nachfrageschwankungen und erfordern eine gewisse Skalierung. Sie bevorzugen das Skalieren. Das Skalieren erfolgt horizontal, indem zusätzliche Computer (als Knoten bezeichnet) oder Anwendungsinstanzen zu einem vorhandenen Cluster hinzugefügt werden. In Kubernetes können Sie manuell skalieren, indem Sie Die Konfigurationseinstellungen für die App (z. B. das Skalieren eines Knotenpools) oder die automatische Skalierung anpassen.
AKS-Cluster können auf zwei Arten automatisch skalieren:
Zuerst überwacht die Horizontale Pod-Autoskalierung den Ressourcenverbrauch und passt die Anzahl Ihrer Pod-Replikate automatisch an, um diesem gerecht zu werden. Wenn der Datenverkehr zunimmt, werden automatisch zusätzliche Replikate bereitgestellt, um Ihre Dienste zu skalieren. Ebenso werden sie entfernt, wenn die Nachfrage verringert wird, um Ihre Dienste zu skalieren. Sie definieren die Metrik, auf die skaliert werden soll, z. B. die CPU-Auslastung. Sie können auch die minimale und maximale Anzahl von Replikaten angeben, die ausgeführt werden sollen. AKS überwacht diese Metrik und skaliert entsprechend.
Als Nächstes können Sie mit der AKS Cluster AutoScaler-Funktion Computeknoten automatisch über einen Kubernetes-Cluster skalieren, um die Anforderungen zu erfüllen. Damit können Sie dem zugrunde liegenden Skalierungssatz für virtuelle Azure-Computer automatisch neue VMs hinzufügen, wenn mehr Rechenkapazität erforderlich ist. Außerdem werden Knoten entfernt, wenn sie nicht mehr benötigt werden.
Abbildung 3-11 zeigt die Beziehung zwischen diesen beiden Skalierungsdiensten.
Abbildung 3-11. Skalieren eines App Service-Plans.
In Zusammenarbeit stellen beide eine optimale Anzahl von Containerinstanzen und Computeknoten sicher, um schwankende Anforderungen zu unterstützen. Die automatische horizontale Podskalierung optimiert die Anzahl der erforderlichen Pods. Die Cluster-Autoskaler optimiert die Anzahl der erforderlichen Knoten.
Skalieren von Azure-Funktionen
Azure Functions wird bei Bedarf automatisch aufskaliert. Serverressourcen werden basierend auf der Anzahl der ausgelösten Ereignisse dynamisch zugewiesen und entfernt. Ihnen werden nur die Rechenressourcen berechnet, die bei der Ausführung Ihrer Funktionen verbraucht werden. Die Abrechnung basiert auf der Anzahl der Ausgeführten, Ausführungszeit und des verwendeten Arbeitsspeichers.
Während der Standardverbrauchsplan eine wirtschaftliche und skalierbare Lösung für die meisten Apps bietet, ermöglicht die Premium-Option Entwicklern flexibilität für benutzerdefinierte Azure Functions-Anforderungen. Das Upgrade auf den Premium-Plan bietet Kontrolle über Instanzengrößen, vorgewärmte Instanzen (um Kaltstartverzögerungen zu vermeiden) und dedizierte VMs.