Prestaties behalen en onderhouden

Voltooid
Bescherm tegen prestatievermindering terwijl het systeem in gebruik is en naarmate het zich ontwikkelt.

Ontwikkeling is geen eenmalige inspanning. Het is een doorlopend proces. Verwacht wijzigingen in de prestaties naarmate de functies veranderen. Er is een variantie in gebruikerspatronen en -profielen, zelfs wijzigingen ten opzichte van optimalisaties in andere goed ontworpen pijlers van Azure. Elke wijziging kan workloadresources belasten.

Beveilig het systeem tegen wijzigingen, zodat het niet terugschuift op prestatiedoelen. Integreer testen en bewaken in het ontwikkelingsproces. Test de prestaties van het systeem in productie met echte belasting en simuleer die belasting met geautomatiseerde tests voorafgaand aan de productie. In beide gevallen moet u controleprocedures hebben voor verificatiedoeleinden.

Gedurende de ontwikkelingslevenscyclus voert u verschillende soorten tests uit in verschillende fasen. Test in de eerste fasen het proof-of-concept om ervoor te zorgen dat de prestatieresultaten niet volledig onverwacht zijn. Naarmate de ontwikkeling vordert, voert u handmatige tests met weinig inspanning uit om benchmarks vast te stellen. Begin in de buildfase met het ontwikkelen van geautomatiseerde routineprestatietests die latentie, stressniveaus, belastingcapaciteit en andere kenmerken evalueren die zijn gedefinieerd in de testplannen.

Bewaking moet een integraal onderdeel van die inspanning zijn, in plaats van een geïsoleerde oefening te zijn. U kunt zien hoe het systeem en de bijbehorende resources in de loop van de tijd presteren. Vervolgens kunt u ze verfijnen om hun waarde te maximaliseren en ervoor te zorgen dat ze blijven voldoen aan de prestatiestandaarden.

Houd er rekening mee dat prestatiedoelen in de loop van de tijd variëren als reactie op wijzigingen. Werk het prestatiemodel bij op basis van geteste en bewaakte metrische gegevens. Geef duidelijk een verhoogd, verminderd of geen effect op de prestaties van de stromen aan.

Wees altijd klaar om te heronderhandelen en verwachtingen opnieuw in te stellen met zakelijke belanghebbenden.

Voorbeeldscenario

Contoso Event Solutions biedt een product dat medewerkers die toegang tot evenementen kunnen gebruiken om tickets op een mobiel apparaat te scannen en snel toegang te geven tot een ticketlocatie voor degenen die zijn geautoriseerd. Het systeem is beschikbaar met zowel een volledig offlinemodus als ook als een cloudversie voor locaties die zich zorgen maken over duplicatie van tickets. De offlinemodus presteert zeer goed, maar de onlinemodus miste de prestatiedoelen. Het ontwikkelingsteam heeft onlangs een aantal ontwikkelingscycli geïnvesteerd om eraan te werken, en de prestaties zijn nu veel verbeterd en voldoen aan doelen. Zakelijke belanghebbenden willen hun klantenbestand binnenkort uitbreiden om grotere locaties te ondersteunen.

Testen op prestaties in ontwikkeling

Formaliseer prestatietests als kwaliteitspoorten die releasepromotie kunnen goedkeuren of weigeren en de uiteindelijke implementatie naar productie.

Deze controlepunten zorgen ervoor dat elke implementatiefase voldoet aan de vereiste prestatiestandaarden voordat u verdergaat met de volgende. De controlepunten helpen onbedoelde prestatieregressie te voorkomen. Als de prestaties bijvoorbeeld aanzienlijk lager zijn dan de verwachtingen, kunt u een release blokkeren totdat er verbeteringen worden aangebracht.

De uitdaging van Contoso

  • Het team heeft veel tijd en moeite geïnvesteerd om acceptabele prestaties te bereiken voor de onlineversie van de toepassing, maar ze hebben momenteel geen systeem om een regressie te voorkomen.
  • De volgende functie die ze van plan zijn toe te voegen, is de mogelijkheid voor een locatie om een foto van de deelnemer weer te geven, samen met de scan voor extra verificatie. Er bestaat een risico dat het proces wordt vertraagd door het extra zoeken en downloaden van foto's.
  • Zonder een formeel proces is er een risico dat de prestaties van zowel de online- als offlineversies negatief kunnen worden beïnvloed door de extra functionaliteit en dat ze onder hun doelen vallen.

De aanpak en resultaten toepassen

  • Het team integreert geautomatiseerde prestatietests in de build-pijplijn. Door strikte op prestaties gebaseerde 'go/no-go'-criteria in de build-pijplijn te implementeren, is het team er zeker van dat de nieuwe functie niet wordt uitgebracht met een prestatieregressie.
  • Het team was verstandig om deze test te implementeren, omdat er een bug is opgetreden in de nieuwste versie van de build. De fout dwong de app om verbinding te maken met internet om een afbeelding te downloaden terwijl de scanner is ingesteld op de offlinemodus, waardoor er een time-out optreedt bij elke ticketscan. Door deze fout te ondervangen met de geautomatiseerde tests kon het team de fout oplossen voordat de nieuwe versie werd uitgebracht.

