

# Sostenibilità
<a name="sustainability"></a>

Alla base del concetto di Sostenibilità c'è l'attenzione all'impatto ambientale, soprattutto in termini di uso ed efficienza delle fonti energetiche, leve importanti che gli architetti usano per definire interventi diretti mirati a ridurre lo sfruttamento delle risorse. È possibile trovare linee guida prescrittive sull'implementazione nel [Whitepaper sul principio della sostenibilità](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html?ref=wellarchitected-wp). 

**Topics**
+ [Principi di progettazione](sus-design-principles.md)
+ [Definizione](sus-def.md)
+ [Best practice](sus-bp.md)

# Principi di progettazione
<a name="sus-design-principles"></a>

 Esistono sei principi di progettazione per la sostenibilità nel cloud: 
+  **Comprendi il tuo impatto:** Misura l'impatto del tuo carico di lavoro cloud e definisci il suo impatto futuro. Nella tua analisi includi ogni fonte di impatto: quelle derivanti dall'uso dei prodotti da parte dei tuoi clienti e quelle derivanti dalla rimozione e dal ritiro finali dal mercato. Confronta l'output di produzione e l'impatto totale dei tuoi carichi di lavoro cloud, partendo dall'analisi di risorse ed emissioni richieste per unità di lavoro. Usa questi dati per definire indicatori chiave di prestazione (KPI), capire come migliorare la produttività, riducendo al tempo stesso l'impatto, e stimare l'impatto delle modifiche proposte nel tempo. 
+  **Stabilisci obiettivi di sostenibilità:** Per ogni carico di lavoro cloud stabilisci obiettivi di sostenibilità a lungo termine, come, ad esempio, ridurre le risorse di calcolo e di archiviazione richieste per ciascuna transazione. Modella il ritorno sugli investimenti finalizzati alle migliorie in materia di sostenibilità per i carichi di lavoro esistenti e offri ai proprietari le risorse di cui hanno bisogno per investire negli obiettivi di sostenibilità. Pianifica lo sviluppo e progetta i tuoi carichi di lavoro in modo che la crescita comporti un impatto meno intenso se misurato rispetto a un'unità appropriata, come l'utente o la transazione. Gli obiettivi ti aiutano ad avvalorare un progetto più ampio di sostenibilità che coinvolge la tua azienda o la tua organizzazione, a identificare le regressioni e a dare la priorità a quelle aree che offrono un maggiore potenziale di miglioramento. 
+  **Ottimizza l'utilizzo:** Dimensiona correttamente i carichi di lavoro e implementa un progetto efficiente in grado di garantire un utilizzo elevato e ottimizzare l'efficienza energetica dell'hardware sottostante. Due host in esecuzione con una percentuale di utilizzo pari al 30% sono meno efficienti di un host in esecuzione al 60%, se consideriamo il consumo di base per host. Allo stesso tempo, elimina o riduci le risorse, le elaborazioni e le archiviazioni inattive per ridurre l'energia totale richiesta per alimentare il tuo carico di lavoro. 
+  **Anticipa e adotta offerte hardware e software nuove e più efficienti:** Promuovi le migliorie a monte di partner e fornitori finalizzate a ridurre l'impatto dei carichi di lavoro cloud. Monitora costantemente il mercato e valuta nuove offerte hardware e software più efficienti. Adotta la flessibilità nei tuoi progetti per consentire una rapida adozione di tecnologie nuove ed efficienti. 
+  **Utilizza servizi gestiti:** La condivisione dei servizi con un'ampia base clienti consente di ottimizzare l'uso delle risorse e ridurre al tempo stesso l'infrastruttura necessaria per supportare i carichi di lavoro nel cloud. I clienti possono ad esempio condividere l'impatto di componenti comuni di data center, come reti ed energia, migrando i carichi di lavoro su Cloud AWS e adottando servizi gestiti, come AWS Fargate per i container serverless, in cui AWS opera su vasta scala ed è responsabile della loro efficienza operativa. Utilizza i servizi gestiti per contribuire alla riduzione dell'impatto, trasferendo automaticamente dati con accesso poco frequente all'archiviazione dei dati inattivi con le configurazioni di Amazon S3 Lifecycle o di Amazon EC2 Auto Scaling per adeguare le capacità alla domanda.
+  **Riduci l'impatto a valle dei carichi di lavoro cloud:** Diminuisci la quantità di energia o di risorse richieste per l'utilizzo dei tuoi servizi. Riduci o elimina la necessità di eseguire upgrade dei dispositivi per consentire ai clienti di usare i tuoi servizi. Esegui test usando device farm per analizzare l'impatto atteso e conduci altri test con i clienti per capire l'impatto reale derivante dall'uso dei tuoi servizi. 

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

 Esistono sei aree di best practice per la sostenibilità nel cloud: 
