Architectuurstrategieën voor het prioriteren van de prestaties van kritieke stromen

Is van toepassing op deze aanbeveling voor de controlelijst prestatie-efficiëntie van Azure Well-Architected Framework:

PE:09 Geef prioriteit aan de prestaties van kritieke stromen. De toewijzing van workloadresources en optimalisatie van prestaties moet prioriteit geven aan de stromen die de belangrijkste bedrijfsprocessen, gebruikers en bewerkingen ondersteunen.

In deze handleiding worden de aanbevelingen beschreven voor het prioriteren van de prestaties van kritieke stromen in een workload. Kritieke stromen vertegenwoordigen cruciale bedrijfsprocessen die inkomsten genereren of bewerkingen met hoge prioriteit stimuleren. Wanneer u prioriteit geeft aan de prestaties van kritieke stromen, zorgt u ervoor dat de stromen met de meeste impact de resources krijgen die ze nodig hebben voordat stromen met een lagere prioriteit worden uitgevoerd. Als u deze prioriteitsaanduiding niet uitvoert, kan dit onevenredige negatieve gevolgen hebben voor workloadprioriteiten en de gebruikerservaring.

Definities

Termijn Definition
Flow In een workload is de volgorde van acties die een specifieke functie uitvoeren. Een stroom omvat het verplaatsen van gegevens en het uitvoeren van processen tussen onderdelen van de workload.
Verwerking van prioriteitswachtrijen Het verwerken van taken met hoge prioriteit vóór taken met lage prioriteit.
Snelheidsbeperking Het beperken van het aantal aanvragen dat toegang heeft tot een resource.
Systeemstroom De stroom van informatie en processen binnen een systeem. Het systeem volgt deze stroom automatisch om gebruikersstromen of workloadfunctionaliteit in te schakelen.
Gebruikersstroom De volgorde die een gebruiker volgt om een taak uit te voeren.

Kritieke stromen verwijzen naar de belangrijkste gebruikersstromen voor klanten of het systeem en gegevensstromen voor bewerkingen die essentieel zijn voor de workloadfunctionaliteit. Deze stromen kunnen acties omvatten zoals gebruikersregistraties, aanmeldingen, productaankopen, toegang tot pagina's achter een paywall of een ander sleutelpad of ander sleutelproces binnen uw workload.

Kritieke stromen zijn aanzienlijk van invloed op de gebruikerservaring of bedrijfsactiviteiten. Kritieke stromen hebben hogere prestatiedoelen en serviceovereenkomsten dan niet-kritieke stromen. Wanneer resources beperkt zijn, moeten niet-kritieke stromen het resourcegebruik opleveren voor kritieke stromen. U moet alle stromen identificeren, bewaken en prioriteren voordat u kritieke stromen isoleert en optimaliseert.

Alle stromen identificeren

De eerste stap bij het prioriteren van de prestaties van kritieke stromen is het identificeren van alle stromen binnen uw workload. Stroomidentificatie omvat systematisch het toewijzen en begrijpen van alle gebruikerspaden en communicatie van onderdelen. De focus ligt op het begrijpen van de metrische prestatiegegevens en mogelijke impact van stromen op workloadprestaties.

Door de workload te ontleden in discrete stromen, kunt u prestatieknelpunten, inefficiënt resourcegebruik en mogelijkheden voor prestatieoptimalisatie vinden. Deze kennis bevat gebieden van benodigde verbetering en is de eerste stap voor het identificeren van kritieke stromen. Zie Gebruikers- en systeemstromen identificeren en beoordelen voor meer informatie.

Metrische gegevens over stroomprestaties bewaken

