Efficienza delle prestazioni

Il pilastro Efficienza delle prestazioni include l'abilità di utilizzare in modo efficiente le risorse di elaborazione per soddisfare i requisiti del sistema e conservare tale efficienza a seconda dei cambiamenti della domanda e dell'evoluzione delle tecnologie.

Il principio dell'efficienza delle prestazioni offre una panoramica dei principi di progettazione, delle best practice e delle domande. Puoi trovare una guida prescrittiva sull'implementazione nel whitepaper sul Principio dell'efficienza delle prestazioni.

Principi di progettazione

Esistono five principi di progettazione per efficienza delle prestazioni nel cloud:

Definizione

Esistono four aree di best practice per efficienza delle prestazioni nel cloud:

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.

Rivedendo le tue decisioni a intervalli regolari, avrai la certezza di sfruttare le capacità in continua evoluzione di AWS Cloud. 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, per esempio utilizzando la compressione o la memorizzazione nella cache oppure allentando i requisiti di coerenza.

Best practice

Selezione

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 impiegano funzionalità diverse per migliorare le prestazioni.

Le risorse AWS sono disponibili in numerose tipologie e configurazioni, il che semplifica la ricerca di un approccio che soddisfi appieno le tue esigenze. Inoltre, puoi trovare opzioni che non sono facili da trovare nelle infrastrutture in locale. Ad esempio, un servizio gestito come Amazon DynamoDB offre un database NoSQL interamente gestito, con una latenza di pochissimi millisecondi, indipendentemente dalle dimensioni.

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

PERF 1: In che modo selezioni l'architettura più performante?

Quando selezioni i modelli e l'implementazione per la tua architettura, utilizza un approccio basato sui dati per individuare la soluzione ottimale. I solutions architect di AWS, le architetture di riferimento di AWS e i partner AWS Partner Network (APN) possono aiutarti a selezionare un'architettura in base alla conoscenza del settore, ma per ottimizzare la tua architettura saranno necessari i dati ottenuti da benchmark o test di carico.

La tua architettura può riunire vari approcci architetturali (ad esempio basati sugli eventi, ETL o pipeline). L'implementazione della tua architettura sfrutterà i servizi AWS in grado di ottimizzarne le prestazioni. Nelle sezioni seguenti, osserveremo quattro tipi di risorse principali da prendere in considerazione: elaborazione, storage, database e rete.

Calcolo

La selezione delle risorse di calcolo in grado di soddisfare i tuoi requisiti e le tue esigenze di prestazioni e offrire grande efficienza in termini di costi e impegno ti consentirà di ottenere di più con lo stesso numero di risorse. Durante la valutazione delle opzioni di elaborazione, tieni presente i requisiti per le prestazioni del carico di lavoro e i requisiti di costo e utilizzali per prendere decisioni informate.

TRANSLATION REQUIRED

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

PERF 2: In che modo selezioni la soluzione di calcolo?

Quando pianifichi l'utilizzo della capacità di elaborazione, devi sfruttare i meccanismi di elasticità per garantirti una capacità sufficiente a fornire le giuste prestazioni al variare delle esigenze.

Storage

Lo storage sul cloud è un componente fondamentale del cloud computing, poiché predisposto all'archiviazione delle informazioni utilizzate dal carico di lavoro. Lo storage sul cloud è generalmente più affidabile, scalabile e sicuro dei tradizionali sistemi di storage locali. Scegli tra servizi di storage di oggetti, blocchi e file, nonché opzioni di migrazione dei dati nel cloud per il tuo carico di lavoro.

TRANSLATION REQUIRED

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

PERF 3: In che modo selezioni la soluzione di storage?

Nella scelta di una soluzione di storage, accertarsi che sia in linea con gli schemi di accesso sarà cruciale per raggiungere le prestazioni desiderate.

Database

Il cloud offre servizi di database dedicati che risolvono i diversi problemi presentati dal carico di lavoro. Puoi scegliere tra diversi motori di database dedicati, tra cui database relazionali, chiave-valore, documento, in memoria, grafi, serie temporali e libri mastri. Scegliendo il database migliore per risolvere un problema specifico o una serie di problematiche, potrai finalmente abbandonare i database monolitici, restrittivi e indifferenziati e concentrarti sulla creazione di applicazioni in grado di rispondere alle esigenze di prestazioni dei tuoi clienti.

In AWS puoi scegliere tra più motori di database dedicati, tra cui database relazionali, chiave-valore, documento, in memoria, grafi, serie temporali e libri mastri. Con i database AWS, non devi preoccuparti delle attività di gestione del database come provisioning del server, applicazione di patch, installazione, configurazione, backup o ripristino. AWS monitora continuamente i cluster per mantenere i carichi di lavoro operativi con storage con riparazione automatica e auto scaling, in modo da consentirti di concentrarti sullo sviluppo di applicazioni di maggior valore.

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

PERF 4: In che modo selezioni la soluzione di database?

TRANSLATION REQUIRED

Rete

Poiché la rete si trova tra tutti i componenti del carico di lavoro, può avere grandi ripercussioni positive o negative sulle prestazioni e sul comportamento del carico di lavoro. Esistono anche carichi di lavoro che dipendono in larga misura dalle prestazioni di rete, come nel caso dello High Performance Computing (HPC), dove la comprensione approfondita della rete è importante per migliorare le prestazioni del cluster. È necessario determinare i requisiti del carico di lavoro per larghezza di banda, latenza, jitter e throughput.

