Compromessi tra efficienza delle prestazioni per i carichi di lavoro Power Platform
Un carico di lavoro che raggiunge i propri obiettivi prestazionali senza sovradimensionamento è efficiente. Le strategie chiave per l'efficienza delle prestazioni includono l'uso appropriato delle ottimizzazioni del codice, dei modelli di progettazione e della pianificazione della capacità. Questo pilastro è sostenuto da obiettivi prestazionali chiari e da test.
Durante la fase di progettazione di un carico di lavoro, è importante considerare come le decisioni basate sui principi di progettazione dell'efficienza delle prestazioni e sulle raccomandazioni contenute nella checklist di revisione della progettazione per l'efficienza delle prestazioni potrebbero influenzare gli obiettivi e gli sforzi di ottimizzazione di altri pilastri. ... ... Alcune decisioni possono avvantaggiare alcuni pilastri, ma rappresentare dei compromessi per altri. In questo articolo vengono elencati alcuni esempi di compromessi che un team addetto al carico di lavoro potrebbe incontrare durante la progettazione dell'architettura e delle operazioni del carico di lavoro per l'efficienza delle prestazioni.
Compromessi tra efficienza delle prestazioni e affidabilità
Compromesso: riduzione della replicazione e aumento della densità. Un pilastro dell'affidabilità è garantire la resilienza utilizzando la replicazione e limitando il raggio di esplosione dei malfunzionamenti.
- Il consolidamento delle risorse del carico di lavoro può utilizzare la capacità in eccesso e migliorare l'efficienza. Tuttavia, aumenta il raggio di esplosione di un malfunzionamento nel componente o nella piattaforma applicativa co-ubicati.
Compromesso: maggiore complessità. L'affidabilità privilegia la semplicità.
Il partizionamento e lo sharding dei dati aiutano a evitare problemi di prestazioni in set di dati di grandi dimensioni o a cui si accede frequentemente. Tuttavia, l'implementazione di questi modelli aumenta la complessità perché (alla fine) è necessario mantenere la coerenza tra le risorse aggiuntive.
La denormalizzazione dei dati per modelli di accesso ottimizzati può migliorare le prestazioni, ma introduce complessità perché è necessario mantenere sincronizzate più rappresentazioni di dati.
Talvolta i modelli di progettazione cloud incentrati sulle prestazioni richiedono l'introduzione di componenti aggiuntivi. L'utilizzo di questi componenti aumenta la superficie del carico di lavoro. Quindi, per garantire l'affidabilità dell'intero carico di lavoro, è necessario che i componenti stessi siano resi affidabili.
Compromesso: test e osservazione su ambienti attivi. Evitare l'uso non necessario di sistemi di produzione è un approccio di autoconservazione per l'affidabilità.
I test delle prestazioni in ambienti attivi comportano il rischio di causare malfunzionamenti dovuti alle azioni o alle configurazioni dei test.
I carichi di lavoro dovrebbero essere dotati di un sistema di monitoraggio delle prestazioni delle applicazioni (APM) che consenta ai team di imparare dagli ambienti attivi. Gli strumenti APM vengono installati e configurati nel codice dell'applicazione o nell'hosting ambiente. L'uso improprio, il superamento dei limiti o la configurazione errata dello strumento possono comprometterne la funzionalità e manutenzione, compromettendone potenzialmente l'affidabilità.
Compromessi tra efficienza delle prestazioni e sicurezza
Compromesso: riduzione dei controlli di sicurezza. I controlli di sicurezza vengono stabiliti su più livelli, a volte in modo ridondante, per garantire una difesa approfondita.
Una strategia di ottimizzazione delle prestazioni consiste nell'eliminare o bypassare componenti o processi che contribuiscono a ritardare un flusso, soprattutto quando il loro tempo di elaborazione non è giustificato. Questa strategia, tuttavia, può compromettere la sicurezza e deve essere accompagnata da un'analisi approfondita dei rischi. Di seguito sono illustrati alcuni esempi:
La rimozione della crittografia durante il transito o a riposo per migliorare la velocità di trasferimento espone i dati a potenziali violazioni dell'integrità o della riservatezza.
La rimozione o la riduzione degli strumenti di scansione o ispezione di sicurezza per ridurre i tempi di elaborazione può compromettere la riservatezza, l'integrità o la disponibilità di tali strumenti proteggere.
La rimozione delle regole del firewall dai flussi di rete per migliorare la latenza della rete può consentire comunicazioni indesiderate.
Ridurre al minimo la convalida dei dati per un'elaborazione più rapida potrebbe comprometterne l'integrità, soprattutto se gli input sono dannosi.
Compromesso: maggiore superficie di carico di lavoro. La sicurezza dà priorità a una superficie ridotta e contenuta per ridurre al minimo i vettori di attacco e ridurre la gestione dei controlli di sicurezza.
Talvolta i modelli di progettazione cloud incentrati sulle prestazioni richiedono l'introduzione di componenti aggiuntivi. Questi componenti aumentano la superficie del carico di lavoro. I nuovi componenti devono essere protetti, possibilmente con modalità non già utilizzate nel sistema, e spesso aumentano l'ambito di conformità. Considerate questi componenti comunemente aggiunti:
Introduzione di diversi metodi di gestione della logica aziendale, come flussi cloud e plugin con poco codice, in base ai requisiti prestazionali di ciascun attività.
Trasferimento dell'elaborazione a processi in background o addirittura al computer client.
Compromesso: rimozione della segmentazione. Il pilastro Sicurezza dà priorità a una segmentazione avanzata per abilitare controlli di sicurezza dettagliati e ridurre il raggio di esplosione.
La condivisione delle risorse è un approccio per migliorare l'efficienza. Aumenta la densità per ottimizzare l'utilizzo della capacità. Ad esempio, riutilizzando i plugin con poco codice in più app canvas e flussi cloud. L'aumento della densità può comportare i seguenti problemi di sicurezza:
Un'identità di carico di lavoro condivisa che viola il principio del privilegio minimo e nasconde i singoli percorsi di controllo nei registri di accesso.
Controlli di sicurezza perimetrali, ad esempio regole di rete, ridotti per coprire tutti i componenti co-ubicati, concedendo ai singoli componenti un accesso maggiore del necessario.
Compromessi tra efficienza delle prestazioni ed eccellenza operativa
Compromesso: osservabilità ridotta. Il monitoraggio è necessario per fornire un carico di lavoro con avvisi significativi e contribuire a garantire il successo dell'incidente risposta.
La riduzione del volume di log e metriche per diminuire il tempo di elaborazione dedicato alla raccolta dei dati di telemetria anziché ad altre attività riduce l'osservabilità complessiva del sistema. Ecco alcuni esempi della ridotta osservabilità risultante:
- Limita i punti dati utilizzati per creare avvisi significativi.
- Ciò comporta lacune nella copertura delle attività relative agli incidenti risposta.
- Limita l'osservabilità nelle interazioni e nei confini sensibili alla sicurezza o alla conformità.
Quando vengono implementati modelli di progettazione delle prestazioni, la complessità del carico di lavoro spesso aumenta. I componenti vengono aggiunti ai flussi critici. La strategia di monitoraggio del carico di lavoro e il monitoraggio delle prestazioni devono includere tali componenti. Quando un flusso si estende su più componenti o limiti applicativi, aumenta la complessità del monitoraggio delle prestazioni di tale flusso. Le prestazioni del flusso devono essere correlate tra tutti i componenti interconnessi.
Compromesso: maggiore complessità nelle operazioni. Un ambiente complesso presenta interazioni più complesse e una maggiore probabilità di un impatto negativo da parte di operazioni di routine, ad hoc e di emergenza.
Il miglioramento dell'efficienza delle prestazioni mediante l'aumento della densità aumenta il rischio nelle attività operative. Un errore in un singolo processo può avere un raggio di esplosione ampio.
Man mano che vengono implementati, i modelli di progettazione delle prestazioni influenzano le procedure operative come backup, rotazioni delle chiavi e strategie di ripristino. Ad esempio, il partizionamento e lo sharding dei dati possono complicare le attività di routine quando i team cercano di garantire che tali attività non influiscano sulla coerenza dei dati.
Compromesso: stress culturale. L'eccellenza operativa si fonda su una cultura basata sull'irreprensibilità, sul rispetto e sul miglioramento continuo.
L'analisi delle cause profonde dei problemi di prestazioni consente di individuare carenze nei processi o nelle implementazioni che richiedono una correzione. Il team dovrebbe considerare l'esercizio come un'opportunità di apprendimento. Se si dà la colpa ai membri del team per i problemi, il morale può risentirne.
I processi di routine e ad hoc possono influire sulle prestazioni del carico di lavoro. Spesso si ritiene preferibile svolgere queste attività in orari non di punta. Tuttavia, gli orari non di punta possono risultare scomodi o posticipati rispetto agli orari di lavoro regolari per i membri del team responsabili o qualificati per queste attività.
Compromessi tra efficienza delle prestazioni e ottimizzazione dell'esperienza
Compromesso: minore coinvolgimento degli utenti. Il pilastro Ottimizzazione dell'esperienza dà priorità a esperienze utente più coinvolgenti.
L'ottimizzazione delle prestazioni privilegia l'uso delle funzionalità della piattaforma rispetto alle personalizzazioni, il che sminuisce la priorità dei componenti personalizzati che potrebbero offrire un'esperienza utente più coinvolgente.
L'ottimizzazione delle prestazioni può concentrarsi troppo sulla riduzione della complessità, il che sminuisce l'importanza di funzionalità per esperienze utente più coinvolgenti, come componenti e integrazioni personalizzate.
Lo sviluppo dell'interfaccia utente è spesso Fatto basato su iterazioni e cicli di distribuzione più rapidi, il che può rendere più difficile il miglioramento continuo delle prestazioni.