+ Selezione delle regioni
+ Modelli di comportamento degli utenti
+ Modelli di software e architetture
+ Modelli di dati
+ Modelli hardware
+ Processo di sviluppo e implementazione

 Sostenibilità nel cloud significa impegnarsi continuamente per ridurre principalmente il consumo di energia e garantire una maggiore efficienza di tutti i componenti di un carico di lavoro, ottenendo il massimo vantaggio dalle risorse fornite e riducendo al minimo le quantità richieste. Tale impegno va dalla selezione iniziale di un linguaggio di programmazione efficace, dall'adozione di algoritmi moderni e dall'uso di tecniche di archiviazione di dati efficienti alla distribuzione in infrastrutture di calcolo valide e correttamente dimensionate e alla riduzione dei requisiti per l'hardware degli utenti finali a potenza elevata. 

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

**Topics**
+ [Selezione delle regioni](sus-region-selection.md)
+ [Modelli di comportamento degli utenti](sus-user-behavior-patterns.md)
+ [Modelli di software e architetture](sus-software-architecture-patterns.md)
+ [Modelli di dati](sus-data-patterns.md)
+ [Modelli hardware](sus-hardware-patterns.md)
+ [Modelli di sviluppo e implementazione](sus-development-deployment-patterns.md)
+ [Risorse](sus-resources.md)

# Selezione delle regioni
<a name="sus-region-selection"></a>

