Ontwerpen om te voldoen aan capaciteitsvereisten

Voltooid
Geef voldoende aanbod om te voldoen aan de verwachte vraag.

Het is belangrijk om proactief de prestaties te meten. Het meten van prestaties omvat het meten van basislijnen en het hebben van een voorlopig inzicht in welke onderdelen van het systeem waarschijnlijk uitdagingen opleveren. U kunt dit bereiken zonder een volledige prestatietest uit te voeren of door middel van gedetailleerde optimalisatie. Door deze eerste stappen uit te voeren, stelt u vroeg in de ontwikkelingslevenscyclus een basis voor effectief prestatiebeheer in.

Onderzoek het systeem als geheel in plaats van zich te richten op afzonderlijke onderdelen. Vermijd afstemming in deze fase. Het maken van gedetailleerde prestatieverbeteringen resulteert in compromissen op andere gebieden. Wanneer u de levenscyclus doorloopt en begint met het testen van gebruikersacceptatie of doorgaat naar productie, kunt u snel bepalen welke gebieden verdere optimalisatie vereisen.

Voorbeeldscenario

Contoso Manufacturing heeft een intern gebruikte Java Spring-microservices-app ontwikkeld die wordt gebruikt voor het bewaken en optimaliseren van hun productieprocessen. Het workloadteam is bezig met het migreren van de app, die momenteel on-premises wordt gehost, naar Azure.

De door Azure gehoste app wordt gebouwd op Azure Spring Apps, Azure Database for MySQL en Azure IoT Hub. Contoso heeft een ExpressRoute-verbinding met Azure.

De workload effectief ontwerpen

Kies de juiste resources in de technologiestack, waarmee u prestatiedoelen kunt bereiken en kunt integreren met het systeem. Overweeg functies die aan de schaalbaarheidsvereisten kunnen voldoen en de juiste balans vinden tussen resourcetoewijzing en systeemvereisten, om onverwachte pieken efficiënt af te handelen.

Door de verschillende mogelijkheden van de resources te analyseren, zorgt u ervoor dat elk onderdeel bijdraagt aan de algehele functionaliteit en prestaties van het systeem en u kunt de schaalfunctionaliteit identificeren waarvan u gebruik kunt maken.

Resources met de juiste grootte kunnen voldoen aan wijzigingen in de vraag zonder over-inrichting, wat leidt tot kostenbesparingen.

De uitdaging van Contoso

  • De bestaande infrastructuur voor de on-premises app-omgeving wordt volledig beheerd door Contoso, waardoor het team een aanzienlijke last krijgt. Ze inrichten en onderhouden momenteel servers, netwerken en opslag, en configureren en bijwerken van de Java Spring-serviceruntime en alle afhankelijkheden.
  • Het team kijkt ernaar uit om te migreren naar een PaaS-model met Azure Spring Apps, waardoor het team zich meer energie kan richten op het ervoor zorgen dat hun toepassing de beoogde bedrijfswaarde levert en minder tijd besteedt aan het beheren van de infrastructuur.
  • Deze toepassing is essentieel voor het bedrijf van Contoso en heeft strikte prestatievereisten, dus ze moeten ervoor zorgen dat de technologiekeuzen die ze maken als onderdeel van de migratie, hen in staat stellen aan deze vereisten te voldoen.

De aanpak en resultaten toepassen

  • Nadat het team de verschillende beschikbare abonnementen heeft vergeleken, kiest het team voor het Azure Spring Apps Standard-abonnement, dat een volledig beheerde service biedt voor Spring Boot-apps, geoptimaliseerd voor productieverkeer. Met een maximum van 500 exemplaren per app kan het Standard-abonnement voldoende rekencapaciteit bieden voor het maximale verwachte gebruik.
  • Daarnaast kan de service zo nodig worden geconfigureerd om uit te schalen en worden rekenresources ingeschaald wanneer de extra capaciteit niet nodig is.
  • Het team heeft gekeken naar het Enterprise-abonnement, dat maximaal 1000 exemplaren per app kan schalen, maar heeft besloten dat ze die hoeveelheid capaciteit op dit moment niet nodig hebben. Ze zijn er ook van overtuigd dat ze het ondersteuningsniveau van het Enterprise-abonnement of de rest van de exclusieve functies niet nodig hebben.

De capaciteitsbehoeften correct voorspellen

Capaciteitsplanning uitvoeren op basis van vraag en de mogelijkheid van geselecteerde resources om uw prestatiemodel te verrijken. Gebruik voorspellende modelleringstechnieken om verwachte wijzigingen in capaciteit te voorspellen die kunnen optreden met voorspelbare en onverwachte wijzigingen. Definieer prestatiedoelen die kunnen worden omgezet in technische vereisten.