Nadat u alle stromen binnen uw workload hebt geïdentificeerd, moet u metrische prestatiegegevens voor elke stroom verzamelen en deze metrische gegevens bewaken. Metrische stroomgegevens bieden inzicht in reactietijden, foutpercentages en doorvoer. Het doel is om consistent prestatiegerelateerde metrische gegevens te observeren en vast te leggen om uw inzicht in de impact van elke stroom op de prestaties van de werkbelasting verder te verfijnen. Als u metrische stroomgegevens wilt bewaken, kunt u de volgende hulpprogramma's gebruiken om gegevens te verzamelen:

  • Analyse- en traceringshulpprogramma's: deze hulpprogramma's bieden inzicht in gebruikersgedrag en interacties binnen uw toepassing. Door gebruikersgegevens te analyseren, kunt u de meest voorkomende stromen, knelpunten of potentiële problemen identificeren.

  • APM-hulpprogramma's (Application Performance Monitoring): gebruik APM-hulpprogramma's om de prestaties van uw toepassing te bewaken en bij te houden hoe stromen worden uitgevoerd. Deze hulpprogramma's bieden inzicht in reactietijden, fouten en andere metrische prestatiegegevens, zodat u kritieke stromen kunt identificeren en hun prestaties kunt optimaliseren.

  • Hulpprogramma's voor logboekregistratie en foutopsporing: gebruik deze hulpprogramma's om logboeken en foutopsporingsgegevens vast te leggen en te analyseren terwijl uw toepassing wordt uitgevoerd. Bekijk logboeken en foutopsporingsinformatie om te traceren hoe stromen worden uitgevoerd en om problemen of fouten te identificeren.

Kritieke stromen identificeren

Nu de beschikbare prestatiegegevens beschikbaar zijn, kunt u beginnen met het rangschikking van alle stromen en het identificeren van de kritieke stromen. De identificatie van kritieke stromen omvat het evalueren van de impact op de prestaties en de kritiek van elke stroom. Effectieve stroom prioritering zorgt ervoor dat de belangrijkste stromen de resources ontvangen die nodig zijn voor minder kritieke stromen. Als u prioriteit wilt geven aan stromen in uw toepassing, moet u de volgende stappen overwegen:

  • Bedrijfsimpact identificeren: begin met het beoordelen van het belang van elke stroom binnen uw activiteiten. Richt u op de afstemming van elke stroom op uw bedrijfsdoelstellingen, de impact ervan op gebruikers en de mogelijke negatieve gevolgen van slechte prestaties. Een gratis servicelaag kan bijvoorbeeld meer gebruikers aantrekken, maar een betaalde laag kan belangrijker zijn voor uw bedrijfsdoelen.

    Houd ook rekening met de invloed van de prestaties van een stroom in een of meer bedrijfsprocessen. Meerdere stromen ondersteunen mogelijk één bedrijfsproces, maar vaak heeft één stroom een aanzienlijk effect op de prestaties van dat proces. U wilt de stromen identificeren die de grootste invloed hebben op de prestaties. Omgekeerd kan één stroom verschillende processen onderbouwen. In dergelijke gevallen is de prestaties van deze stroom rechtstreeks van invloed op de werkzaamheid van alle gerelateerde processen en is het waarschijnlijk een kritieke stroom.

  • Prestatiegegevens analyseren: analyseer de metrische prestatiegegevens die aan elke stroom zijn gekoppeld. Zoek naar patronen, afwijkingen of opvallende metrische gegevens die inzicht kunnen geven in de efficiëntie en urgentie van de stroom. Systeemstromen met aanzienlijk gebruik zijn bijvoorbeeld waarschijnlijk belangrijke stromen.

  • Kritieke classificatie toewijzen: Op basis van de bedrijfsimpact en prestatie-indicatoren moet u prioriteit geven aan de stromen. Gebruik kritieke classificaties van Hoog, Gemiddeld en Laag. Stromen met een aanzienlijke bedrijfsimpact of een hoge vraag naar prestaties moeten een 'hoge' criticaliteitsclassificatie krijgen. Deze stromen zijn uw kritieke stromen. Focus op stromen met veel gebruikersverkeer of hebben een direct effect op het genereren van inkomsten. De volgende tabel bevat kenmerken van kritieke (hoge) en niet-kritieke stromen (gemiddeld tot laag).

