Kompromisser med prestandaeffektivitet för Power Platform arbetsbelastningar
En arbetsbelastning som uppfyller sina prestandamål utan överetablering är effektiv. Viktiga strategier för prestandaeffektivitet är korrekt användning av kodoptimeringar, designmönster och kapacitetsplanering. Tydliga prestandamål och testning ligger till grund för denna pelare.
Under designfasen av en arbetsbelastning är det viktigt att tänka på hur beslut som baseras på designprinciperna och rekommendationerna för prestandaeffektivitet i checklistan för designgranskning för prestandaeffektivitet kan påverka målen och optimeringsarbetet för andra pelare. Vissa beslut kan gynna vissa pelare, men ändå innebära kompromisser för andra. Den här artikeln innehåller exempel på kompromisser som ett arbetsbelastningsteam kan stöta på när de utformar arbetsbelastningsarkitektur och åtgärder för prestandaeffektivitet.
Avvägningar mot prestandaeffektivitet och tillförlitlighet
Kompromiss: Minskad replikering och ökad densitet. En hörnsten i tillförlitligheten är att säkerställa motståndskraft genom att använda replikering och begränsa explosionsradien för fel.
- Genom att konsolidera arbetsbelastningsresurser kan överskottskapacitet användas och effektiviteten förbättras. Det ökar dock sprängradien för ett fel i den samlokaliserade komponenten eller applikationsplattformen.
Kompromiss: Ökad komplexitet. Tillförlitlighet prioriterar enkelhet.
Datapartitionering och horisontell partitionering hjälper till att undvika prestandaproblem i stora eller ofta använda datamängder. Implementeringen av dessa mönster ökar dock komplexiteten eftersom (slutlig) konsekvens måste upprätthållas över ytterligare resurser.
Avnormalisering av data för optimerade åtkomstmönster kan förbättra prestandan, men det medför komplexitet eftersom flera representationer av data måste hållas synkroniserade.
Prestandacentrerade molndesignmönster kräver ibland introduktion av ytterligare komponenter. Användningen av dessa komponenter ökar arbetsbelastningens yta. Komponenterna måste då själva göras tillförlitliga för att hålla hela arbetsbelastningen tillförlitlig.
Kompromiss: Testning och observation av aktiva miljöer. Att undvika onödig användning av produktionssystem är en självbevarelsedrift för tillförlitlighet.
Prestandatestning i aktiva miljöer medför risk för att orsaka funktionsfel på grund av teståtgärderna eller konfigurationerna.
Arbetsbelastningar bör instrumenteras med ett APM-system (Application Performance Monitoring) som gör det möjligt för team att lära sig av aktiva miljöer. APM-verktyget installeras och konfigureras i programkoden eller i värdmiljön. Felaktig användning, överskridande av begränsningar eller felkonfiguration av verktyget kan äventyra dess funktionalitet och underhåll, vilket kan undergräva tillförlitligheten.
Avvägningar mellan prestanda och effektivitet med säkerhet
Kompromiss: Minskning av säkerhetskontroller. Säkerhetskontroller upprättas i flera lager, ibland redundant, för att ge skydd på djupet.
En strategi för prestandaoptimering är att ta bort eller kringgå komponenter eller processer som bidrar till förseningar i ett flöde, särskilt när deras bearbetningstid inte är motiverad. Denna strategi kan dock äventyra säkerheten och bör åtföljas av en grundlig riskanalys. Föreställ dig följande exempel:
Att ta bort kryptering under överföring eller i vila för att förbättra överföringshastigheterna exponerar data för potentiella integritets- eller konfidentialitetsöverträdelser.
Att ta bort eller minska säkerhetsgenomsöknings- eller inspektionsverktyg för att minska bearbetningstiderna kan äventyra konfidentialiteten, integriteten eller tillgängligheten som dessa verktyg skyddar.
Om du tar bort brandväggsregler från nätverksflöden för att förbättra nätverksfördröjningen kan oönskad kommunikation tillåtas.
Att minimera dataverifiering för snabbare databehandling kan äventyra dataintegriteten, särskilt om indata är skadliga.
Kompromiss: Ökad arbetsbelastningsyta. Säkerheten prioriterar en reducerad och innesluten yta för att minimera attackvektorer och minska hanteringen av säkerhetskontroller.
Prestandacentrerade molndesignmönster kräver ibland introduktion av ytterligare komponenter. Dessa komponenter ökar arbetsbelastningens yta. De nya komponenterna måste skyddas, eventuellt på sätt som inte redan används i systemet, och de ökar ofta efterlevnadsomfånget. Tänk på följande komponenter som ofta läggs till:
Introducera flera olika metoder för att hantera affärslogik, till exempel molnflöden och plugin-program med lågkod, baserat på prestandakraven för varje uppgift.
Avlastning av bearbetning till bakgrundsjobb eller till och med klientberäkning.
Kompromiss: Ta bort segmentering. Pelaren Säkerhet prioriterar stark segmentering för att möjliggöra detaljerade säkerhetskontroller och minska explosionsradien.
Att dela resurser är ett tillvägagångssätt för att förbättra effektiviteten. Det ökar densiteten för att optimera kapacitetsanvändningen. Du kan till exempel återanvända plugin-program med lågkod i flera arbetsyteappar och molnflöden. Den ökade densiteten kan leda till följande säkerhetsproblem:
En delad arbetsbelastningsidentitet som bryter mot principen om lägsta behörighet och döljer enskilda granskningsloggar i åtkomstloggar.
Perimetersäkerhetskontroller, till exempel nätverksregler, som reduceras för att täcka alla samlokaliserade komponenter, vilket ger enskilda komponenter mer åtkomst än nödvändigt.
Avvägningar för prestandaeffektivitet med utmärkt driftseffektivitet
Kompromiss: Minskad observerbarhet. Övervakning är nödvändigt för att tillhandahålla en arbetsbelastning med meningsfulla aviseringar och bidra till att säkerställa ett lyckat svar på incidenter.
Om du minskar logg- och måttvolymen för att minska bearbetningstiden för att samla in telemetri i stället för andra uppgifter minskar systemets övergripande observerbarhet. Några exempel på den resulterande minskade observerbarheten är:
- Det begränsar de datapunkter som används för att skapa meningsfulla aviseringar.
- Det leder till luckor i täckningen för incident- svar aktiviteter.
- Det begränsar observerbarheten i säkerhetskänsliga eller efterlevnadskänsliga interaktioner och gränser.
När designmönster för prestanda implementeras ökar ofta komplexiteten i arbetsbelastningen. Komponenter läggs till i kritiska flöden. Strategin för arbetsbelastningsövervakning och prestandaövervakning måste innehålla dessa komponenter. När ett flöde sträcker sig över flera komponenter eller programgränser ökar komplexiteten i att övervaka flödets prestanda. Flödesprestanda måste korreleras mellan alla sammankopplade komponenter.
Kompromiss: Ökad komplexitet i åtgärderna. En komplex miljö har mer komplexa interaktioner och en högre sannolikhet för negativ påverkan från rutinmässiga, ad hoc- och nödåtgärder.
Att förbättra prestandaeffektiviteten genom att öka densiteten ökar risken i operativa uppgifter. Ett fel i en enskild process kan ha en stor sprängradie.
När prestandadesignmönster implementeras påverkar de operativa procedurer som säkerhetskopieringar, nyckelrotationer och återställningsstrategier. Datapartitionering och horisontell partitionering kan till exempel komplicera rutinuppgifter när team försöker se till att dessa uppgifter inte påverkar datakonsekvensen.
Kompromiss: Kulturell stress. Operational Excellence har sina rötter i en kultur av oskuldsfullhet, respekt och ständiga förbättringar.
Genom att genomföra grundorsaksanalys av prestandaproblem identifieras brister i processer eller implementeringar som behöver korrigeras. Teamet bör betrakta övningen som ett tillfälle att lära sig. Om teammedlemmar får skulden för problem kan moralen påverkas.
Rutinmässiga processer och ad hoc-processer kan påverka arbetsbelastningens prestanda. Det anses ofta vara att föredra att utföra dessa aktiviteter under lågtrafik. Lågtrafik kan dock vara obekväma eller utanför ordinarie arbetstid för de teammedlemmar som ansvarar för eller är skickliga på dessa uppgifter.
Avvägningar för prestandaeffektivitet med upplevelseoptimering
Kompromiss: Minskat användarengagemang. Grundpelaren för upplevelseoptimering prioriterar mer engagerande användarupplevelser.
Optimering för prestanda prioriterar användning av plattformsfunktioner framför anpassningar, vilket nedprioriterar anpassade komponenter som kan leda till en mer engagerande användarupplevelse.
Optimering för prestanda kan fokusera för mycket på att minimera komplexiteten, vilket nedprioriterar funktioner för mer engagerande användarupplevelser, till exempel anpassade komponenter och integreringar.
Utveckling av användargränssnitt görs ofta i snabbare iterationer och leveranscykler, vilket kan göra det svårare att förbättra prestandan kontinuerligt.