In AWS, le reti sono virtualizzate e vengono fornite in una varietà di tipi e configurazioni. Ciò semplifica la scelta delle metodologie di rete più adatte alle tue esigenze. AWS offre caratteristiche dei prodotti (ad esempio reti avanzate, istanze ottimizzate di Amazon EBS, Amazon S3 Transfer Acceleration e Amazon CloudFront dinamico) pensate per l'ottimizzazione del traffico di rete. AWS offre anche funzionalità di rete (ad esempio instradamento della latenza di Amazon Route 53, endpoint VPC di Amazon, AWS Direct Connect e AWS Global Accelerator) per ridurre la distanza di rete o il jitter.

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

PERF 5: In che modo configuri la tua soluzione di rete?

Nella distribuzione della rete devi tener conto dell'ubicazione, puoi decidere di collocare le risorse vicino al punto in cui saranno utilizzate per ridurre la distanza. Utilizza i parametri di rete per apportare modifiche alla configurazione di rete a mano a mano che il carico di lavoro si evolve. Sfruttando elementi quali regioni, gruppi di collocamento e servizi edge, avrai modo di incrementare le prestazioni in maniera significativa. Le reti basate sul cloud possono essere ricostruite o modificate rapidamente, perciò, per mantenere l'efficienza delle prestazioni, l'architettura di rete deve evolvere nel tempo.

Revisione

TRANSLATION REQUIRED

Sfrutta l'innovazione continua di AWS, orientata alle esigenze dei clienti. Rilasciamo nuove regioni, edge location, servizi e funzionalità a intervalli regolari. Le nuove versioni possono migliorare sensibilmente l'efficienza delle prestazioni della tua architettura.

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

PERF 6: In che modo fai evolvere il carico di lavoro per sfruttare le nuove versioni?

TRANSLATION REQUIRED

Monitoraggio

Dopo avere implementato il carico di lavoro, è necessario monitorarne le prestazioni in modo da risolvere eventuali problemi prima che influiscano sui clienti. Occorre utilizzare i parametri di monitoraggio per attivare gli allarmi in caso di superamento delle soglie.

Amazon CloudWatch è un servizio di monitoraggio e osservazione che fornisce dati e informazioni utili per monitorare il carico di lavoro, rispondere alle variazioni delle prestazioni a livello di sistema, ottimizzare l'utilizzo delle risorse e ottenere una visione unificata dello stato operativo. CloudWatch raccoglie dati operativi e di monitoraggio sotto forma di log, parametri ed eventi da carichi di lavoro eseguiti su AWS e server in locale. AWS X-Ray aiuta gli sviluppatori ad analizzare ed eseguire il debug della produzione e delle applicazioni distribuite. Con AWS X-Ray, puoi ottenere informazioni approfondite sulle prestazioni dell'applicazione, individuare le cause principali e identificare i colli di bottiglia delle prestazioni. Puoi utilizzare le informazioni ottenute per correggere rapidamente il funzionamento e mantenere le prestazioni del carico di lavoro sempre ottimali.

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

PERF 7: In che modo monitori le tue risorse per assicurarti che abbiano le giuste prestazioni?

Garantire che non vengano visualizzati falsi positivi è fondamentale per una soluzione di monitoraggio efficace. Le attivazioni automatiche prevengono l'errore umano e possono ridurre il tempo necessario per la risoluzione dei problemi. Pianifica giornate di gioco in cui vengono eseguite simulazioni nell'ambiente di produzione, per testare la soluzione di allarme e verificare che riconosca correttamente i problemi.

Compromessi

Quando progetti le soluzioni, pondera i compromessi per garantire una strategia ottimale. A seconda della situazione, puoi accettare dei compromessi in termini di coerenza, durabilità e spazio e favorire il tempo o la latenza allo scopo di garantire prestazioni migliori.

AWS ti consente di raggiungere la disponibilità globale in pochi minuti e distribuire le risorse in più destinazioni nel mondo, al fine di operare a più stretto contatto con gli utenti finali. Inoltre, puoi aggiungere in modo dinamico repliche di sola lettura alle destinazioni di storage delle informazioni, come i sistemi di database, per ridurre il carico sul database principale.

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

PERF 8: Come si utilizzano i compromessi per migliorare le prestazioni?

Man mano che apporti modifiche al carico di lavoro, raccogli e valuta i parametri per stabilire l'impatto dei cambiamenti. Misura gli impatti sul sistema e sugli utenti finali per capire in che modo i compromessi adottati influiscono sul carico di lavoro. Adotta un approccio sistematico, come il test del carico, per valutare se i compromessi migliorano le prestazioni.

Risorse

Consulta le seguenti risorse per ulteriori informazioni sulle best practice relative a Efficienza delle prestazioni.

Performance Efficiency Pillar
Amazon S3 Performance Optimization
Amazon EBS Volume Performance
AWS re:Invent 2019: Amazon EC2 foundations (CMP211-R2)
AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)
AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)
AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)
AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)
AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)