Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Efficienza delle prestazioni significa uso efficace delle risorse del carico di lavoro. Senza una buona strategia, potrebbe non essere possibile prevedere e soddisfare le esigenze degli utenti. Potrebbe essere necessario ricorrere a un approccio di pre-provisioning della capacità in base alle previsioni a lungo termine, che non consente di sfruttare appieno la piattaforma cloud.
L'efficienza delle prestazioni è la capacità di un carico di lavoro di adattarsi alle esigenze mutevoli aumentando il carico in modo da soddisfare un aumento del carico senza influire sull'esperienza utente e riducendo le risorse durante una bassa domanda. La capacità svolge un ruolo centrale, ma affidandosi esclusivamente alle risorse con provisioning preliminare può causare problemi di prestazioni in costi elevati di carico e non necessari durante un utilizzo ridotto.
Invece di considerare le prestazioni come un afterthought, è una considerazione fondamentale fin dall'inizio. Iniziare presto, anche se non si hanno obiettivi di prestazioni rigorosi, testare e perfezionare in tutto lo sviluppo. Questa ottimizzazione continua, informata dall'utilizzo reale, consente di evitare problemi futuri e garantisce prestazioni coerenti.
Una strategia ben pianificata consente di allineare la capacità delle risorse alle esigenze aziendali riducendo al minimo gli sprechi. Dopo aver definito l'approccio, usare l'elenco di controllo Per l'efficienza delle prestazioni per convalidare la progettazione. Senza una strategia proattiva, si rischia di affidarsi alla previsione statica e mancano i vantaggi completi dell'infrastruttura cloud scalabile.
Negoziare obiettivi di prestazioni realistici
|
---|
Dal punto di vista delle prestazioni, è ideale disporre di target sulle prestazioni ben definiti per avviare il processo di progettazione. Per definire tali target, è necessario avere una buona conoscenza dei requisiti aziendali e della qualità prevista del servizio che il carico di lavoro dovrebbe offrire. Definire le aspettative in collaborazione con gli stakeholder aziendali. Invece di concentrarsi solo sulle metriche tecniche, determinare gli effetti accettabili sull'esperienza utente per i flussi chiave.
È presente una dipendenza circolare. Non è possibile misurare ciò che non è stato definito e non è possibile definire senza misurazione. È quindi importante misurare le prestazioni del carico di lavoro fino a ottenere una definizione soddisfacente di soglia accettabile con contratto collettivo.
È presente una forte correlazione tra obiettivi di prestazioni e affidabilità, che consente di determinare la qualità del servizio in termini di prestazioni, disponibilità e resilienza. Senza una definizione chiara, è difficile misurare, segnalare e testare le prestazioni. Dopo aver stabilito i target e identificato le cifre effettive tramite test eseguiti nel tempo, è possibile implementare l'automazione per i test continui rispetto a tali obiettivi.
Attenersi alle procedure consigliate per definire i target a livello di macro, anche se sono approssimativi o all'interno di un intervallo.
Avvicinarsi | Vantaggi |
---|---|
Prepararsi alla negoziazione efficace comprendendo le opzioni tecniche, esplorando le possibilità di progettazione e applicando risultati sperimentali. Usare i dati cronologici per identificare i modelli di utilizzo e i colli di bottiglia. Incorporare informazioni dettagliate dall'analisi del mercato, dagli standard del settore e dall'input degli esperti per guidare le decisioni. |
È possibile prendere decisioni informate in base a informazioni dettagliate pratiche. Gli obiettivi di prestazioni saranno basati sull'esperienza utente basata su ciò che è fattibile, sulle procedure consigliate del settore e sulle tendenze di mercato correnti. |
Allinearsi con i proprietari aziendali in base alle aspettative degli utenti e agli standard di prestazioni, considerando i livelli di investimento. Evitare di approfondire i dettagli granulari nella fase iniziale della progettazione, mantenendo al tempo stesso il contesto aziendale più ampio e i piani di crescita. |
Evitare presupposti non allineati, promuovere chiarezza e motivazione all'interno del team e prendere decisioni di progettazione informate sui compromessi. Garantisce inoltre che gli obiettivi di prestazioni tengano conto delle esigenze future, allineando il lavoro corrente agli obiettivi aziendali a lungo termine. |
Classificare in ordine di priorità i flussi critici nell'architettura in base all'impatto sulle prestazioni. Definire intervalli di tolleranza delle prestazioni per ogni flusso, da ideale a inaccettabile. Valutare i punti di ingresso e uscita considerando la frequenza di utilizzo, l'importanza e la complessità. |
Assegnando priorità ai flussi, è possibile concentrare le risorse sulle aree critiche che influiscono maggiormente sui risultati aziendali e degli utenti. Suddividendo il sistema nelle relative parti e dipendenze, si comprende la funzione di ogni componente e la sua influenza sulle prestazioni. Si viene inoltre a conoscenza di potenziali problemi. Contribuisce a stabilire una linea di base delle prestazioni e favorire l'ottimizzazione. |
Iniziare a sviluppare un modello di prestazioni che consideri i modelli di utilizzo, l'impatto aziendale e i costi operativi per calcolare gli obiettivi di prestazioni iniziali. Usare gli standard di settore per definire e misurare le metriche chiave e valutare la domanda e l'offerta all'interno dei vincoli aziendali, tenendo conto della crescita futura. Considerarlo come un processo iterativo e perfezionare le destinazioni informate da osservazioni e metriche reali raccolte dalla soluzione in esecuzione, durante test e produzione. Classificare in ordine di priorità i test case che producono informazioni significative sull'utilizzo nel ciclo di vita completo dell'applicazione. |
Un modello di prestazioni consente di pianificare e ottimizzare le risorse strategiche, supporta il benchmarking tramite gli standard del settore e garantisce che gli obiettivi di prestazioni rimangano adattabili e pertinenti nel tempo. In base a questi obiettivi in continua evoluzione, sarà possibile eseguire una pianificazione accurata della capacità e stabilire linee di base delle prestazioni che rimangono rilevanti per tutto il ciclo di vita della soluzione. |
Progettare per soddisfare i requisiti di capacità
|
---|
È importante misurare le prestazioni in modo proattivo. La misurazione delle prestazioni comporta la misurazione delle linee di base e la comprensione preliminare dei componenti del sistema che potrebbero rappresentare sfide. È possibile svolgerla senza eseguire un test completo delle prestazioni o tramite un'ottimizzazione granulare. Eseguendo questi passaggi iniziali, si stabilisce una base per una gestione efficace delle prestazioni all'inizio del ciclo di vita dello sviluppo.
Esaminare il sistema nel suo complesso, invece di concentrarsi sui singoli componenti. Evitare l'ottimizzazione in questa fase. Un miglioramento granulare delle prestazioni comporta compromessi in altre aree. Man mano che si procede nel ciclo di vita e si iniziano i test di accettazione dell'utente o si passa alla produzione, è possibile identificare rapidamente quali aree richiedono un'ulteriore ottimizzazione.
Avvicinarsi | Beneficio |
---|---|
Valutare le esigenze di scalabilità dinamica per i flussi classificati in ordine di priorità in base ai requisiti di utilizzo. Comprendere i modelli di domanda previsti e determinare il modo in cui ogni flusso elastico deve soddisfare tali requisiti. | È possibile definire i requisiti di scalabilità per i componenti esistenti che richiedono maggiore capacità e le aree in cui sono necessari componenti aggiuntivi per distribuire il carico. |
Scegliere le risorse appropriate e le diritti nello stack di tecnologie, che consente di soddisfare gli obiettivi di prestazioni. Prendere in considerazione le funzionalità che possono soddisfare i requisiti di scalabilità. |
Il sistema complessivo verrà eseguito in base alle destinazioni definite. È possibile usare le funzionalità predefinite che vengono ridimensionate automaticamente quando necessario. Consente inoltre di evitare il overprovisioning, risparmiando i costi mantenendo al tempo tempo di gestire le modifiche della domanda. |
Eseguire la pianificazione della capacità in base al modello di prestazioni e alla funzionalità delle risorse selezionate. Usare tecniche di modellazione predittiva per prevedere le modifiche previste nella capacità. |
Il sistema sarà in grado di soddisfare gli obiettivi di prestazioni mantenendosi preparati per la domanda futura. La modellazione predittiva consente di pianificare in anticipo, evitando la carenza di risorse o l'overprovisioning, migliorando l'affidabilità e l'efficienza dei costi. |
Implementare il modello di verifica e convalidare le scelte di progettazione proposte per soddisfare i requisiti tecnici. | Un modello di verifica consente di verificare se la progettazione può soddisfare obiettivi di prestazioni e carico previsto. |
Ottenere e sostenere le prestazioni
|
---|
Lo sviluppo non rappresenta un impegno una tantum. È un processo continuo. Aspettarsi modifiche alle prestazioni man mano che cambiano le funzionalità. È presente una varianza nei pattern utente e nei profili, persino nelle modifiche apportate dalle ottimizzazioni in altri pilastri di Azure Well-Architected. Qualsiasi modifica può risultare onerosa per risorse del carico di lavoro.
Proteggere il sistema dallo scorrimento indietro sugli obiettivi di prestazioni. Testare le prestazioni del sistema nell'ambiente di produzione con carico reale e simulare il carico con test automatizzati prima di passare alla produzione. In entrambi i casi, è necessario disporre di procedure di monitoraggio per scopi di verifica.
Tenere presente che i target sulle prestazioni variano nel tempo, in risposta alle modifiche. Aggiornare il modello di prestazioni in base alle metriche testate e monitorate. Indicare chiaramente un aumento, una riduzione o nessun effetto sulle prestazioni dei flussi.
Essere sempre pronti a rinegoziare e ridefinire le aspettative con gli stakeholder aziendali.
Avvicinarsi | Beneficio |
---|---|
Definire la strategia di test delle prestazioni. Eseguire vari tipi di test, tra cui test manuali e a basso sforzo per rivedere i benchmark. Aggiungere test regolari delle prestazioni alle pipeline usando strumenti che funzionano bene con essi. |
È possibile assicurarsi che le risorse vengano allocate in modo efficace e convalidare le metriche in base alla pianificazione della capacità. I test automatizzati delle prestazioni di routine consentono di valutare in modo coerente fattori chiave come latenza, stress e capacità di carico, rendendo più semplice rilevare i problemi in anticipo e mantenere le prestazioni costanti nel tempo. |
Formalizzare i test delle prestazioni come controlli di qualità. | Questi checkpoint assicurano che ogni fase della distribuzione soddisfi gli standard di prestazioni prima di procedere. Consentono di intercettare i problemi in anticipo e di prendere decisioni di qualità. Ad esempio, il blocco di una versione se le prestazioni sono inferiori alle aspettative. |
Configurare un processo di monitoraggio delle prestazioni che tiene traccia delle transazioni aziendali end-to-end e delle metriche tecniche, ad esempio CPU, latenza e richieste al secondo. Assicurarsi di usare transazioni reali e sintetiche nell'ambiente di produzione. Configurare gli avvisi di monitoraggio sulle regressioni delle prestazioni. |
Monitorando tutte le parti del sistema, si ottiene una visibilità chiara e si possono rilevare rapidamente i problemi sia nell'infrastruttura che nell'applicazione. Consente di ottimizzare le risorse per mantenere gli standard di prestazioni e anche tenere traccia dello stato di avanzamento o individuare i problemi in anticipo. |
Esaminare i risultati dei test delle prestazioni e monitorare i dati meticolosamente man mano che aumentano l'utilizzo e i dati si accumulano con il sistema nell'ambiente di produzione. Classificare in ordine di priorità le azioni che risolvano la riduzione delle prestazioni e aggiungerle al backlog per l'esecuzione pianificata. |
L'uso dei dati per tenere traccia e confrontare le tendenze delle prestazioni consente di prendere decisioni di ottimizzazione informate e di intercettare i problemi in anticipo prima di influire sull'esperienza utente. Garantisce anche che non si stia ottimizzando eccessivamente un sistema già in fase di capacità. |
Esplorare i modelli di progettazione che possono ottimizzare le prestazioni nello stack di tecnologie, considerando l'applicazione e i livelli di calcolo e dati sottostanti. | È possibile risolvere i colli di bottiglia e implementare controlli di compensazione per ridurre la latenza e il carico di sistema. |
Creare competenze di codifica incentrate sulle prestazioni e seguire gli standard che promuovono modelli di codifica efficienti. | Il codice ben scritto e con prestazioni elevate rende i test più veloci riducendo i problemi e consente di evitare di rielaborare mantenendo al tempo stesso coerente il codice. |
Ottimizzare per il miglioramento a lungo termine
|
---|
Gli obiettivi di prestazioni iniziali mirano a offrire un'esperienza utente ragionevole entro vincoli noti. Man mano che il sistema evolve, rivaluta tali destinazioni usando dati di produzione reali per comprendere meglio i modelli di utilizzo, le modifiche della piattaforma e i potenziali guadagni, assicurandosi che gli sforzi di ottimizzazione siano ben timed ed efficaci. Spesso è consigliabile ritardare le ottimizzazioni principali fino a quando questi dati non sono disponibili per evitare decisioni prematurhe.
L'ottimizzazione delle prestazioni è un ciclo continuo di monitoraggio, ottimizzazione, test e distribuzione. I miglioramenti dell'efficienza possono ridurre l'uso delle risorse, a volte con conseguente overprovisioning. Questa capacità aggiuntiva può quindi essere usata per migliorare l'affidabilità, ridurre i costi o supportare nuove funzionalità senza aggiungere l'infrastruttura.
Avvicinarsi | Beneficio |
---|---|
Riservare tempo dedicato per l'ottimizzazione delle prestazioni come procedura regolare per tutto il ciclo di vita di sviluppo. | In una cultura basata sulle prestazioni, questo approccio rafforza la responsabilità, in cui il team monitora e migliora continuamente le prestazioni del sistema. |
Rivedere i requisiti non funzionali e stabilire nuovi obiettivi analizzando le tendenze cronologiche nella produzione per migliorare l'architettura con modelli e componenti di progettazione migliorati. | I nuovi progetti e componenti, ad esempio la memorizzazione nella cache o una rete CDN, possono ottimizzare il sistema e migliorare l'esperienza utente. |
Aggiornate e aggiornate con le innovazioni tecnologiche che possono migliorare le prestazioni. Sfruttare le nuove versioni rilasciate per i framework e le librerie dipendenti. Analogamente, usare le nuove funzionalità per le risorse della piattaforma durante l'aggiornamento e l'applicazione di patch. |
Gli obiettivi di prestazioni forniscono una giustificazione per l'adozione di una nuova tecnologia. Il codice che potrebbe essere stato lento in passato può diventare più veloce con questi aggiornamenti. Si vuole anche essere consapevoli del modo in cui determinati aggiornamenti influiscono negativamente sulle prestazioni. |