Kritieke stromen Niet-kritieke stromen
Hoog gebruik Laag gebruik
Bedrijfskritiek Niet bedrijfskritiek
Dure bewerkingen Kleine bewerkingen
Tijdgevoelig Niet tijdgevoelig
Productie Prototypen
Verwerking in realtime Batchverwerking
Latentiegevoelig Geen latentiegevoelig
Betalende gebruiker Niet-betalende gebruiker
Premium-laag Basic-laag
Belangrijke taken Niet-essentiële taken
Accounts met hoge omzet Accounts met lage omzet

Kritieke stromen isoleren

Het isoleerproces van kritieke stromen gaat over het leveren van toegewezen resources of capaciteit ter ondersteuning van kritieke stromen. U wilt resources en aandacht toewijzen aan stromen die essentieel zijn voor een optimale gebruikerservaring of aanzienlijke bedrijfsresultaten. Het doel is ervoor te zorgen dat kritieke stromen voldoende rekenkracht, netwerkbandbreedte en resources ontvangen om efficiënt en effectief te werken. Door kritieke stromen te isoleren, kunt u de resources die kritieke stromen ondersteunen eenvoudiger beheren. Hier volgen aanbevelingen voor het isoleren van kritieke stromen:

  • Resourcesegmentatie: Maak afzonderlijke resources voor kritieke stromen, zodat ze onafhankelijk kunnen werken zonder tussenkomst van andere processen. U kunt bijvoorbeeld kritieke stromen isoleren op toegewezen netwerksegmenten of door toegewezen servers te gebruiken om de verwerkingsbehoeften van deze stromen af te handelen. Deze aanpak helpt bij het minimaliseren van de manier waarop niet-kritieke stromen negatieve gevolgen kunnen hebben voor kritieke stromen.

  • Logische segmentatie: gebruik hulpprogramma's voor virtualisatie en containerisatie, zoals Docker of Kubernetes, om stromen op softwareniveau te isoleren. U kunt kritieke stromen scheiden in virtuele machines (VM's). Hierdoor maakt u een geïsoleerde omgeving, waardoor afhankelijkheden en mogelijke interferentie van andere stromen worden verminderd.

  • Capaciteitstoewijzing: Wijs voor kritieke stromen expliciet een vaste set capaciteit toe, zoals CPU, geheugen en schijf-I/O. Deze toewijzing zorgt ervoor dat kritieke stromen altijd voldoende resources hebben om efficiënt te kunnen werken. Stel resourcequota of limieten in met behulp van indelingsplatforms. Door resources expliciet toe te wijzen aan kritieke stromen, voorkomt u conflicten tussen resources en geeft u prioriteit aan hoe ze worden uitgevoerd.

Compromis: Resourcesegmentatie is van invloed op de kosten. Wanneer u resources toedraagt aan een stroom, verhoogt u vaak de kosten en laat u sommige resources onderbenut. Om de prestatieverbeteringen aan kritieke stromen te rechtvaardigen, moet de toename van de bedrijfsimpact opwegen tegen de toename van de kosten.

Capaciteitstoewijzing optimaliseren

