Förbättra effektiviteten genom optimering
Förbättra systemeffektiviteten inom de definierade prestandamålen för att öka arbetsbelastningsvärdet. |
---|
De mål som anges under den inledande fasen baseras på en rimlig nivå av användarupplevelse, med hänsyn till olika begränsningar. Du bör omvärdera och justera målen för att ytterligare förbättra upplevelsen. För att ytterligare förbättra upplevelsen krävs en tydlig förståelse för hur systemet används, hur det har utvecklats och hur plattformen eller tekniken har förändrats över tid. Cykeln för övervakning, optimering, testning och distribution är en kontinuerlig process.
Effektivitetsoptimering gör att en arbetsbelastning kan arbeta med lägre resursförbrukning. De kan göra att arbetsbelastningen är i ett överetablerad tillstånd med outnyttjad kapacitet. Använd den kapaciteten för att förbättra systemets tillförlitlighet. Eliminera kapacitet för att förbättra kostnaden för systemet. Eller använd kapaciteten igen för att stödja nya produktfunktioner på befintliga resurser.
När systemet får effektivitet tar du tillfället i akt att ange och underhålla nya prestandamål.
Exempelscenario
Contosos HR-teknikteam stöder anpassade integreringar i organisationens informationssystem för personalfrågor (HRIS). Dessa integreringar omfattar ekonomiintegreringar för löner, anställningsstatistik för statlig arbetsrättsrapportering och andra. De flesta integreringarna är Azure Functions skrivna i C# som finns i ett Azure Arc-aktiverat Kubernetes-kluster i organisationens datacenter. De flesta jobben har fungerat bra, men på grund av en fördröjning i bearbetningen gör några få teamet oroliga eftersom ibland kritiska data inte är tillgängliga när HR-chefen behöver det.
Prioritera prestandaoptimeringar
Allokera dedikerade cykler för prestandaoptimering för att hantera icke-funktionella krav och optimeringar inom funktionella områden. Målen för den här optimeringen är resurser, kod, datakvarhållning, databasfrågor och andra.
Genom att använda den här metoden kan du skapa en kultur av prestandadriven optimering. Du håller teamet ansvarigt för proaktiv övervakning av prestandamönster och finjusterar även programmet.
Contosos utmaning
- Teamet är ganska skrapigt, och deras kvarvarande uppgifter är långa. För det mesta arbetar de i ett "eld och glöm"-tänkesätt när de skriver och distribuerar integreringar; integreringarna skrivs, distribueras och sedan går teamet vidare till nästa uppgift.
- Teamet har kallats för problem med kritisk incidentsupport ofta på grund av att ledningen inte har åtkomst till data i tid.
- Teamet är mycket medvetet om att förbättringar måste göras, men har inte prioriterat att göra de nödvändiga ändringarna.
Tillämpa metoden och resultaten
- Teamet tilldelar nu 20 % av varje sprint för teknisk skuld och andra optimeringsaktiviteter. Detta är att köpa teknikteamet tid att prioritera och ta itu med kritiska områden och andra områden där påverkan kan vara mest meningsfull.
- Genom att använda den här metoden kan teamet ägna den tid som krävs för att åtgärda prestandaproblem som orsakar fördröjningar i bearbetningen av data.
Leta efter designförbättringar
Förbättra arkitekturen med nya designmönster och komponenter, vilket kan öka prestandan, på sätt som du tidigare inte har tänkt på på grund av begränsad tid eller budget.
Ny design och komponenter kan optimera systemet, vilket leder till bättre användarupplevelse och långsiktiga kostnadseffektivitet. Du kan till exempel använda cachelagring eller lägga till en nätverkskomponent för innehållsleverans.
Contosos utmaning
- Teamet har använt Azure Functions och utlösarbaserade flöden i flera år och har inte ägnat tid åt att utvärdera alternativ till den här metoden.
Tillämpa metoden och resultaten
- Teamet tittar på andra sätt att använda Azure Functions och upptäcker att varaktiga funktioner stöder en modell som kan hjälpa dem att parallellisera en viss löneuppgift.
- Teamet införlivar det här mönstret i sin designkatalog för framtida design. Det var också en bra påminnelse om att titta på andra sätt att hantera ineffektivitet i prestanda än bara kodoptimeringar och datarensning.
Analysera telemetri och trender
Använd övervakningsverktyg för att analysera historiska trender och identifiera de flöden och kodimplementeringsvägar som skulle dra mest nytta av en prestandaoptimering. Vi rekommenderar APM-verktyg (Application Performance Monitoring) och profilerare för detta ändamål. Identifiera dessutom aktiva sökvägar för åtgärder och andra potentiella flaskhalsar i systemet.
När du identifierar de återkommande problematiska områdena kan teamet fokusera där vinsterna är högst.
Contosos utmaning
- Teamet har instrumenterat alla funktioner med Azure Application Insights.
- De använder mestadels Application Insights för problem med brytkorrigeringar och för loggningsmottagaren.
- Historiskt sett har deras inställning till målområden för förbättringar baserats på feedback från ledningsgruppen.
Tillämpa metoden och resultaten
- Även om feedbacken är viktig inser teamet att Application Insights gör ett ganska bra jobb med att identifiera hotspots i de program som den övervakar.
- Teamet börjar dra nytta av den här funktionen och i kombination med att veta vilka flöden som är viktiga blir det ett värdefullt verktyg för teamets 20 % arbete med tekniska förbättringar och effektivitet.
- Med Application Insights kan teamet proaktivt identifiera en riskfylld integrering och hantera den innan en medlem i ledningsgruppen upplever ett problem.