

# Efficienza delle prestazioni
<a name="performance-efficiency"></a>

Il pilastro dell'efficienza delle prestazioni include la capacità di utilizzare in modo efficiente le risorse nel cloud per soddisfare i requisiti in termini di prestazione e di mantenere tale efficienza a fronte al cambiamento della domanda e all'evoluzione delle tecnologie.

 Il pilastro dell'efficienza delle prestazioni offre una panoramica dei principi di progettazione, delle best practice e delle domande. Puoi trovare linee guida prescrittive sull'implementazione nel [whitepaper sul pilastro dell'efficienza delle prestazioni](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp). 

**Topics**
+ [

# Principi di progettazione
](perf-dp.md)
+ [

# Definizione
](perf-def.md)
+ [

# Best practice
](perf-bp.md)
+ [

# Risorse
](perf-resources.md)

# Principi di progettazione
<a name="perf-dp"></a>

 Esistono cinque principi di progettazione per l'efficienza delle prestazioni nel cloud: 
+  **Estendi a tutti le tecnologie avanzate**: agevola l'implementazione di tecnologie avanzate da parte del tuo team delegando le attività complesse al tuo fornitore di cloud. Anziché chiedere al team IT di imparare come adottare e gestire una nuova tecnologia, valuta l'opportunità di utilizzare la tecnologia come servizio. Ad esempio, No SQL database, transcodifica multimediale e apprendimento automatico sono tutte tecnologie che richiedono competenze specialistiche. Nel cloud, tali tecnologie diventano servizi che il tuo team può semplicemente utilizzare mentre si concentra sullo sviluppo di un prodotto invece che sul provisioning e sulla gestione delle risorse. 
+  **Diventa globale in pochi minuti**: l'implementazione del carico di lavoro in più AWS regioni del mondo ti consente di fornire una latenza inferiore e un'esperienza migliore ai tuoi clienti a costi minimi. 
+  **Utilizza architetture serverless:** scegliendo le architetture serverless, non avrai più bisogno di gestire e mantenere server fisici per portare a termine le attività di elaborazione tradizionali. Ad esempio, i servizi di storage serverless possono agire da siti web statici, eliminando la necessità di server web, mentre i servizi di eventi possono ospitare il codice. Questo elimina l'onere operativo della gestione dei server fisici, con una riduzione dei costi delle transazioni, dal momento che servizi gestiti di questo tipo funzionano a livello di cloud. 
+  **Sperimenta più di frequente**: le risorse virtuali e automatizzabili ti permettono di portare a termine velocemente i test comparativi utilizzando diversi tipi di istanze, storage o configurazioni. 
+  **Prendi in considerazione la comprensione meccanica**: scopri come vengono consumati i servizi cloud e utilizza sempre l'approccio tecnologico più adatto ai tuoi obiettivi di carico di lavoro. Ad esempio, prendi in considerazione gli schemi di accesso ai dati quando selezioni una strategia basata su database o archiviazione. 

# Definizione
<a name="perf-def"></a>

 Esistono cinque aree di best practice per l'efficienza delle prestazioni nel cloud: 
+  **Scelta dell'architettura** 
+  **Calcolo e hardware** 
+  **Gestione dei dati** 
+  **Reti e distribuzione di contenuti** 
+  **Processo e cultura** 

 Utilizza un approccio basato sui dati per la creazione di un'architettura a prestazioni elevate. Raccogli dati su tutti gli aspetti dell'architettura, dalla progettazione di alto livello alla selezione e alla configurazione dei tipi di risorse. 

 La revisione periodica delle tue scelte conferma che stai sfruttando il cloud in continua evoluzione. AWS Il monitoraggio ti assicurerà di essere consapevole di qualsiasi divergenza rispetto alle prestazioni previste. Infine, puoi raggiungere dei compromessi nella tua architettura per migliorare le prestazioni, ad esempio utilizzando la compressione o la memorizzazione nella cache oppure allentando i requisiti di coerenza. 

# Best practice
<a name="perf-bp"></a>

**Topics**
+ [

# Scelta dell'architettura
](perf-arch.md)
+ [

# Calcolo e hardware
](perf-compute.md)
+ [

# Gestione dei dati
](perf-data.md)
+ [

# Reti e distribuzione di contenuti
](perf-networking.md)
+ [

# Processo e cultura
](perf-process.md)

# Scelta dell'architettura
<a name="perf-arch"></a>

 La soluzione ottimale per un determinato carico di lavoro può variare e le soluzioni spesso combinano molteplici approcci. I carichi di lavoro Well-Architected utilizzano soluzioni multiple e forniscono funzionalità diverse per migliorare le prestazioni. 

 AWS le risorse sono disponibili in molti tipi e configurazioni, il che rende più facile trovare un approccio che corrisponda strettamente alle proprie esigenze. Inoltre, puoi trovare opzioni che non sono facili da trovare nelle infrastrutture on-premises. Ad esempio, un servizio gestito come Amazon DynamoDB fornisce un database SQL No completamente gestito con latenza di un millisecondo su qualsiasi scala. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. Per l'elenco completo delle domande e delle best practice relative all'efficienza delle prestazioni, consulta l'[Appendice](a-performance-efficiency.md). 


| PERF1: Come selezionate le risorse cloud e i modelli di architettura appropriati per il vostro carico di lavoro? | 
| --- | 
|  Spesso sono necessari molteplici approcci per ottenere prestazioni più efficienti in un carico di lavoro. I sistemi Well-Architected utilizzano più soluzioni e funzionalità per migliorare le prestazioni.  | 

# Calcolo e hardware
<a name="perf-compute"></a>

 La soluzione ottimale in termini di calcolo per un determinato carico di lavoro potrebbe variare in base alla progettazione dell'applicazione, ai modelli di utilizzo e alle impostazioni di configurazione. Le architetture possono utilizzare diverse soluzioni di calcolo per vari componenti e impiegare funzionalità diverse per migliorare le prestazioni. Selezionare la soluzione di calcolo sbagliata per un'architettura può ridurre l'efficienza delle prestazioni. 

 In AWS, il calcolo è disponibile in tre forme: istanze, contenitori e funzioni: 
+  Le **istanze** sono server virtualizzati che consentono di modificarne le funzionalità con un pulsante o una chiamata. API Poiché nel cloud le decisioni relative alle risorse non sono cristallizzate nel tempo, è possibile sperimentare vari tipi di server. Attualmente AWS, queste istanze di server virtuali sono disponibili in famiglie e dimensioni diverse e offrono un'ampia varietà di funzionalità, tra cui unità a stato solido (SSDs) e unità di elaborazione grafica (). GPUs 
+  **I container** sono un metodo di virtualizzazione del sistema operativo che consente di eseguire un'applicazione e le sue dipendenze in processi con risorse isolate. AWS Fargate è un'elaborazione serverless per contenitori oppure Amazon EC2 può essere utilizzato se hai bisogno di controllare l'installazione, la configurazione e la gestione del tuo ambiente di elaborazione. Puoi anche scegliere tra più piattaforme di orchestrazione dei container: Amazon Elastic Container Service (ECS) o Amazon Elastic Kubernetes Service (). EKS 
+  Le **funzioni** astraggono l'ambiente di esecuzione dal codice che desideri eseguire. Ad esempio, AWS Lambda consente di eseguire codice senza eseguire un'istanza. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF2: Come selezionate e utilizzate le risorse di calcolo nel vostro carico di lavoro? | 
| --- | 
| La soluzione di calcolo più efficiente per un determinato carico di lavoro varia in base alla progettazione dell'applicazione, ai modelli di utilizzo e alle impostazioni di configurazione. Le architetture possono utilizzare diverse soluzioni di elaborazione per vari componenti e attivare funzionalità diverse per migliorare le prestazioni. Selezionare la soluzione di calcolo sbagliata per un'architettura può portare a una riduzione dell'efficienza delle prestazioni. | 

# Gestione dei dati
<a name="perf-data"></a>

 La soluzione di gestione dei dati ottimale per un particolare sistema varia in base al tipo di dati (blocco, file o oggetto), ai modelli di accesso (casuale o sequenziale), alla velocità effettiva richiesta, alla frequenza di accesso (online, offline, di archiviazione), alla frequenza di aggiornamento (WORMdinamica) e ai vincoli di disponibilità e durabilità. I carichi di lavoro Well-Architected utilizzano archivi dati appositamente progettati che impiegano diverse funzionalità per migliorare le prestazioni. 

 In AWS, lo storage è disponibile in tre forme: oggetto, blocco e file: 
+  Lo **storage a oggetti** fornisce una piattaforma scalabile e durevole per rendere i dati accessibili da qualsiasi posizione Internet per contenuti generati dagli utenti, archivi attivi, computing serverless, storage di big data o backup e ripristino. Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni tra le migliori del settore. Amazon S3 è progettato per garantire una durabilità del 99,999999999% (11 9) e memorizza i dati per milioni di applicazioni per aziende in tutto il mondo. 
+  **Lo storage a blocchi** offre uno storage a blocchi ad alta disponibilità, coerente e a bassa latenza per ogni host virtuale ed è analogo allo storage collegato direttamente (DAS) o allo Storage Area Network (). SAN Amazon Elastic Block Store (AmazonEBS) è progettato per carichi di lavoro che richiedono uno storage persistente accessibile da EC2 istanze che consente di ottimizzare le applicazioni con la capacità di storage, le prestazioni e i costi corretti. 
+  Lo **storage di file** fornisce accesso a un file system condiviso tra più sistemi. Le soluzioni di storage di file come Amazon Elastic File System (AmazonEFS) sono ideali per casi d'uso come archivi di contenuti di grandi dimensioni, ambienti di sviluppo, negozi multimediali o home directory degli utenti. Amazon FSx rende efficiente ed economico il lancio e l'esecuzione dei file system più diffusi in modo da poter sfruttare i ricchi set di funzionalità e le prestazioni rapide dei file system open source e con licenza commerciale ampiamente utilizzati. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF3: Come archiviate, gestite e accedete ai dati del vostro carico di lavoro? | 
| --- | 
|  La soluzione di storage più efficiente per un sistema varia in base al tipo di operazione di accesso (blocco, file o oggetto), ai modelli di accesso (casuale o sequenziale), al throughput richiesto, alla frequenza di accesso (online, offline, di archiviazione), alla frequenza di aggiornamento (WORMdinamica) e ai vincoli di disponibilità e durata. I sistemi Well-Architected utilizzano più soluzioni di storage e attivano funzionalità diverse per migliorare le prestazioni e utilizzare le risorse in modo efficiente.  | 

# Reti e distribuzione di contenuti
<a name="perf-networking"></a>

 La soluzione di rete ottimale per un carico di lavoro varia in base a latenza, requisiti di throughput, jitter e larghezza di banda. I vincoli fisici, ad esempio le risorse utente o on-premises, determinano le opzioni di posizione. Questi vincoli possono essere compensati con le posizioni edge o la collocazione delle risorse. 

 On AWS, la rete è virtualizzata ed è disponibile in diversi tipi e configurazioni. In questo modo è più facile soddisfare le esigenze di rete. AWS offre funzionalità di prodotto (ad esempio Enhanced Networking, istanze ottimizzate per la EC2 rete Amazon, accelerazione del trasferimento Amazon S3 e CloudFront Amazon dinamico) per ottimizzare il traffico di rete. AWS offre anche funzionalità di rete (ad esempio, routing di latenza Amazon Route 53 AWS Direct Connect, VPC endpoint Amazon e AWS Global Accelerator) per ridurre la distanza di rete o il jitter. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF4: Come selezionate e configurate le risorse di rete nel vostro carico di lavoro? | 
| --- | 
|  Questa domanda comprende linee guida e best practice per progettare, configurare e gestire soluzioni di rete e distribuzione di contenuti nel cloud in maniera efficiente.  | 

# Processo e cultura
<a name="perf-process"></a>

 Durante la fase di progettazione dei carichi di lavoro, esistono principi e pratiche che è possibile adottare per gestire al meglio carichi di lavoro cloud efficienti e ad alte prestazioni. Per adottare una cultura che promuova l'efficienza delle prestazioni dei carichi di lavoro cloud, prendi in considerazione questi principi e pratiche fondamentali. 

 Per sviluppare questa cultura, considera questi principi chiave: 
+  **Infrastruttura come codice:** definisci l'infrastruttura come codice utilizzando approcci come i AWS CloudFormation modelli. L'uso dei modelli ti consente di collocare la tua infrastruttura nel controllo sorgente, insieme al codice e alle configurazioni dell'applicazione. Ciò ti premette di applicare le stesse procedure di sviluppo software all'infrastruttura, in modo da accelerare l'iterazione. 
+  **Pipeline di implementazione:** usa una pipeline di integrazione continua/implementazione continua (CI/CD) (ad esempio, repository del codice sorgente, sistemi di sviluppo, distribuzione e automazione dei test) per distribuire la tua infrastruttura. Ciò ti consente di effettuare l'implementazione in modo ripetibile, coerente ed economicamente vantaggioso nel corso dell'iterazione. 
+  **Metriche ben definite:** configura e monitora le metriche per acquisire gli indicatori chiave di prestazione (). KPIs Ti consigliamo di adottare parametri tecnici e aziendali. Per i siti Web o le app mobili, le metriche chiave sono l'acquisizione o il rendering. time-to-first-byte Gli altri parametri generalmente validi includono il numero di thread, il tasso di rimozione di oggetti inutili (garbage collection) e gli stati di attesa. I parametri aziendali, come il costo cumulativo aggregato per richiesta, possono indicarti due modi per ridurre i costi. Valuta attentamente il modo in cui prevedi di interpretare i parametri. Ad esempio, potresti scegliere il 99° percentile o quello massimo anziché il valore medio. 
+  **Automatizza i test delle prestazioni:** nell'ambito del processo di implementazione, avvia automaticamente i test delle prestazioni dopo che quelli dall'esecuzione più rapida hanno dato esito positivo. L'automazione deve creare un nuovo ambiente, configurare le condizioni iniziali come i dati del test ed eseguire una serie di benchmark e test di carico. I risultati dei test devono essere confrontati con la build, in modo da monitorare le variazioni delle prestazioni nel corso del tempo. Per i test di lunga durata, puoi inserirli nella pipeline in maniera asincrona rispetto al resto della build. In alternativa, puoi eseguire test delle prestazioni durante la notte utilizzando Amazon EC2 Spot Instances. 
+  **Generazione del carico:** crea una serie di script di test che replichino i percorsi utente sintetici o pre-registrati. Tali script devono essere idempotenti e non devono essere associati in coppie. Inoltre, potrebbe essere necessario includere script *preliminari* per garantire risultati validi. Testa gli script il più possibile, per assicurarti che replichino le abitudini di utilizzo in produzione. È possibile utilizzare soluzioni software o software-as-a-service (SaaS) per generare il carico. Valuta se l'utilizzo delle soluzioni [Marketplace AWS](https://aws.amazon.com/marketplace/) e le [istanze spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) possono essere modi convenienti per generare il carico. 
+  **Visibilità delle prestazioni:** i parametri principali devono essere visibili dal team, in particolar modo quelli relativi a ciascuna versione della build. Ciò ti consente di rilevare tendenze positive o negative rilevanti nel corso del tempo. Dovresti anche visualizzare i parametri sul numero di errori o eccezioni per assicurarti di testare un sistema funzionante. 
+ **Visualizzazione:** sfrutta le tecniche di visualizzazione che indicano in modo chiaro i punti in cui si verificano problemi di prestazioni, hot spot, stati di attesa o utilizzo ridotto. Sovrapponi i parametri delle prestazioni ai diagrammi architetturali: i grafici delle chiamate o il codice possono aiutarti a individuare più rapidamente i problemi. 
+  **Revisione regolare dei processi:** le prestazioni scarse delle architetture sono in genere il risultato di un processo di revisione delle prestazioni inesistente o incompleto. Se la tua architettura offre prestazioni insufficienti, l'implementazione di un processo di revisione delle prestazioni ti consente di favorire il miglioramento delle iterazioni. 
+  **Ottimizzazione continua:** adotta una cultura per ottimizzare continuamente l'efficienza delle prestazioni del tuo carico di lavoro cloud. 

 Le seguenti domande si concentrano su queste considerazioni relative all'efficienza delle prestazioni. 


| PERF5: Quale processo utilizzate per supportare una maggiore efficienza delle prestazioni per il vostro carico di lavoro?  | 
| --- | 
|  Durante la fase di progettazione dei carichi di lavoro, esistono principi e pratiche che è possibile adottare per gestire al meglio carichi di lavoro cloud efficienti e ad alte prestazioni. Per adottare una cultura che promuova l'efficienza delle prestazioni dei carichi di lavoro cloud, prendi in considerazione questi principi e pratiche fondamentali.  | 

# Risorse
<a name="perf-resources"></a>

 Consulta le seguenti risorse per ulteriori informazioni sulle best practice relative all'efficienza delle prestazioni. 

## Documentazione
<a name="perf-doc"></a>
+  [Ottimizzazione delle prestazioni di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/PerformanceOptimization.html?ref=wellarchitected-wp) 
+  [Prestazioni Amazon EBS Volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html?ref=wellarchitected-wp) 

## Whitepaper
<a name="perf-wp"></a>
+  [Pilastro dell'efficienza delle prestazioni](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp) 

## Video
<a name="perf-video"></a>
+  [AWS re:Invent 2019: EC2 fondamenti di Amazon (-R2) CMP211](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Sessione di leadership: Lo stato di archiviazione dell'unione (01-L) STG2](https://www.youtube.com/watch?v=39vAsGi6eEI&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Sessione di leadership: database creati appositamente (09-L) AWS DAT2](https://www.youtube.com/watch?v=q81TVuV5u28&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Connettività e architetture di rete ibride (-R1) AWSAWS NET317](https://www.youtube.com/watch?v=eqW6CPb58gs&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Potenziamento di EC2 Amazon di nuova generazione: approfondimenti sul sistema Nitro (03-R2) CMP3](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: scalabilità fino ai primi 10 milioni di utenti (-R) ARC211](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected-wp) 