Wanneer u kritieke stromen niet kunt isoleren, kunt u het beste kritieke stromen prioriteren bij het verkrijgen van toegang tot de beschikbare capaciteit. De optimalisatie van capaciteitstoewijzing gaat over het strategisch distribueren van beschikbare capaciteit naar verschillende stromen op basis van hun kritiekheid. Capaciteit omvat CPU, geheugen, opslag en netwerkbandbreedte. Het doel is ervoor te zorgen dat de meest kritieke stromen (hoogste prioriteit) de benodigde capaciteit krijgen om effectief te werken. Als u wilt bepalen hoe u capaciteit toewijst, kunt u de volgende strategieën overwegen:

  • Resourcecapaciteit evalueren: evalueer hoeveel resourcecapaciteit aan de stromen kan worden toegewezen. Capaciteit kan resources omvatten, zoals CPU, geheugen, opslag en netwerkbandbreedte. Inzicht in de beperkingen en beperkingen van uw infrastructuur of omgeving.

  • Stroomvereisten analyseren: analyseer de resourcevereisten van elke stroom. Inzicht krijgen in de resources die de stroom nodig heeft om efficiënt te werken. Identificeer voor elke stroom de resourcevereisten, zoals CPU-gebruik, geheugenvereisten en netwerkbandbreedte.

  • Prioriteit geven aan toewijzingen: koppel de beschikbare resourcecapaciteit aan de resourcevereisten van de stromen. Wijs resources toe op basis van stroomprioriteiten, zodat stromen met een hogere prioriteit de benodigde resources ontvangen om aan hun vereisten te voldoen. Inzicht krijgen in waar uw kleinste beperkingen zich bevinden en capaciteitstoewijzingen optimaliseren waar ze nodig zijn. Wachtrijen kunnen bijvoorbeeld slechts enkele berichten per minuut verwerken, maar sommige opslaglimieten zijn moeilijk te bereiken.

  • Frequentiebeperking gebruiken: om ervoor te zorgen dat kritieke stromen de resources kunnen gebruiken die ze nodig hebben om te voldoen aan hun prestatiedoelen, past u frequentielimieten toe op niet-kritieke stromen en taken. Frequentielimieten beperken het aantal aanvragen stromen met een lagere prioriteit en gebruikers kunnen maken tot beperkte resources. U kunt bijvoorbeeld niet-prioriteitsaanvragen beperken tot een API. Zie het patroon Snelheidsbeperking en Snelheidsbeperking van een HTTP-handler in .NET voor meer informatie.

  • Prioriteitswachtrijverwerking gebruiken: Prioriteitswachtrijverwerking geeft een hoge prioriteit aan bepaalde aanvragen. Wachtrijen hebben meestal een FIFO-structuur (first in, first out), maar u kunt uw toepassing bijwerken om een prioriteit toe te wijzen aan berichten die worden toegevoegd aan de wachtrij. Gebruik deze mogelijkheid om prioriteit te geven aan kritieke stromen en gebruikers. Zie het patroon Prioriteitswachtrij voor meer informatie.

Risico: het kan een uitdaging zijn om de behoeften van kritieke stromen te verdelen met de algehele prestaties van een workload. Hoewel u prioriteit moet geven aan kritieke stromen, moet u niet vergeten dat niet-kritieke stromen niet worden genegeerd. De algehele prestatie-efficiëntie van een workload is afhankelijk van alle stromen. Genegeerde niet-kritieke stromen kunnen problemen opleveren die van invloed zijn op alle gebruikers. Te veel ruis van niet-essentiële items steelt de aandacht van kritieke items. Maar te weinig ruis kan de hele workload schaden. De hoeveelheid gegevens en het aantal waarschuwingen moeten deze evenwichtige prioriteiten weerspiegelen.

Azure-ondersteuning

Stromen identificeren en bewaken: Azure biedt verschillende oplossingen waarmee u de prestaties van kritieke stromen in uw workload kunt bewaken. Azure Monitor, Azure Monitor-logboeken en Azure Application Insights zijn enkele van de services die uitgebreide bewakingsmogelijkheden bieden voor verschillende soorten toepassingen en workloads.

Capaciteitstoewijzingen optimaliseren: sommige Azure-services ondersteunen resourcesegmentatie, logische segmentatie en capaciteitstoewijzingstechnieken om capaciteit en resources toe te wijzen aan kritieke stromen. U kunt kritieke stromen isoleren via technieken zoals het maken van afzonderlijke resources, het verhogen van de dichtheid, het gebruik van virtualisatie en containerisatie en het expliciet toewijzen van resources aan kritieke stromen.

Sommige Azure-services, zoals Azure API Management, bieden ingebouwde beleidsregels voor snelheidsbeperking. Azure biedt gedetailleerde richtlijnen en een voorbeeld van het ontwerppatroon frequentiebeperking.

Azure ondersteunt verwerking van prioriteitswachtrijen. Azure Functions biedt gebeurtenisgestuurde functies die u op verschillende manieren kunt activeren, waaronder door een nieuw bericht in een wachtrij of onderwerp. Combineer Azure Functions met Azure Queue Storage of Azure Service Bus om berichten te verwerken op basis van hun prioriteit.

Controlelijst voor prestatie-efficiëntie

Raadpleeg de volledige set aanbevelingen.