Scegli le Regioni in cui implementerai i tuoi carichi di lavoro, tenendo presenti sia i requisiti aziendali sia gli obiettivi di sostenibilità.

 La seguente domanda si concentra su queste considerazioni relative alla sostenibilità. (Per l'elenco completo delle domande e delle best practice relative all'affidabilità, consulta l' [Appendice](a-sustainability.md).)


| SUS 1: In che modo selezioni le Regioni per sostenere i tuoi obiettivi di sostenibilità? | 
| --- | 
| Scegli le Regioni vicino ai progetti di energia rinnovabile di Amazon e le Regioni in cui la griglia presenta un'intensità di emissione di anidride carbonica nota inferiore a quella di altre sedi (o Regioni). | 

# Modelli di comportamento degli utenti
<a name="sus-user-behavior-patterns"></a>

Il modo in cui gli utenti utilizzano i tuoi carichi di lavoro e altre risorse può aiutarti a identificare i miglioramenti da implementare per raggiungere gli obiettivi di sostenibilità. Dimensiona l'infrastruttura in modo che si adegui continuamente al carico degli utenti e implementa solo le risorse minime richieste per supportare gli utenti. Allinea i livelli di servizio alle esigenze dei clienti. Posiziona le risorse in modo da limitare la rete richiesta per il consumo da parte degli utenti. Elimina risorse esistenti non utilizzate. Identifica le risorse create non utilizzate e smetti di generarle. Offri ai membri del tuo team dispositivi in grado di soddisfare le loro esigenze con un impatto ridotto in termini di sostenibilità.

 La seguente domanda si concentra su queste considerazioni relative alla sostenibilità:


| SUS 2: In che modo sfrutti i modelli di comportamento degli utenti per sostenere i tuoi obiettivi di sostenibilità? | 
| --- | 
|  Il modo in cui gli utenti utilizzano i tuoi carichi di lavoro e altre risorse può aiutarti a identificare i miglioramenti da implementare per raggiungere gli obiettivi di sostenibilità. Dimensiona l'infrastruttura in modo che si adegui continuamente al carico degli utenti e implementa solo le risorse minime richieste per supportare gli utenti. Allinea i livelli di servizio alle esigenze dei clienti. Posiziona le risorse in modo da limitare la rete richiesta per il consumo da parte degli utenti. Elimina risorse esistenti non utilizzate. Identifica le risorse create non utilizzate e smetti di generarle. Offri ai membri del tuo team dispositivi in grado di soddisfare le loro esigenze con un impatto ridotto in termini di sostenibilità.   | 

Dimensiona l'infrastruttura in base al carico degli utenti: identifica i periodi di utilizzo assente o ridotto e riduci le risorse per evitare capacità in eccesso e migliorare il livello di efficienza.

Allinea gli SLA agli obiettivi di sostenibilità: definisci e aggiorna gli Accordi sul Livello di Servizio (SLA), come la disponibilità di periodi di conservazione dei dati, per ridurre il numero di risorse richieste a supporto dei carichi di lavoro, senza per questo venire meno ai requisiti di business.

Elimina la creazione e la manutenzione di asset inutilizzati: analizza le risorse delle applicazioni (come report precompilati, set di dati e immagini statiche) e i modelli di accesso alle risorse per identificare ridondanze, sottoutilizzi e obiettivi potenziali di disattivazione. Consolida le risorse generate con contenuti ridondanti (come, ad esempio, report mensili con set di dati e output comuni o in sovrapposizione) per eliminare le risorse utilizzate per la duplicazione degli output. Disattiva le risorse non utilizzate (come, ad esempio, immagini di prodotto non più in vendita) per liberare le risorse usate e ridurre il numero di risorse sfruttate per supportare il carico di lavoro. 

Ottimizza il posizionamento geografico dei carichi di lavoro in base alle posizioni degli utenti: analizza i modelli di accesso alla rete per capire da quali aree geografiche si connettono i tuoi clienti. Seleziona le Regioni e i servizi per ridurre la distanza che il traffico di rete deve percorrere e diminuire così le risorse totali di rete richieste per supportare il tuo carico di lavoro. 

Ottimizza le risorse dei membri del team in base alle attività eseguite: ottimizza le risorse fornite ai membri del team per ridurre al minimo l'impatto sulla sostenibilità e supportare al tempo stesso le loro esigenze. Esegui ad esempio operazioni complesse, come rendering e compilazione, su desktop cloud condivisi altamente utilizzati invece che su sistemi per utenti singoli, sottoutilizzati e con un alto dispendio energetico.

# Modelli di software e architetture
<a name="sus-software-architecture-patterns"></a>

Implementa modelli per eseguire lo smoothing del carico e garantire un utilizzo elevato e coerente delle risorse implementate per ridurre al minimo il loro consumo. In seguito alle modifiche nei comportamenti degli utenti nel tempo, alcuni componenti potrebbero diventare inattivi per mancanza di utilizzo. Rivedi modelli e architetture per consolidare i componenti sottoutilizzati e aumentare l'uso complessivo. Ritira i componenti che non sono più necessari. Analizza le prestazioni dei componenti dei tuoi carichi di lavoro e ottimizza quelli che usano la maggior quantità di risorse. Identifica i dispositivi che i clienti utilizzano per accedere ai servizi e implementa modelli in grado di ridurre al minimo la necessità di aggiornamenti dei dispositivi. 

 Le seguenti domande si concentrano su queste considerazioni relative alla sostenibilità:


| SUS 3: In che modo sfrutti i modelli di software e architetture per sostenere i tuoi obiettivi di sostenibilità? | 
| --- | 
|  Implementa modelli per eseguire lo smoothing del carico e garantire un utilizzo elevato e coerente delle risorse implementate per ridurre al minimo il loro consumo. In seguito alle modifiche nei comportamenti degli utenti nel tempo, alcuni componenti potrebbero diventare inattivi per mancanza di utilizzo. Rivedi modelli e architetture per consolidare i componenti sottoutilizzati e aumentare l'uso complessivo. Ritira i componenti che non sono più necessari. Analizza le prestazioni dei componenti dei tuoi carichi di lavoro e ottimizza quelli che usano la maggior quantità di risorse. Identifica i dispositivi che i clienti utilizzano per accedere ai servizi e implementa modelli in grado di ridurre al minimo la necessità di aggiornamenti dei dispositivi.   | 

Ottimizza software e architetture per processi asincroni e pianificati: utilizza progettazioni e architetture software efficienti per ridurre al minimo le risorse medie richieste per unità di lavoro. Implementa meccanismi che generano un utilizzo uniforme dei componenti per ridurre le risorse inattive tra le attività e diminuire l'impatto di picchi di carico. 

Rimuovi o rifattorizza i componenti dei carichi di lavoro con un utilizzo ridotto o assente: monitora l'attività dei carichi di lavoro per individuare i cambiamenti che si verificano nel tempo nell'utilizzo dei singoli componenti. Elimina i componenti non utilizzati e non più necessari e rifattorizza quelli con scarso utilizzo per limitare lo spreco di risorse.

Ottimizza le aree di codice che consumano la maggior parte del tempo o delle risorse: monitora l'attività dei carichi di lavoro per individuare i componenti delle applicazioni che usano la maggior parte delle risorse. Ottimizza il codice eseguito all'interno di questi componenti per ridurre l'utilizzo delle risorse e massimizzare al tempo stesso le prestazioni. 

Ottimizza l'impatto su dispositivi e apparecchiature dei clienti: identifica i dispositivi e le attrezzature che i tuoi clienti usano per accedere ai tuoi servizi, il loro ciclo di vita atteso e l'impatto finanziario e di sostenibilità che deriva dalla loro sostituzione. Implementa modelli e architetture software per ridurre al minimo la necessità dei clienti di sostituire dispositivi e aggiornare attrezzature. Implementa ad esempio nuove caratteristiche usando un codice compatibile con versioni di hardware e sistemi operativi precedenti o gestisci la dimensione dei payload in modo che non superino la capacità di archiviazione del dispositivo target. 

Usa i modelli e le architetture software che meglio supportano l'accesso ai dati e i modelli di archiviazione: scopri come i dati vengono utilizzati all'interno del tuo carico di lavoro, consumati dagli utenti, trasferiti e archiviati. Seleziona tecnologie che ti consentono di ridurre l'elaborazione dei dati e i requisiti di archiviazione.

# Modelli di dati
<a name="sus-data-patterns"></a>

Implementa modelli per eseguire lo smoothing del carico e garantire un utilizzo elevato e coerente delle risorse implementate per ridurre al minimo il loro consumo. In seguito alle modifiche nei comportamenti degli utenti nel tempo, alcuni componenti potrebbero diventare inattivi per mancanza di utilizzo. Rivedi modelli e architetture per consolidare i componenti sottoutilizzati e aumentare l'uso complessivo. Ritira i componenti che non sono più necessari. Analizza le prestazioni dei componenti dei tuoi carichi di lavoro e ottimizza quelli che usano la maggior quantità di risorse. Identifica i dispositivi che i clienti utilizzano per accedere ai servizi e implementa modelli in grado di ridurre al minimo la necessità di aggiornamenti dei dispositivi. 

 La seguente domanda si concentra su queste considerazioni relative alla sostenibilità:


| SUS 4: In che modo sfrutti i modelli di accesso e di utilizzo dei dati per sostenere i tuoi obiettivi di sostenibilità? | 
| --- | 
|  Implementa procedure di gestione dei dati per ridurre l'archiviazione assegnata richiesta per supportare il carico di lavoro e le risorse necessarie per l'uso correlato. Analizza i tuoi dati e usa tecnologie e configurazioni di archiviazione che meglio supportano il valore aziendale dei dati e il modo in cui vengono utilizzati. Esegui il ciclo di vita dei dati su un'archiviazione più efficiente e meno performante al diminuire dei requisiti ed elimina i dati che non sono più necessari.   | 

Implementa una policy di classificazione dei dati: classifica i dati per comprenderne il significato in favore dei risultati aziendali. Usa queste informazioni per stabilire quando trasferire i dati in un'archiviazione più efficiente dal punto di vista energetico o eliminarli in totale sicurezza. 

Utilizza tecnologie che supportano l'accesso ai dati e i modelli di archiviazione: usa l'archiviazione in grado di supportare al meglio il modo in cui viene effettuato l'accesso ai dati e come vengono archiviati per ridurre la quantità di risorse assegnate e supportare al tempo stesso il tuo carico di lavoro. I dispositivi allo stato solido (SSD) utilizzano ad esempio l'energia in modo più intensivo rispetto ai drive magnetici e dovrebbero essere usati solo per casi d'uso di dati attivi. Usa storage di classe di archiviazione ad alta efficienza energetica per i dati ad accesso infrequente. 

Utilizza le policy del ciclo di vita per eliminare i dati non necessari: gestisci il ciclo di vita di tutti i tuoi dati e applica in automatico cronologie di eliminazione per ridurre i requisiti totali di archiviazione del tuo carico di lavoro.

Riduci il provisioning eccessivo nell'archiviazione a blocchi: per ridurre la quantità totale di archiviazione assegnata, crea un'archiviazione a blocchi con l'allocazione di dimensioni in base al carico di lavoro. Usa i volumi elastici per espandere l'archiviazione all'aumentare dei dati senza dover ridimensionare l'archiviazione collegata alle risorse di calcolo. Esamina regolarmente i volumi elastici e riduci i volumi con un provisioning eccessivo per adattarli alla dimensione corrente dei dati. 

Elimina i dati ridondanti o non necessari: duplica i dati solo quando è necessario per ridurre la quantità totale di archiviazione utilizzata. Utilizza tecnologie di backup che deduplicano i dati a livello di file e blocco. Limita l'uso di configurazioni Redundant Array of Independent Drives (RAID), ad eccezione dei casi in cui sono richieste per soddisfare gli SLA.

Utilizza file system condivisi o archiviazione di oggetti per accedere a dati comuni: adotta l'archiviazione condivisa e singole fonti di verità per evitare la duplicazione dei dati e ridurre i requisiti di archiviazione complessiva del tuo carico di lavoro. Recupera i dati dall'archiviazione condivisa solo in base alle esigenze. Distacca volumi non utilizzati per liberare le risorse. Riduci al minimo gli spostamenti dei dati tra le reti: usa un'archiviazione condivisa e accedi ai dati da archivi regionali per contenere le risorse di rete totali necessarie per supportare i trasferimenti dei dati per il carico di lavoro. 

Esegui il backup dei dati solo quando sono difficili da ricreare: per ridurre al minimo l'uso delle risorse di archiviazione, esegui il backup solo dei dati che abbiano un valore aziendale o siano considerati necessari per soddisfare requisiti di conformità. Esamina le policy di backup ed escludi l'archiviazione temporanea che non offre valore in uno scenario di ripristino. 

# Modelli hardware
<a name="sus-hardware-patterns"></a>

Cerca opportunità per ridurre l'impatto dei carichi di lavoro in termini di sostenibilità apportando modifiche alle tue prassi di gestione hardware. Riduci la quantità di hardware necessaria per il provisioning e l'implementazione e seleziona l'hardware più efficiente per il singolo carico di lavoro. 

 La seguente domanda si concentra su queste considerazioni relative alla sostenibilità:


| SUS 5: In che modo la gestione dell'hardware e le procedure di utilizzo sostengono i tuoi obiettivi di sostenibilità? | 
| --- | 
|  Cerca opportunità per ridurre l'impatto dei carichi di lavoro in termini di sostenibilità apportando modifiche alle tue prassi di gestione hardware. Riduci la quantità di hardware necessaria per il provisioning e l'implementazione e seleziona l'hardware più efficiente per il singolo carico di lavoro.   | 

Utilizza la quantità minima di hardware per soddisfare le tue esigenze: le funzionalità del cloud consentono di apportare modifiche frequenti alle implementazioni dei carichi di lavoro. Aggiorna i componenti distribuiti man mano che le tue esigenze cambiano. 

Usa tipi di istanze con il minimo impatto: monitora costantemente il rilascio di nuovi tipi di istanza e sfrutta le migliorie in tema di efficienza energetica, inclusi i tipi di istanza progettati per supportare carichi di lavoro specifici, come la formazione del machine learning, le inferenze e la transcodifica dei video.

Utilizza servizi gestiti: i servizi gestiti consentono di affidare ad AWS la responsabilità di mantenere un utilizzo medio alto e un'ottimizzazione della sostenibilità dell'hardware implementato. Utilizza i servizi gestiti per distribuire l'impatto della sostenibilità dei servizi su tutti i tenant relativi, riducendo così il singolo contributo. 

Ottimizza l'utilizzo delle GPU: le Graphics Processing Unit (GPU) possono comportare un uso energetico intensivo e molti carichi di lavoro delle GPU sono altamente variabili, come il rendering, la transcodifica e la formazione e la modellazione del machine learning. Esegui le istanze GPU solo per il tempo necessario e disattivale automaticamente quando non occorrono per ridurre la quantità di risorse utilizzate. 

# Modelli di sviluppo e implementazione
<a name="sus-development-deployment-patterns"></a>

Cerca opportunità per ridurre l'impatto di sostenibilità apportando modifiche alle tue prassi di sviluppo, test e implementazione. 

 La seguente domanda si concentra su queste considerazioni relative alla sostenibilità:


| SUS 6: In che modo i processi di sviluppo e implementazione adottati supportano i tuoi obiettivi di sostenibilità? | 
| --- | 
|  Cerca opportunità per ridurre l'impatto di sostenibilità apportando modifiche alle tue prassi di sviluppo, test e implementazione.   | 

Adotta metodi che consentono di integrare rapidamente i miglioramenti orientati alla sostenibilità: testa e convalida potenziali modifiche di miglioramento prima di distribuirle in produzione. Tieni in considerazione il costo dei test quando calcoli il potenziale vantaggio futuro di un miglioramento. Sviluppa metodi di test a basso costo per consentire la distribuzione di piccoli miglioramenti. 

Mantieni aggiornato il tuo carico di lavoro: sistemi operativi, librerie e applicazioni aggiornati possono incidere sull'efficienza dei carichi di lavoro e facilitano l'adozione di tecnologie più efficienti. Il software aggiornato potrebbe anche includere funzionalità per misurare in modo più accurato l'impatto in termini di sostenibilità del carico di lavoro, poiché i fornitori offrono caratteristiche per raggiungere i propri obiettivi di sostenibilità.

Incrementa l'utilizzo degli ambienti di sviluppo: utilizza l'automazione e l'infrastruttura come codice per rendere operativi gli ambienti di preproduzione quando necessario e dismetterli quando non vengono utilizzati. Un modello comune consiste nel pianificare periodi di disponibilità che coincidano con l'orario di lavoro dei membri del team incaricati dello sviluppo. L'ibernazione è uno strumento utile per preservare lo stato e portare rapidamente le istanze online solo quando necessario. Utilizza tipi di istanze espandibili, istanze Spot, servizi di database elastici, container e altre tecnologie per allineare la capacità di sviluppo e test all'uso. 

Utilizza device farm gestite per i test: le device farm gestiste distribuiscono l'impatto di sostenibilità della produzione di hardware e dell'utilizzo delle risorse su più tenant. Le device farm gestite offrono diversi tipi di dispositivi e consentono di supportare hardware meno diffusi e di generazioni precedenti e di evitare l'impatto sulla sostenibilità dei clienti dovuti ad aggiornamenti dei dispositivi non necessari.

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

 Consulta le seguenti risorse per ulteriori informazioni sulle best practice per la sostenibilità. 

## Whitepaper
<a name="sus-wp"></a>
+  [Principio della sostenibilità](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html?ref=wellarchitected-wp) 

## Video
<a name="sus-video"></a>
+  [The Climate Pledge](https://www.youtube.com/watch?v=oz9iO0EOpI0&ref=wellarchitected-wp) 