Door deze aanpak te gebruiken, kunt u efficiënt resources gebruiken en aan de vraag voldoen zonder overprovisioning, waardoor onnodige kosten worden vermeden. Daarnaast kunt u beter begrijpen hoe de ontwerpkeuzen van invloed zijn op de prestaties.

De uitdaging van Contoso

  • Om het efficiënte gebruik van de productiemachines te maximaliseren, werkt de productielijn van Contoso volgens een cyclische planning, waardoor verschillende producten op verschillende tijdstippen van de dag worden geproduceerd.
  • Elk product vereist verschillende bewerkingen en dus verschillende rekenbehoeften van de besturingstoepassing. Tijdens de overstap tussen producten moet de besturingstoepassing verschillende taken uitvoeren waarvoor een verhoogde rekencapaciteit is vereist, zoals het analyseren van gegevens uit de vorige productieuitvoering en het bijwerken van de besturingsalgoritmen voor de machines.

De aanpak en resultaten toepassen

  • Om te voldoen aan de hogere vraag tijdens de overstapperioden, identificeert het team eerst de stromen die de functionaliteit voor overschakeling verwerken, hun prestatievereisten documenteren en hun transactievolumes schatten op basis van de on-premises versie van de toepassing. Met deze gegevens gaat het team verder met het schatten van de rekencapaciteit die nodig is voor de microservices die deel uitmaken van de doelstromen.
  • Automatische schaalaanpassing is geconfigureerd voor deze onderdelen, zodat er extra resources worden ingericht vóór de schakelperiode en worden vrijgegeven nadat de taken zijn voltooid.
  • De instellingen voor automatisch schalen worden aangepast voordat de app in productie wordt geïmplementeerd, op basis van de werkelijke prestaties in de nieuwe omgeving.

Implementatie van proof-of-concept

Implementeer een proof of concept (POC) waarmee de technische vereisten en ontwerpkeuzen worden gevalideerd.

Een proof of concept is een instrument om het ontwerp te valideren om te bepalen of het systeem aan de prestatiedoelen kan voldoen en of deze doelen realistisch zijn. Op basis van de verwachte belasting kunt u controleren of de verwachte capaciteit aan de prestatiedoelen kan voldoen.

Controleer ook de gevolgen van de kosten van de ontwerpkeuzen.

De uitdaging van Contoso

  • Tijdens de ontwikkeling voert het team uitgebreide belasting- en prestatietests uit van de toepassingsfunctionaliteit met behulp van apparaatsimulators en gebruikt het deze informatie om de configuratie voor automatisch schalen te optimaliseren.
  • Een aspect dat van invloed kan zijn op de effectiviteit van de configuratie voor automatisch schalen, is de potentiële netwerklatentie die vanuit de Azure Spring Apps-omgeving communiceert met de IoT-apparaten op de productievloer, die is verbonden met Azure via ExpressRoute. Het team speculeert dat latentie hoger is in Azure dan voor de on-premises versie als de app en die latentie mogelijk ook wordt beïnvloed door andere factoren, zoals tijdstip van de dag of apparaatlocatie.
  • Een toename van de latentie zou waarschijnlijk invloed hebben op het transactievolume dat elke microservice-instantie zou kunnen verwerken.

De aanpak en resultaten toepassen

  • Het team besluit om een POC in Azure te implementeren om hun hypothesen te valideren en metrische gegevens te verzamelen die kunnen worden gebruikt om de configuratie te optimaliseren. Ze bouwen een test azure Spring App om te communiceren met IoT-apparaten verspreid over de productievloer. De IoT-apparaten zijn verbonden met het on-premises netwerk en zijn geregistreerd bij Azure IoT Hub. De testtoepassing maakt de hele dag willekeurig verbinding met de apparaten door een eenvoudige ping te verzenden en registreert de tijd die nodig is om een antwoord te ontvangen.
  • De gegevens die tijdens deze POC zijn vastgelegd, in combinatie met de resultaten van de belastingstests, stellen het team in staat om de benodigde rekencapaciteit nauwkeuriger te schatten wanneer ze zich voorbereiden op de eerste productielancering.
  • Het team kijkt ook naar manieren om de testcases die worden gebruikt voor belastingstests verder te verbeteren om realistischere reactietijden te simuleren op basis van de bevindingen van de POC.

Test uw kennis

1.

Wat is een manier waarop u de juiste resources voor uw workload kunt kiezen in de context van het ontwerpen om te voldoen aan capaciteitsvereisten?

2.

Waarvoor moet u voorspellende modellering gebruiken?

3.

Wat is een hypothese die Contoso probeerde te valideren met hun POC-implementatie?