Optimaliseren via waarneembaarheid

Stel een herhaalbaar proces in voor het bewaken van echte transacties in productie en afwijkingen op basis van uw prestatiedoelen. Daarnaast kunt u synthetische transacties in productie gebruiken en bewakingswaarschuwingen instellen voor prestatieregressies.

U wilt inzicht krijgen in de werkelijke prestaties van uw systeem onder werkelijke belasting die niet kan worden gesimuleerd via tests. Vervolgens kunt u proactief problemen en verbeteringsgebieden identificeren, zoals potentiële knelpunten, onderbenutte resources en andere problemen.

De uitdaging van Contoso

  • Tijdens een gebeurtenis waarbij ze online ticketvalidatie gebruiken, wordt het back-endsysteem intensief gebruikt.
  • Er is een APM-systeem (Application Performance Monitoring) aanwezig, maar het is niet gebruikt om de status van productietransacties te bewaken.

De aanpak en resultaten toepassen

  • Het team heeft besloten bijgewerkte processen aan te nemen om de metrische statusgegevens beter vast te leggen:
    • Ze configureren waarschuwingen op basis van prestatie percentielen en voor prestatie-uitbijters. Geen waarschuwingen geven aan dat het systeem in acceptabele bereiken voor de meeste ticketscans wordt uitgevoerd.
    • Nadat een offlinegebeurtenis is voltooid, worden de telemetriegegevens voor ticketscans geüpload in batch en doorlopen deze metrische gegevens ook een proces om te zoeken naar afwijkingen van acceptabele prestaties.
    • Het team implementeert ook synthetische transactietests om hun prestatiebewaking te verbeteren. Omdat bijna alle evenementen plaatsvinden in het weekend en 's avonds, gebruikt het team de hele week synthetische transactietests om een consistentere prestatiebasislijn te genereren.

Werkbelastingwijzigingen intelligent afhandelen

Verhelp prestatieverlies naarmate het gebruik toeneemt, functies veranderen en gegevens zich in de loop van de tijd verzamelen om de prestaties te ondersteunen. Stel verwachtingen opnieuw in en stel nieuwe doelen vast, als afstemming alleen voordelen op korte termijn oplevert.

Door deze aanpak te gebruiken, kunt u de prestatiestatus behouden voordat degradatie zich ontwikkelt tot problemen die de gebruikerservaring negatief beïnvloeden buiten het acceptabele bereik.

Als u doelen wijzigt, wordt het prestatiemodel opnieuw ingesteld en hoeft u geen tijd te verspillen aan het optimaliseren van het systeem dat al de capaciteit heeft bereikt.

De uitdaging van Contoso

  • Het verkoopteam is agressief onboarding van nieuwe evenementenlocaties in het systeem geweest. Zaken zijn goed.
  • Het bewakingssysteem voor werkbelastingen ziet dat het prestatiebudget steeds meer in de loop van de tijd wordt opgegeten, zelfs zonder de introductie van nieuwe functies.
  • Zonder een wijziging kan dit traject leiden tot een onacceptabele regressie in de prestaties, waardoor de workload risico loopt op een storing als er een incident optreedt.

De aanpak en resultaten toepassen

  • Het team realiseert zich dat wanneer meer klanten onboarden, het mechanisme voor het opzoeken van gegevens voor onlinegebeurtenissen een zeer grote scan uitvoert op de gegevens voor veel query's.
  • Sommige queryoptimalisatie heeft ervoor gezorgd dat het toegenomen gebruik extra schade veroorzaakt. In de komende maanden is het team van plan om verschillende gebeurtenissen op te splitsen in verschillende gegevenspartities om de noodzaak voor het scannen van query's te verminderen. Dit biedt ondersteuning voor het continue uitschalen van de workload.
  • Ze realiseren zich ook dat ze het systeem verder kunnen optimaliseren om te groeien door ticketgegevens uit oude gebeurtenissen te verwijderen. Het zoeken naar oude gebeurtenissen is niet iets wat het ticketvalidatiesysteem moet doen, zodat gegevens kunnen worden verplaatst naar een archief dat speciaal is voor rapportage en historische zoekopdrachten.

Test uw kennis

1.

Waar of niet waar: het testen van de prestaties tijdens de productie wordt niet aanbevolen.

2.

Welke van de volgende aspecten van uw workload moet u controleren om ervoor te zorgen dat aan prestatiedoelen wordt voldaan?

3.

Waarom is het Contoso-team van plan om de databasestructuur te wijzigen?