Entwurf zur Erfüllung der Kapazitätsanforderungen

Abgeschlossen
Stellen Sie ein ausreichendes Angebot zur Erfüllung der erwarteten Nachfrage bereit.

Es ist wichtig, die Leistung proaktiv zu messen. Die Messung der Leistung beinhaltet die Messung von Baselines und eine erste Einschätzung der Systemkomponenten, die wahrscheinlich Probleme bereiten werden. Sie können dies ohne einen vollständigen Leistungstest oder durch granulare Optimierung erreichen. Mit diesen ersten Schritte schaffen Sie frühzeitig im Entwicklungslebenszyklus eine Grundlage für ein effektives Leistungsmanagement.

Untersuchen Sie das System als Ganzes, statt sich auf einzelne Komponenten zu konzentrieren. Vermeiden Sie in dieser Phase Optimierungen. Granulare Leistungsverbesserungen führen zu Abstrichen in anderen Bereichen. Wenn Sie den Lebenszyklus durchlaufen und mit dem Testen der Benutzerakzeptanz beginnen oder sich auf die Produktion zubewegen, können Sie schnell feststellen, welche Bereiche weiter optimiert werden müssen.

Beispielszenario

Contoso Manufacturing hat eine intern verwendete, auf Java Spring basierende Microservices-App entwickelt, die zum Überwachen und Optimieren der Fertigungsprozesse eingesetzt wird. Das Workloadteam ist gerade dabei, die App, die derzeit lokal gehostet wird, zu Azure zu migrieren.

Die in Azure gehostete App basiert auf Azure Spring Apps, Azure Database for MySQL und Azure IoT Hub. Contoso verfügt über eine ExpressRoute-Verbindung mit Azure.

Effektives Entwerfen der Workload

Wählen Sie für den Technologiestapel die richtigen Ressourcen aus, die es Ihnen ermöglichen, die Leistungsziele zu erreichen, und die sich in das System integrieren lassen. Berücksichtigen Sie Features, die die Skalierbarkeitsanforderungen erfüllen können, und finden Sie das richtige Gleichgewicht zwischen Ressourcenzuordnung und Systemanforderungen, um unerwartete Spitzen effizient zu bewältigen.

Durch die Analyse der unterschiedlichen Funktionen der Ressourcen stellen Sie sicher, dass jede Komponente zur Gesamtfunktionalität und -leistung des Systems beiträgt, und können Sie Skalierungsfunktionen identifizieren, die Sie nutzen können.

Durch die richtige Dimensionierung der Ressourcen können Schwankungen der Nachfrage ohne Überdimensionierung ausgeglichen werden, was zu Kosteneinsparungen führt.

Herausforderung von Contoso

  • Die vorhandene lokale App-Umgebungsinfrastruktur wird vollständig von Contoso verwaltet, was eine erhebliche Belastung für das Team darstellt. Sie kümmern sich derzeit um die Bereitstellung und Wartung von Servern, Netzwerken und Speicher sowie um die Konfiguration und Aktualisierung der Java Spring Service Runtime und aller Abhängigkeiten.
  • Das Team freut sich auf die Migration zu einem PaaS-Modell mit Azure Spring Apps, die es dem Team ermöglicht, mehr Energie darauf zu verwenden, sicherzustellen, dass die Anwendung den beabsichtigten Geschäftswert liefert, und weniger Zeit für die Verwaltung der Infrastruktur aufzuwenden.
  • Diese Anwendung ist für das Contoso geschäftskritisch und hat strenge Leistungsanforderungen. Daher muss das Unternehmen sicherstellen, dass die im Rahmen der Migration getroffenen technologischen Entscheidungen die Erfüllung dieser Anforderungen ermöglichen.

Umsetzung und Ergebnisse

  • Nach dem Vergleich der verschiedenen verfügbaren Pläne entscheidet sich das Team für den Azure Spring Apps Standard-Plan, der einen vollständig verwalteten Dienst für Spring Boot-Apps bereitstellt, der für den Produktionsdatenverkehr optimiert ist. Mit maximal 500 Instanzen pro App kann der Standardplan genügend Rechenkapazität für den erwarteten Maximalverbrauch bereitstellen.
  • Überdies lässt sich der Dienst so konfigurieren, dass er bei Bedarf aufskaliert wird und Computeressourcen abskaliert, wenn die zusätzliche Kapazität nicht benötigt wird.
  • Das Team sah sich den Enterprise-Plan an, der eine Skalierung auf bis zu 1.000 Instanzen pro App ermöglicht, entschied jedoch, dass diese Menge an Kapazität an diesem Zeitpunkt nicht benötigt wird. Sie sind auch sicher, dass sie weder den Umfang an Support noch die restlichen exklusiven Features des Enterprise-Plans benötigen.

Richtige Vorhersagen der Kapazitätsanforderungen

Führen Sie eine Kapazitätsplanung auf der Grundlage des Bedarfs und der Kapazität ausgewählter Ressourcen durch, um Ihr Leistungsmodell zu erweitern. Verwenden Sie Vorhersagemodellierungstechniken, um voraussichtliche Kapazitätsänderungen zu prognostizieren, die bei vorhersagbaren und unerwarteten Änderungen auftreten können. Definieren Sie Leistungsziele, die sich in technische Anforderungen übersetzen lassen.

