Prestatie-efficiëntie gaat over het onderhouden van de gebruikerservaring, zelfs wanneer er een toename van de belasting is door capaciteit te beheren. De strategie omvat het schalen van resources, het identificeren en optimaliseren van potentiële knelpunten en het optimaliseren van piekprestaties.
Dit volwassen model begeleidt u door een strategisch traject van prestatieoptimalisatie door resources te schalen, potentiële knelpunten te identificeren en te optimaliseren en te optimaliseren voor piekprestaties.
U begint met het selecteren van de juiste onderdelen en het vaststellen van prestatiedoelen en vervolgens de voortgang bij het meten en bewaken van het gedrag van uw workload. Naarmate u volwassen bent, neemt u echte feedback van gebruikers op om uw benadering te verfijnen, gebruik te maken van productie-inzichten voor gerichte verbeteringen en uiteindelijk geavanceerde optimalisatie te bereiken via experimenten en automatisering. Elke fase bouwt voort op de vorige fase en transformeert uw prestatiestrategie van reactieve probleemoplossing tot proactieve efficiëntie-engineering.
Het model is gestructureerd in vijf verschillende volwassenheidsniveaus, elk met een primair doel en een set kernstrategieën. Gebruik de onderstaande weergaven op tabbladen om elk niveau te verkennen. Controleer ook de gemarkeerde compromissen en bijbehorende risico's terwijl u vordert.
Stel duidelijke prestatievereisten vast en selecteer de onderdelen van de juiste grootte die overeenkomen met uw vereisten.
Niveau 1 van het volwassen model is gericht op het verzamelen van prestatieverwachtingen en het kiezen van cloudservices die u helpen om aan deze verwachtingen te voldoen. Op dit niveau onderzoekt u deze resources en onderdelen om de beste pasvorm te vinden. Prioriteit geven aan services die alleen de benodigde prestatiemogelijkheden bieden. Met deze aanpak kunt u de kosten beheren en uw ontwikkelsnelheid behouden.
Belangrijke strategieën
Werk samen met belanghebbenden om inzicht te hebben in de algemene verwachtingen voor de prestaties van workloads. Deze verwachtingen kunnen doelen bevatten voor paginalaadtijden voor web-apps of reactietijden voor interactieve systemen. In deze fase van de ontwikkeling van workloads behandelt u deze doelen als richtlijnen in plaats van harde vereisten, omdat u zich nog niet richt op het meten van metrische prestatiegegevens. Nadat u de verwachtingen van de workload hebt verzameld, kunt u beginnen met het onderzoeken van de typen resources die mogelijk aansluiten bij uw workload.
✓ Kies de juiste netwerkresources
Evalueer uw netwerkbehoeften om de juiste services en configuraties voor uw workload te bepalen. Overweeg netwerkverkeer, bandbreedte, latentie en doorvoer om ervoor te zorgen dat het netwerk uw workload effectief ondersteunt. Gebruik particuliere virtuele netwerken en backbone-netwerken om de latentie te verminderen.
Zorg voor gelijkmatige distributie van netwerkverkeer om te voorkomen dat de server overbelast raakt en reactietijden te verminderen. Beoordeel verschillende taakverdelingsservices die uw cloudprovider biedt. Overweeg verkeertype, globale of regionale routering, serviceniveaudoelstellingen en specifieke functies zoals siteversnelling en taakverdeling met lage latentie.
Risico: Neem de tijd om de verschillende opties voor basisnetwerken volledig te onderzoeken en te begrijpen. Latere wijzigingen in dit gebied vereisen mogelijk een volledig herontwerp en opnieuw implementeren.
✓ Kies de juiste rekenresources
Evalueer de rekenbehoeften van uw werkbelasting, waaronder instantietype, schaalbaarheid en servicelagen. Overweeg containerisatie om prestatieverbeteringen te bereiken door isolatie, resource-efficiëntie, snelle opstarttijden en draagbaarheid.
Kies een rekenservice die aan uw behoeften kan voldoen, terwijl u eenvoudig kunt schalen naarmate uw workload zich ontwikkelt. Het bouwen van uw workload is een iteratief proces. U kunt klein beginnen met minder presterende SKU's en minder exemplaren. Werk deze onderdelen later in de levenscyclus van de workload bij.
Compromis: Weeg uw directe behoeften af tegen uw budget. Zoek naar mogelijkheden om rekenresources af te sluiten of de toewijzing ervan ongedaan te maken wanneer ze niet in gebruik zijn.
✓ Kies de juiste services voor gegevensopslag
Bepaal de behoeften van uw workload voor het opslaan, ophalen en beheren van gegevens. Houd rekening met kenmerken zoals:
Gegevenstypen: Welke typen gegevens verwacht u dat uw workload gegevens opneemt, verwerkt of opslaat?
Volume: Hoeveel gegevens verwacht u op te nemen, te verwerken of op te slaan?
Transactiedoorvoer: Wat zijn de prestatievereisten voor toegang tot verschillende gegevenstypen?
Consistentie: Wat zijn uw doelen voor gegevensconsistentie tussen gegevenstypen?
Duurzaamheid: Wat zijn uw doelen voor de duurzaamheid van gegevens in verschillende gegevenstypen?
Toegangspatronen: Welke typen toegangspatronen moet uw workload ondersteunen? Voor een bepaald onderdeel moet u bijvoorbeeld mogelijk meerdere schrijfbewerkingen uitvoeren, maar weinig leesbewerkingen. Voor een ander onderdeel moet u mogelijk het tegenovergestelde doen.
Kies op basis van de antwoorden op deze vragen de beste gegevensservice voor elk van de use cases van uw workload.
Vanwege de grote verscheidenheid aan opties voor gegevensservices in cloudomgevingen, kunt u uw ontwerp aanpassen om verschillende services te gebruiken zodat deze het beste aansluit bij de functionaliteit van elk onderdeel in uw workload. Met deze aanpak kunt u de prestaties van elk onderdeel optimaliseren.
Compromis: Overengineer uw gegevensonderdelen niet door verschillende gegevensservices te kiezen voor onderdelen die u in één gegevensarchief kunt samenvoegen. Een balans vinden tussen prestaties versus kosten en complexiteit.
Uitgebreide prestatiebewaking implementeren om inzicht te krijgen in het gedrag van uw workload en optimalisatiemogelijkheden te identificeren.
Niveau 2 van de pijler Prestatie-efficiëntie richt zich op het gebruik van informatie over uw workload om uw prestatieoptimalisaties te informeren. De eerste stap is het identificeren van kritieke workloadstromen vanuit een prestatieperspectief. Vervolgens kunt u uw workload opsplitsen in de onderdelen en meetbare doelen en metrische gegevens instellen die u kunt vastleggen en analyseren voor toekomstige optimalisaties. Ten slotte moet u ontwerppatronen onderzoeken die u kunnen helpen uw prestatie-efficiëntie te verbeteren en een initiële oefening voor capaciteitsplanning uit te voeren. Deze activiteiten helpen u bij het bouwen van een plan voor de onmiddellijke toekomst van uw workload. Deze aanpak zorgt ervoor dat de prestaties niet lijden naarmate de workload zich ontwikkelt.
Belangrijke strategieën
Het rangschikken en categoriseren van uw workloadstromen is een belangrijke strategie in elk van de Well-Architected Framework-pijlers. Door stromen te analyseren vanuit het perspectief van elke pijler kunt u gebieden identificeren die moeten worden geoptimaliseerd. U kunt deze optimalisaties vergelijken om te bepalen waar u moet investeren. In sommige scenario's kunnen beveiligingsproblemen voor een stroom bijvoorbeeld opwegen tegen prestatieproblemen. Nadat u de stromen hebt gecategoraliseerd en gerangschikt, richt u zich op de stromen die u identificeert als essentieel om uw optimalisatieplanning te starten. Prestatiespecifieke criteria waarmee u kritieke stromen kunt identificeren, zijn onder andere:
Frequentie: Het aantal keren dat de workflow wordt uitgevoerd, zoals het zoeken naar een product.
Kriticiteit: De mate van belang die de flow heeft voor het algehele succes van de applicatie, zoals het opzoeken van een gebruikersprofiel.
Risico: Het risiconiveau dat de stroom heeft voor de algehele prestaties, zoals het genereren van een complex rapport.
Gegevensintensiviteit: De hoeveelheid druk die de stroom op de gegevenslaag plaatst.
Architectuurintensiviteit: De mate waarin de stroom communiceert met onderdelen in de workload.
✓ Meetgegevens instellen voor uw workloadresources en -onderdelen die u helpen uw doelen te bereiken
Prestatiedoelen instellen voor uw workloadonderdelen en -resources op basis van marktonderzoek, concurrentieanalyse en enquêtes. Focus op belangrijke metrische gegevens, zoals reactietijd, doorvoer en latentie. Stel doelen vast voor verschillende onderdelen, gebruikersstromen, werkstromen, gegevensstromen, externe afhankelijkheden en algehele workloadprestaties.
Stel realistische en meetbare doelen in voor elke metriek, terwijl u rekening houdt met de verwachtingen van klanten. Gebruik percentielen zoals P99, P95 en P50 om een uitgebreid perspectief te krijgen. Voer tests uit om de basislijnprestaties vast te stellen, maar leg niet te veel nadruk op optimalisatie.
Noteer alle prestatiedoelen op een gecentraliseerde locatie die toegankelijk is voor zowel ontwikkel- als operationele teams. Gebruik dashboards en rapporten om doelen zichtbaar en uitvoerbaar te maken.
Capaciteitsplanning is een iteratief proces dat regelmatig moet worden uitgevoerd gedurende de levenscyclus van uw workload. In deze fase bent u mogelijk nog niet volledig bekend met alle gebruikte technologieën of kunt u nog steeds verschillende opties evalueren. Deze onzekerheid kan uw vermogen beperken om uitgebreid te plannen voor toekomstige behoeften. Voor deze eerste oefening voor capaciteitsplanning is het doel om over te schakelen van reactief capaciteitsbeheer, waaronder het toevoegen van resources om aan de onmiddellijke vraag te voldoen. In plaats daarvan is de focus op proactieve planning, waarbij u de capaciteit verwacht die nodig is voor een gedefinieerde periode. Voor een effectieve capaciteitsplanning verzamelt en analyseert u gegevens over resourcegebruik, inclusief historische patronen voor bestaande workloads. Gebruik statistische analyse, trendanalyse en voorspellende modellering om toekomstige behoeften te voorspellen. Zorg ervoor dat deze prognoses overeenkomen met de workloaddoelstellingen.
Risico: In een traditionele, op datacenter gebaseerde omgeving is over-inrichting een algemene benadering voor capaciteitsplanning. In een cloudomgeving kan overinrichting een verspilling van geld zijn. Houd zorgvuldig rekening met de verwachtingen van uw bedrijf om een tijdlijn te ontwikkelen voor het toevoegen van capaciteit op een manier die voldoet aan uw prestatiebehoeften zonder dat dit een negatieve invloed heeft op uw budget.
Er zijn veel algemene ontwerppatronen voor toepassingen die u kunnen helpen uw workload te optimaliseren voor prestaties. U kunt prestatieverbeteringen behalen door een cache toe te voegen of een shardingstrategie te ontwikkelen. Zie Cloudontwerppatronen voor een uitgebreide lijst met patronen die u kunnen helpen uw workload te verbeteren.
Compromis: Sommige ontwerppatronen kunnen een mate van complexiteit aan uw workload toevoegen. Vergelijk de extra beheerlast ten opzichte van uw efficiëntieverbeteringen om te bepalen of een specifiek patroon de implementatie waard is.
Met codeoptimalisatie wordt uw hele workload efficiënter. Toepassingstaken worden sneller uitgevoerd en gebruiken minder rekenresources, zodat u de prestaties van uw infrastructuur kunt maximaliseren. Houd rekening met de volgende methoden voor het optimaliseren van code:
Instrumenteer uw code. Door uw code te instrumenteren, kunt u problemen in uw codeprestaties identificeren door telemetrie vast te leggen tijdens runtime. Dit proces helpt u bij het identificeren en oplossen van problemen vroeg in de ontwikkelingscyclus.
Dynamische paden identificeren. Door uw code te instrumenteren kunt u dynamische paden identificeren. Dynamische paden zijn essentiële of hooggebruikssecties van een programma waarvoor hoge prestaties en lage latentie zijn vereist.
Codelogica optimaliseren. Zoek manieren om uw codelogica te vereenvoudigen voor een betere efficiëntie. Verwijder onnodige functie-aanroepen en gegevensverwerkingsbewerkingen. Minimaliseer logboekbewerkingen, netwerkaanvragen en geheugentoewijzingen. Zoek naar mogelijkheden om meer krachtige SDK's en bibliotheken te gebruiken.
Gelijktijdigheid en parallelle uitvoering gebruiken. Door gelijktijdigheid en parallelle uitvoering te gebruiken, kan de efficiëntie van uw toepassing worden verbeterd door meerdere taken effectief te beheren. Gelijktijdigheid verwerkt meerdere taken door ertussen te schakelen, terwijl parallellisme meerdere taken tegelijk verwerkt.
Verzamel prestatiegegevens van toepassingen, zoals doorvoer, latentie en voltooiingstijden om knelpunten te identificeren en de gebruikerservaring te verbeteren. Gebruik gedistribueerde tracering en gestructureerde logboekregistratie voor eenvoudigere analyse. Verzamel metrische gegevens en logboeken voor alle resources. Hulpprogramma's zoals Azure Monitor Insights gebruiken voor prestatiebewaking. Verzamel database- en opslaggegevens en verzamel prestatiegegevens voor virtuele machines. Sla alle verzamelde gegevens op één plek op voor eenvoudige toegang en analyse.
Risico: Zorg ervoor dat u logboekrotatie- en bewaarbeleid instelt omdat de hoeveelheid gegevens die u verzamelt en opslaat, snel kan toenemen en de kosten onverwacht kunnen toenemen.
Maak gebruik van echte gebruikersinzichten en systeemfeedback om gerichte prestatieverbeteringen te stimuleren die de gebruikerservaring verbeteren.
Niveau 3 van de pijler Prestatie-efficiëntie is gericht op het integreren van interne en externe signalen om prestatiedoelen, workloadontwerp en configuraties en gerelateerde operationele procedures te verfijnen. In eerdere rijpheidsniveaus hebt u mogelijk prestatiedoelen en -configuraties ingesteld op basis van ontwikkelingssnelheidsbehoeften en interne tests. Wanneer u uw workload ontwikkelt, zorgt het opnemen van feedback van interne en externe gebruikers en belanghebbenden voor realistische prestatiedoelen voor uw productieworkload. Met deze aanpak kunt u aan deze doelen voldoen zonder dat dit ten koste gaat van de vereisten voor andere pijlers.
Belangrijke strategieën
Overstappen naar productie betekent dat u voorbereid moet zijn om onmiddellijk te reageren op prestatieproblemen. Robuuste prestatiebewaking en nuttige, bruikbare waarschuwingen helpen ervoor te zorgen dat de juiste teams op de hoogte worden gesteld van problemen en snel kunnen beginnen met het onderzoeken en oplossen van activiteiten. De volgende strategieën kunnen u helpen bij het definiëren van uw activiteiten voor het reageren op prestatieproblemen:
Configureer prestatiewaarschuwingen in uw bewakingsplatform.
Stem uw waarschuwingen af om bruikbare waarschuwingen te bieden wanneer een onderdeel risico loopt op een prestatieprobleem. Deze benadering kan bestaan uit het instellen van een drempelwaarde voor een statische waarde of het baseren op trendwijzigingen voor een specifieke metrische waarde. Bepaal de triggerwaarde door doorlopend testen om fout-positieven te voorkomen.
Analyseer logboeken en metrische prestatiegegevens om de onderliggende oorzaken van problemen te identificeren.
Houd belanghebbenden op de hoogte van de status en de voortgang van prestatieproblemen.
Stel een framework in om prestatieproblemen te prioriteren op basis van hun impact.
Documenteer alle stappen, processen en aanbevolen procedures voor het reageren op prestatieproblemen.
Als onderdeel van uw strategie voor prestatiebewaking moet u ervoor zorgen dat u de prestaties van uw stromen specifiek bewaakt. Krijg inzicht in het effect van elke stroom op de prestaties van de werklast. Identificeer potentiële problemen voor de stromen via inzichten in gebruikersgedrag. Volg reactietijden, fouten en andere metrische gegevens om kritieke stromen te optimaliseren. Analyseer logboeken om de stroomprestaties te traceren en problemen te identificeren.
Controleer regelmatig interne en externe gebruikersfeedback over prestaties om te beoordelen of uw doelen overeenkomen met de verwachtingen. Overweeg om klanttevredenheidspeilingen, opmerkingensystemen en gerichte gebruikerstests te gebruiken om nuttige feedback te verzamelen.
Wanneer u praktische mogelijkheden hebt voor uw workload, kunt u overwegen om een RUM-benadering (Real User Monitoring) te gebruiken. Met deze aanpak kunt u bepalen of de gebruikerservaring voldoet aan uw verwachtingen voor prestaties.
Application Insights en Azure Traffic Manager bieden functionaliteit voor het vastleggen van RUM-gegevens voor websites.
Houd de prestaties van uw app bij met behulp van metrische gegevens die overeenkomen met uw doelen en doelen. Vergelijk deze metrische gegevens met feedback van gebruikers en zakelijke belanghebbenden om ervoor te zorgen dat u de juiste gegevens verzamelt. Houd zakelijke metrische gegevens gescheiden van prestatiegegevens voor een eenvoudigere analyse, zelfs als er sprake is van overlap. Deze aanpak maakt de gegevens duidelijker en helpt teams weloverwogen beslissingen te nemen.
Het analyseren van trends helpt u bij het plannen van uw capaciteitsvereisten. Werk uw voorspellingen bij zodat deze overeenkomen met de workloaddoelen en de vraag van de gebruiker, zodat u altijd voldoende resources hebt. Controleer regelmatig de serviceovereenkomsten van uw cloudprovider om ervoor te zorgen dat u zo nodig resources kunt toevoegen zonder servicelimieten te gebruiken.
Wanneer u uw capaciteitsplanning ontwikkelt, moet u nauw samenwerken met besluitvormers van het bedrijf om op de hoogte te blijven van bedrijfsdoelen.
Compromis: Balans tussen capaciteitsplanning voor prestaties met betrouwbaarheids- en budgetvereisten. Werk samen met belanghebbenden om praktische compromissen te vinden wanneer de vereisten conflicteren.
✓ Optimaliseer uw schaalstrategie
Gebruik geavanceerde schaaltechnieken om uw resourcegebruik te optimaliseren. Pas de drempelwaarden aan die worden gebruikt voor schaalbewerkingen op basis van interne en externe feedback. Bouw automatisering om schaalbewerkingen uit te voeren voor onderdelen die geen systeemeigen functionaliteit voor automatisch schalen hebben. Gebruik ingeplande schaalvergroting voor componenten die licht gebruikt worden of inactief zijn op vaste tijden gedurende de dag, week of maand. Evalueer voortdurend schaalconfiguraties en verfijningen om beter te voldoen aan de fluctuerende vereisten van een workload.
✓ Gegevensbeheer optimaliseren
Inefficiëntie in gegevensbeheer kan prestatieproblemen in uw workload veroorzaken. Gebruik de volgende strategieën om uw gegevensomgeving te optimaliseren:
Deel grote gegevenssets of workloads in kleinere onderdelen, partities genoemd, voor afzonderlijke opslag of verwerking. Deze benadering maakt parallelle verwerking mogelijk, vermindert conflicten en verbetert het resourcegebruik en de verwerkingstijden. Het distribueert ook gegevens over meerdere opslagapparaten, waardoor de individuele belasting wordt verminderd en de algehele prestaties worden verbeterd. Partitioneringstypen uitlijnen met specifieke use cases. Partitionering kan horizontaal, verticaal of functioneel zijn, afhankelijk van de behoeften van het systeem. Zie Ontwerppatronen voor prestatie-efficiëntie voor meer informatie over ontwerppatronen die gebruikmaken van partitionering.
Optimaliseer query's met behulp van functies zoals inzicht in queryprestaties voor Azure SQL Database.
Zorg ervoor dat uw gegevensmodel geschikt is voor uw workload door rekening te houden met factoren zoals normalisatie, indexering en partitionering.
Stem de opslaginfrastructuur af op workloadvereisten door instellingen zoals buffergrootte en caching te optimaliseren.
Ontwerp prestatietests die u kunnen helpen begrijpen hoe uw workload presteert in verschillende productiescenario's. Gebruik verschillende tests, zoals belastingtests, stresstests, soaktests, spiketests en compatibiliteitstests op basis van criteria en metrische gegevens. Meet hoe elke test van invloed is op de prestaties van uw workload. Metrische gegevens moeten prestatieaspecten bevatten, zoals reactietijd, doorvoer en geheugen en CPU-gebruik. Definieer acceptatiecriteria die overeenkomen met doelen. Zie Aanbevelingen voor prestatietestsvoor meer informatie.
Prestatietests moeten worden uitgevoerd in een specifieke omgeving als onderdeel van uw algehele teststrategie. Deze aanpak omvat betrouwbaarheids- en beveiligingstests.
Bekijk de testresultaten om knelpunten en inefficiënties vast te stellen. Vergelijk bevindingen met doelen, vooraf gedefinieerde criteria of eerdere uitvoeringen.
Compromis: Testomgevingen kunnen belangrijke kostenfactoren zijn. Ontwerp testomgevingen met alleen de benodigde resources om het specifieke scenario dat wordt getest nauwkeurig te emuleren. Als u de gebruikskosten wilt minimaliseren, moet u ervoor zorgen dat resources na het testen worden afgesloten of verwijderd.
Risico: Als u productiegegevens wilt gebruiken, moet u ervoor zorgen dat gevoelige gegevens worden verwijderd voordat u deze kopieert naar testomgevingen. Gebruik synthetische gegevens wanneer dit praktisch is.
Een andere kritieke testfunctie is het bouwen van uw prestatiebasislijn. Basislijnen bieden referentiepunten voor het vergelijken van prestaties in de loop van de tijd. Identificeer metrische prestatiegegevens en gebruik deze als basislijngegevens. Evalueer toekomstige prestaties op basis van deze basislijnen om verbeteringen of afname te identificeren. Controleer regelmatig basislijnen en werk deze bij om bijgewerkte ontwerpelementen en -functies vast te leggen. Verouderde basislijnen kunnen leiden tot onrealistische en onbereikbare doelen naarmate de workload volwassen wordt en nieuwe functies worden toegevoegd.
Bevordert een omgeving van continue verbetering waarbij teams leren van productie en luisteren naar interne en externe feedback. Werkbelastingteams voorzien van de benodigde vaardigheden en mindset om de prestaties te optimaliseren en vraagschommelingen af te handelen. Wijs tijd toe voor het bewaken en oplossen van prestatieproblemen. Stel duidelijke verwachtingen in met zichtbare prestatiedoelen, basislijnen en acceptabele afwijkingsdrempels.
Productieinzichten transformeren in systematische prestatieverbeteringen door middel van gegevensgestuurde besluitvorming en proactieve optimalisatie.
Op niveau 4 van het volwassenheidsmodel wordt ervan uitgegaan dat uw workload in productie is en al geruime tijd draait, zodat er nuttige inzichten kunnen worden verzameld over de werking ervan. Op dit niveau moet u deze informatie gebruiken om de benodigde updates en verdere verbeteringen aan te brengen.
Gebruik telemetrie- en feedbackmechanismen om prestatieproblemen, zoals knelpunten, te identificeren en plannen te ontwikkelen om verbeteringen aan te brengen. Gebruik volwassen procedures voor wijzigingsbeheer om ervoor te zorgen dat u niet per ongeluk meer problemen veroorzaakt wanneer u wijzigingen aanbrengt in uw omgeving.
Houd er rekening mee dat iteratieve verbeteringen een teruglooppunt bereiken. U moet beslissen wanneer u een actieve status bereikt die voldoet aan uw vereisten. Een acceptabele status is wanneer de kosten en lasten voor het oplossen van inefficiënties niet opwegen tegen de kleine prestatieverbeteringen die u krijgt.
Houd er rekening mee dat elke wijziging die u aanbrengt in uw omgeving om de prestaties te verbeteren, rechtstreeks van invloed is op andere pijlers van het Well-Architected Framework. Kostenoptimalisatie is de meest voorkomende afweging. Evalueer zorgvuldig de impact op andere pijlers voordat u prestatieverbeteringen aanbrengt om de juiste balans voor uw vereisten te behouden.
Belangrijke strategieën
In niveau 4 moet u de prestaties in productie bewaken en testen. U moet goed ontwikkelde testplannen en -scenario's en testgegevens hebben die al aanwezig zijn. Het doel van het testen is om potentiële prestatieproblemen te ondervangen voordat ze in productie worden uitgevoerd. Bewaking en testen moeten dus strikt, gestandaardiseerd en grondig worden gedocumenteerd. Bekijk de volgende aanbevelingen:
Herzie uw basislijn voortdurend. Pas wat u leert van uw prestatiebewaking toe om ervoor te zorgen dat uw basislijn de werkelijke metrische prestatiegegevens weerspiegelt. Het is belangrijk om een basislijn te onderhouden omdat u tests uitvoert op die basislijn om ervoor te zorgen dat implementaties zoals functie-updates geen negatieve invloed hebben op de prestaties.
Schuif naar links in uw test. Integreer testen eerder in uw ontwikkelingscyclus om potentiële problemen te ondervangen voordat ze in productie plaatsvinden.
Schuif naar rechts in uw test. Testen in productie. Gebruik strategieën zoals blauwgroene implementaties en A/B-tests om ervoor te zorgen dat testen niet verstorend is.
Gebruik synthetische transacties in uw testfase. Met synthetische transacties kunt u de gebruikerservaring in de echte wereld consistent testen. Met deze tests kunt u problemen en mogelijke verbeteringen identificeren voordat gebruikers worden beïnvloed.
Bewaking en testen automatiseren. Gebruik bewezen hulpprogramma's om bewaking en waarschuwingen te automatiseren op basis van uw basislijn en voor prestatietests. Automatisering vermindert handmatige stappen en zorgt voor consistentie.
Compromis: Testen in productie kan complex zijn en vereist meestal aanzienlijke inspanningen van DevOps-teams. Deze vereisten kunnen invloed hebben op de snelheid van de ontwikkeling en andere operationele functies. Blauwgroene implementaties en A/B-tests kunnen ook kosten toevoegen aan de workload door dubbele resources te gebruiken bij het testen. Neem deze overwegingen op in uw budget- en ontwikkelingsplanning.
✓ Geavanceerde optimalisaties voor gegevensbeheer implementeren
In niveau 4 moet u al veel optimalisatiestrategieën voor gegevensbeheer hebben. Gebruik uw productie-ervaring om verdere optimalisaties te maken om uw gegevensbeheer nauwkeurig af te stemmen en ervoor te zorgen dat uw workload efficiënt presteert naarmate deze zich blijft ontwikkelen.
Gebruik verliesloze en verliesgevende gegevenscompressie om uw gegevensvoetafdruk te verminderen. Deze aanpak helpt bij het besparen van opslagruimte en bandbreedtegebruik en kan leiden tot snellere gegevensoverdracht en toegangstijden.
Ontwikkel en implementeer een archief- en verwijderingsbeleid voor gegevens die zelden of niet meer worden gebruikt. Verplaats gegevens naar afzonderlijke, goedkopere opslag of verwijder deze helemaal om opslagruimte en bandbreedtegebruik te besparen.
Verfijn uw cache- en shardingstrategieën op basis van productie-ervaring.
Repliceer gegevens naar regio's die zich dicht bij uw gebruikers bevinden om de latentie te verminderen. Sommige databasetechnologieën, zoals Azure Cosmos DB, bieden leesbare en schrijfbare replica's in meerdere regio's. Replica's verminderen de latentie verder wanneer u uw workload in verschillende regio's implementeert.
Neem de bewaking van opslagprestaties op in uw workloadbewakingsoplossing. Prestatieproblemen kunnen snel optreden wanneer opslaglimieten worden overschreden. Veel cloudopslagservices leggen beperking op wanneer drempelwaarden worden overschreden, wat knelpunten veroorzaakt die van invloed zijn op de functionaliteit van downstreamtoepassingen. Door opslagprestaties te bewaken en trends te bekijken, kunt u proactief limieten voorkomen.
✓ Kritieke stromen optimaliseren via isolatie
Indien praktisch kunt u kritieke stromen isoleren om conflicten tussen resources te voorkomen en het beheer te vereenvoudigen. Houd rekening met de volgende strategieën:
Reken-, opslag- en netwerkresources toewijzen aan kritieke stromen.
Gebruik containerisatiemethoden om kritieke stromen op software- of logisch niveau te isoleren.
Wijs expliciet capaciteit toe voor CPU, geheugen en schijfinvoer/-uitvoer aan kritieke stromen om ervoor te zorgen dat ze correct zijn ingericht.
Compromis: Het isoleren van stromen via toegewezen resources is duurder dan het delen van resources tussen stromen. Voer een kosten-batenanalyse uit voordat u deze aanpak implementeert om ervoor te zorgen dat dit de beste aanpak is voor uw use-case.
✓ Breid codeoptimalisaties uit die u hebt afgeleid van de productie-ervaring
Ga terug naar de codeoptimalisaties die u eerder in uw workloadontwikkeling hebt gemaakt om gebieden te vinden die verdere verbeteringen nodig hebben. U moet nu bijvoorbeeld telemetrie van productie hebben waarmee u inefficiënties kunt vinden, zoals geheugenlekken. U kunt ook de dynamische paden bevestigen die u hebt geïdentificeerd met behulp van productieruntimegegevens of u kunt onverwachte dynamische paden vinden.
✓ Operationele taken optimaliseren
Operationele taken zoals virusscans, geheime rotaties, back-ups, indexoptimalisatie, zoals reorganisatie of herbouwen, en implementaties kunnen allemaal van invloed zijn op de prestaties van uw workload. Door hun efficiëntie te optimaliseren, blijft uw workload soepel verlopen. Houd rekening met de volgende strategieën om deze typen taken te optimaliseren:
Operationele hulpprogramma's verfijnen. Test en begrijp hoe essentiële hulpprogramma's, zoals bewaking van bestandsintegriteit en virusscans, van invloed zijn op de prestaties. Verfijn vervolgens de configuraties voor hen. Maak bijvoorbeeld uitsluitingslijsten voor virusscans om de duur ervan te minimaliseren.
Databasebewerkingen verfijnen. Zoek naar mogelijkheden voor het verfijnen van bewerkingen zoals databaseback-ups, schemawijzigingen, het afstemmen van prestaties en bewaking. Gebruik systeemeigen hulpprogramma's zoals automatisch afstemmen in Azure SQL Database om deze inspanning te helpen.
Onderzoek en test nieuwe platformfuncties die beschikbaar komen om te bepalen of ze u kunnen helpen efficiënter te werken. Houd de feedback en prestatiegegevens van deze nieuwe toevoegingen voortdurend in de gaten om uw aanpak te verfijnen.
Afweging: Wees u bewust van hoe uw cloudplatform mogelijkheden in SKUs verpakt. Sommige SKU's die een hogere prestaties bieden, zijn mogelijk te veel beschikbaar voor uw huidige use-case, maar ze kunnen u tijd en moeite besparen in een toekomstige migratie.
Compromis: Het aannemen van bepaalde typen services kan betekenen dat uw toepassing of gegevens worden gemigreerd, wat kan leiden tot downtime om de migratie te voltooien. Bepaal als onderdeel van uw evaluatie of u de benodigde downtime kunt tolereren om te migreren.
✓ Optimalisatie-inspanningen prioriteren
Het proactief optimaliseren van de prestaties betekent dat de efficiëntie van uw workload wordt verbeterd voordat er problemen optreden door knelpunten te identificeren en optimalisaties te implementeren. Breng op basis van analyse specifieke verbeteringen aan via codewijzigingen, infrastructuuraanpassingen of configuratie-updates.
Piekprestaties bereiken door experimenten, automatisering en geavanceerde optimalisatietechnieken die meetbare bedrijfswaarde leveren.
Niveau 5 van het volwassen model is gericht op het identificeren van mogelijkheden om waardevolle prestatieverbeteringen in uw workload te maken. Neem een op experimenten gebaseerde benadering voor uw optimalisatie. Ga opnieuw naar ontwerpgebieden voor workloads, zoals implementatieprocedures, bewaking en foutopsporing en operationele automatisering om verdere verbeteringen te vinden. Gebruik een continue verbeteringsmentaliteit door regelmatig het ontwerp en de operationele procedures van workloads te bekijken. Gebruik vastgestelde processen voor wijzigingsbeheer om ervoor te zorgen dat verbeteringen veilig en efficiënt worden geïmplementeerd.
Belangrijke strategieën
Neem een proactieve benadering om de efficiëntie te verbeteren door middel van experimenten. Begin met een hypothese voor een workloadupdate die u verwacht meetbare prestatieverbeteringen te leveren, op basis van waargenomen prestatiegegevens die een knelpunt of inefficiëntie identificeren. Bouw een testomgeving die de werkelijke omstandigheden zo goed mogelijk nabootst om uw hypothese te valideren of weer te geven. Nadat u uw hypothese hebt bewezen, beoordeelt u het rendement op investering (ROI) van de wijziging om te bepalen of het de moeite waard is om te implementeren. Neem alle pijlers van Azure Well-Architected Framework op in uw ROI-evaluatie. Als de afwegingen die u moet maken voor andere pijlers acceptabel zijn, is de wijziging waarschijnlijk de moeite waard om te streven.
✓ Implementatie- en functiereleases optimaliseren
Op niveau 5 moet u een gestandaardiseerd upgradeproces hebben dat betrouwbaar functioneert. Evalueer op dit niveau uw processen opnieuw om te bepalen of uw huidige strategie het meest geschikt is voor operationele efficiëntie. Bepaal of blauwgroen, kanarie of een ander implementatiemodel het beste aansluit bij de behoeften van uw organisatie. Overweeg het gebruik van functievlagmen om functies eenvoudig uit te rollen en terug te draaien naar specifieke gebruikersgroepen. Zorg ervoor dat uw back-upstrategie ondersteuning biedt voor snel herstel naar een bekende goede status.
✓ Bewakings- en foutopsporingsprocessen optimaliseren
Het verzamelen van logboeken en telemetrie van uw onderdelen is inherent van invloed op uw prestaties. Meet hoe uw bewakingsplatform van invloed is op uw workload, inclusief elementen zoals logboekregistratie, telemetrie, instrumentatie en foutopsporing op afstand. Mogelijkheden voor optimalisatie identificeren. Als een van deze processen de prestaties meer vermindert dan ze de waarneembaarheid verbeteren, kunt u overwegen deze opnieuw te configureren of uit te schakelen. Controleer regelmatig de bewakingsgegevens die u verzamelt om ervoor te zorgen dat u alleen de meest waardevolle informatie verzamelt voor de prestatie-inzichten die u nodig hebt.
Evalueer uw prestatiewaarschuwingen opnieuw om te bepalen of u alleen waardevolle waarschuwingen ontvangt. Verwijder waarschuwingen die niet kunnen worden uitgevoerd en configureer waarschuwingen die onvoldoende informatie hebben om duidelijk inzicht te krijgen in de aard van het prestatieprobleem en de betrokken onderdelen.
✓ Automatisering van bewerkingen uitbreiden
Zoek naar mogelijkheden om uw automatisering van operationele taken uit te breiden om verdere efficiëntie te bereiken. U moet veel terugkerende operationele taken geautomatiseerd hebben op niveau 5, dus bekijk de bewerkingen uitgebreid om andere waardevolle automatiseringsdoelen te identificeren. Houd rekening met de volgende prestatiegerelateerde taken:
Prestatietests: Gebruik gevestigde, industriestandaard hulpprogramma's om workloads te simuleren.
Implementaties: Implementeer hulpprogramma's voor continue integratie en continue implementatie voor consistente en efficiënte implementaties.
Incidentbeheer: Automatiseer waarschuwingsroutering, het maken van tickets en toewijzingen.
Herstelacties: Automatiseer acties zoals het opnieuw opstarten van services en het aanpassen van resourcetoewijzingen.
Zelfherstelmechanismen: Bouwmogelijkheden om automatisch bekende prestatieproblemen op te lossen.