Überlegungen zur Kapazitätsplanung
- 5 Minuten
Die grundlegende Kapazitätsplanung beginnt mit einigen einfachen Berechnungen, aber es gibt Faktoren, die den Prozess erschweren können. Zusätzlich zu einfachen aktuellen und vorhergesagten Nutzungszahlen müssen Sie auch die folgenden Überlegungen berücksichtigen:
- Dienstgrenzen und Kontingente
- Kostenbeschränkungen
- Code- und Konfigurationsineffizienzen
- Abhängigkeiten
In dieser Lektion sehen Sie sich an, wie sich diese Überlegungen auf Ihre Kapazitätsplanung auswirken können und wie Sie sich mit den einzelnen Faktoren befassen.
Dienstgrenzen und Kontingente
Es gibt eine Tendenz, Cloud Computing als unbegrenzte Ressource zu sehen. Im Vergleich zu herkömmlichen Server-/Rechenzentrumsmodellen scheint die Kapazität der Cloud unendlich zu sein. Die Cloud bietet eine ganz neue Skalierungsebene. Wie alles andere hat es jedoch einige Grenzen. Die Kapazitätsplanung umfasst das Verständnis, wenn Sie diese Dienstgrenzwerte erreichen werden.
Wenn Sie sich Ihr System und ihre Architektur ansehen, müssen Sie die Grenzwerte für die von Ihnen verwendeten Clouddienste verstehen. Sie können beispielsweise standardmäßig maximal 200 VMs pro VM-Verfügbarkeit in Azure festlegen. Dieser Grenzwert scheint möglicherweise mehr als genug VMs zu sein, wenn Sie gerade loslegen. Wenn Sie diesen Grenzwert erreichen, können Sie jedoch keine weiteren virtuellen Computer bereitstellen, was zu einem Ausfall führen könnte.
Ebenso können Sie standardmäßig über 250 Speicherkonten pro Abonnement verfügen, pro Region. Diese Grenzwerte sind beispiele für weiche Grenzwerte, die erhöht werden können. Einige Dienste haben jedoch maximale Grenzwerte, die Sie unter dem folgenden Link finden können.
Azure-Abonnement- und Dienstbeschränkungen, Kontingente und Einschränkungen
Diese Grenzwerte und Kontingente sind etwas, auf die man achten und die man überwachen sollte. Sehen wir uns die Möglichkeiten an, dies zu tun.
Azure-Portal
Sie können die Dienstkontingente und deren Position im Abschnitt "Nutzung + Kontingente " unter "Abonnements –> Einstellungen " im Navigationsbereich anzeigen. Sie können nach Dienstkategorie wie Netzwerk/Compute und Azure-Region filtern. Es wird angezeigt, wo Sie sich im Abgleich mit den Grenzwerten befinden.
Über Code
Sie können den Usage - List Endpunkt für jeden Azure-Dienst verwenden, um die aktuellen Informationen zur Ressourcennutzung abzurufen, und die Grenzwerte für die Berechnung von Ressourcen unter dem Abonnement, wie in diesem abgeschnittenen Beispiel gezeigt.
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages?api-version=2023-03-01
{
"currentValue": 124,
"/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/westeurope/usages/VirtualNetworks",
"limit": 1000,
"name": {
"localizedValue": "Virtual Networks",
"value": "VirtualNetworks"
},
"unit": "Count"
}
Sie können sehen, dass die aktuelle Anzahl der verwendeten Azure Virtual Networks (VNets) 124 gegen einen Grenzwert von 1000 beträgt. Das Erhöhen eines Grenzwerts erfordert eine Supportanfrage. Stellen Sie daher sicher, dass Sie vorab wissen, wann Sie dem Schwellenwert nahe kommen können.
Kostenbeschränkungen
Die Skalierung geht nicht nur darum, mehr Ressourcen auf das Problem zu werfen. Es ist wichtig, dass Ihre Organisation die Kosten Ihrer Cloudumgebung versteht und dass das Hinzufügen weiterer Ressourcen im Allgemeinen mehr Kosten entspricht. Beachten Sie diese Kosten und arbeiten Sie mit Ihren Finanzteams zusammen, um sicherzustellen, dass Sie sich über die aktuellen und projizierten Cloudausgaben einig sind.
Sie sollten sowohl beim anfänglichen Entwerfen der Systeme als auch bei regelmäßigen Überprüfungen Ihrer bereits ausgeführten Systeme Kosten prognostizieren. Azure bietet Tools, die Ihnen helfen können:
- Planen Sie die Kosten einer Umgebung mithilfe des Azure-Rechners.
- Überprüfen Sie die aktuellen und projizierten monatlichen Ausgaben im Azure-Portal.
- Richten Sie Budgets in Microsoft Cost Management ein. Mit diesem Tool können Sie Ihre Kosten in verschiedenen Bereichen untersuchen, einschließlich Verwaltungsgruppe, Ressourcengruppe und Abonnement.
Code- und Konfigurationsineffizienzen
Manchmal kann das Leiten weiterer Ressourcen ein Problem lösen, das aber Geld kostet. Manchmal ist die Skalierung nicht die Lösung oder nicht die vollständige Lösung. In einigen Fällen kann es sein, dass das, was scheinbar eine Skalierung sein muss, tatsächlich ein Problem ist, das durch schlechte Codierung oder Konfiguration verursacht wird.
Sie können potenziell Geld und Zeit sparen, indem Sie die Fehler zuerst finden, bevor Sie Ressourcen skalieren. Einige Beispiele für diesen Ansatz sind:
- Wenn Sie über eine schlecht gestaltete Datenbank mit heißen Partitionen verfügen, z. B. nur eine Partition in einer riesigen noSQL-Datenbank verwenden, ist es langsam, unabhängig davon, wie viel Sie skalieren.
- Wenn Sie über ineffiziente Datenbankabfragen verfügen, machen Sie sie effizienter, bevor Sie mehr Ressourcen an die Datenbank auslösen. Manchmal können Sie einfach den richtigen Index zu einer Datenbank hinzufügen, die auf allgemeinen Abfragen basiert, Ihre Kosten 100x senken.
- Wenn Ihre Timeouts falsch eingestellt sind, können Ihre Datenbankverbindungen aufgrund von durch inkonsistente Timeouts zwischen Server und Datenbank verursachten Wiederholungsversuchen überlastet werden. In diesem Fall müssen Sie die Einstellungen vor der Skalierung der Datenbank korrigieren.
- Wenn der Code des Entwicklers ineffizient ist, können Sie effizienteren Code schreiben, um das Problem zu beheben? Möglicherweise gibt der Code keinen Freien Arbeitsspeicher frei, wenn er möglich ist, daher haben Sie größere Arbeitsspeicher-VMs verwendet, wenn dies nicht erforderlich ist. Maßnahmen wie diese können erhebliche Kosteneinsparungen bewirken.
Abhängigkeiten
Die Änderungen, die erforderlich sind, um einige der in diesem Modul beschriebenen Probleme zu beheben, weisen häufig Abhängigkeiten von den Entwicklern Ihrer Anwendung auf. Einige der hier empfohlenen Lösungen und bewährten Methoden erfordern die Zusammenarbeit zwischen Ihnen und diesen Entwicklern, um dies zu ermöglichen.
Möglicherweise sind Sie nicht in der Lage, alle diese Empfehlungen vollständig selbst zu implementieren. Wenn Sie jedoch das Cloudsystem und seine Funktionen und Merkmale verstehen, können Sie ein Treiber für Veränderungen bei der Verbesserung Ihrer Systeme und deren Skalierbarkeit und Zuverlässigkeit werden.