Mit diesem Ansatz können Sie Ressourcen effizient nutzen und den Bedarf ohne Überbereitstellung erfüllen, sodass unnötige Kosten vermieden werden. Überdies können Sie so leichter verstehen, wie sich Entwurfsentscheidungen auf die Leistung auswirken.

Herausforderung von Contoso

  • Um die Effizienz der Produktionsanlagen zu maximieren, arbeitet die Produktionslinie von Contoso nach einem zyklischen Zeitplan, wobei verschiedene Produkte zu unterschiedlichen Tageszeiten hergestellt werden.
  • Jedes Produkt erfordert unterschiedliche Vorgänge und hat somit unterschiedliche Rechenanforderungen an die Steuerungsanwendung. Während der Produktumstellung muss die Steuerungsanwendung eine Reihe von Aufgaben erfüllen, die eine erhöhte Computekapazität erfordern, wie z. B. das Analysieren von Daten aus dem vorherigen Produktionslauf und das Aktualisieren der Steuerungsalgorithmen für die Maschinen.

Umsetzung und Ergebnisse

  • Um die höhere Nachfrage während der Umstellungszeiträume zu erfüllen, identifiziert das Team zunächst die Flows, die die Umstellungsfunktionalität verarbeiten, dokumentiert deren Leistungsanforderungen und schätzt deren Transaktionsvolumen auf der Grundlage der lokalen Version der Anwendung. Anhand dieser Daten schätzt das Team die von den Mikroservices, die Teil der Zielflows sind, benötigte Computekapazität.
  • Für diese Komponenten ist eine automatische Skalierung konfiguriert, die sicherstellt, dass zusätzliche Ressourcen vor dem Umstellungszeitraum bereitgestellt und nach Abschluss der Vorgänge freigegeben werden.
  • Die Einstellungen für die automatische Skalierung werden vor der Bereitstellung der App in der Produktion auf der Grundlage der tatsächlichen Leistung in der neuen Umgebung angepasst.

Proof of concept-Bereitstellung

Implementieren Sie einen Proof of Concept (POC), der die technischen Anforderungen und Entwurfsentscheidungen überprüft.

Ein Proof of Concept ist entscheidend für die Überprüfung des Entwurfs, um festzustellen, ob das System die Leistungsziele erfüllen kann und ob diese Ziele realistisch sind. Basierend auf der erwarteten Last können Sie überprüfen, ob die erwartete Kapazität die Leistungsziele erfüllen kann.

Überprüfen Sie auch die Kostenauswirkungen der Entwurfsentscheidungen.

Herausforderung von Contoso

  • Während der Entwicklung führt das Team umfangreiche Last- und Leistungstests der Anwendungsfunktionalität mithilfe von Gerätesimulatoren durch und verwendet diese Informationen, um die Konfiguration der automatischen Skalierung zu optimieren.
  • Ein Aspekt, der sich auf die Effektivität der Konfiguration der automatischen Skalierung auswirken kann, ist die potenzielle Netzwerklatenz bei der Kommunikation zwischen der Azure Spring Apps-Umgebung und den IoT-Geräten im Fertigungsbereich, der über ExpressRoute mit Azure verbunden ist. Das Team vermutet, dass die Latenz in Azure höher ist als für die lokale Version der App, und diese Latenz kann auch von anderen Faktoren beeinflusst werden, z. B. Tageszeit oder Gerätestandort.
  • Ein Anstieg der Latenzzeit würde sich wahrscheinlich auf das Transaktionsvolumen auswirken, das jede Microservice-Instanz verarbeiten kann.

Umsetzung und Ergebnisse

  • Das Team entscheidet, einen POC in Azure bereitzustellen, um diese Hypothesen zu überprüfen, und Metriken zu sammeln, die zur Optimierung der Konfiguration verwendet werden können. Sie erstellen eine Azure Spring Apps-Testanwendung, um mit IoT-Geräten zu kommunizieren, die im Fertigungsbereich verteilt sind. Die IoT-Geräte sind mit dem lokalen Netzwerk verbunden und werden bei Azure IoT Hub registriert. Die Testanwendung stellt während des ganzen Tages zufällig eine Verbindung mit den Geräten her, indem ein einfacher Ping-Befehl gesendet wird, und zeichnet die Zeit auf, die bis zum Empfang einer Antwort vergeht.
  • Die während dieses POC erfassten Daten in Kombination mit den Ergebnissen des Auslastungstests ermöglichen es dem Team, die benötigte Computekapazität bei der Vorbereitung der Produktionseinführung genauer abzuschätzen.
  • Das Team sucht außerdem nach Möglichkeiten, die für Auslastungstests verwendeten Testfälle weiter zu verbessern, um anhand der Erkenntnisse aus dem POC realistischere Antwortzeiten zu simulieren.

Überprüfen Sie Ihr Wissen

1.

Was ist im Kontext des Entwurfs zur Erfüllung der Kapazitätsanforderungen eine Möglichkeit, die richtigen Ressourcen für Ihre Workload auszuwählen?

2.

Wofür sollten Sie die Vorhersagemodellierung verwenden?

3.

Welche Hypothese wollte Contoso mit der POC-Bereitstellung überprüfen?