

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

**Topics**
+ [SUS 3 In che modo sfrutti i modelli di software e architetture per sostenere i tuoi obiettivi di sostenibilità?](w2aac19c15b9b5.md)

# SUS 3 In che modo sfrutti i modelli di software e architetture per sostenere i tuoi obiettivi di sostenibilità?
<a name="w2aac19c15b9b5"></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. 

 Best practice: 

# SUS03-BP01 Ottimizzazione del software e architetture per processi asincroni e pianificati
<a name="sus_sus_software_a2"></a>

 Usa 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. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Basso 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Accoda le richieste che non necessitano di un'elaborazione immediata. 
+  Aumenta la serializzazione per diminuire l'utilizzo nella pipeline. 
+  Modifica la capacità dei singoli componenti per evitare la presenza di risorse inattive in attesa di input. 
+  Crea buffer e stabilisci limiti di velocità per uniformare il consumo di servizi esterni. 
+  Usa l'hardware più efficiente disponibile sul mercato per le tue ottimizzazioni software. 
+  Utilizza architetture basate su code, gestione di pipeline e lavoratori istanza on demand per ottimizzare l'utilizzo dell'elaborazione in batch. 
+  Pianifica le attività per evitare picchi di carico e conflitti delle risorse dovute a esecuzioni simultanee. 
+  Elabora i processi nei momenti del giorno in cui l'intensità di emissione di anidride carbonica per l'alimentazione è più bassa. 

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

 **Documenti correlati:** 
+  [What is Amazon Simple Queue Service? (Che cos'è Amazon Simple Queue Service?)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [Che cos'è Amazon MQ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [Dimensionamento basato su Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [What is AWS Step Functions? (Cos'è AWS Step Functions?)](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [What is AWS Lambda? (Che cos'è AWS Lambda?)](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [Utilizzo di AWS Lambda con Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [What is Amazon EventBridge? (Che cos'è Amazon EventBridge?)](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 

 **Video correlati:** 
+  [Building Sustainably on AWS (Creare sostenibilità su AWS)](https://www.youtube.com/watch?v=ARAitMSIxc8) 
+  [Moving to event-driven architectures (Passaggio ad architetture basate su eventi)](https://www.youtube.com/watch?v=h46IquqjF3E) 

# SUS03-BP02 Rimozione o rifattorizzazione dei componenti dei carichi di lavoro con un utilizzo ridotto o assente
<a name="sus_sus_software_a3"></a>

 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. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Basso 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Analizza il carico (utilizzando indicatori come il flusso delle transazioni e le chiamate API) sui componenti funzionali per individuare i componenti non utilizzati o sottoutilizzati. 
+  Ritira i componenti non più necessari. 
+  Rifattorizza i componenti sottoutilizzati. 
+  Consolida i componenti sottoutilizzati con altre risorse per promuovere un utilizzo efficiente. 

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

 **Documenti correlati:** 
+  [Che cos'è AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Che cos'è Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [Usare ServiceLens per monitorare l'integrità delle applicazioni](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html) 
+  [Automated Cleanup of Unused Images in Amazon ECR](https://aws.amazon.com/blogs/compute/automated-cleanup-of-unused-images-in-amazon-ecr/) 

 **Video correlati:** 
+  [Building Sustainably on AWS (Creare sostenibilità su AWS)](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP03 Ottimizzazione delle aree di codice che consumano la maggior parte del tempo o delle risorse
<a name="sus_sus_software_a4"></a>

 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. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Bassa 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Monitora le prestazioni in funzione dell'utilizzo delle risorse per individuare i componenti da ottimizzare che presentano maggiori requisiti di risorse per unità di lavoro. 
+  Utilizza un profiler di codice per identificare le aree di codice che utilizzano la maggior parte del tempo o delle risorse e trasformale in obiettivi di ottimizzazione. 
+  Sostituisci gli algoritmi con versioni più efficienti che producono lo stesso risultato. 
+  Utilizza l'accelerazione hardware per migliorare l'efficienza di blocchi di codice con tempi di esecuzione lunghi. 
+  Usa il sistema operativo e il linguaggio di programmazione più efficienti per il carico di lavoro. 
+  Rimuovi l'ordinamento e la formattazione non necessari. 
+  Usa modelli di trasferimento dei dati che riducono la quantità di risorse utilizzate in base alla frequenza con cui si verificano modifiche dei dati e al modo in cui vengono consumati. Invia ad esempio informazioni sulla modifica dello stato a un client, così eviterà di usare risorse per effettuare richieste e ricevere messaggi irrilevanti come "Nessuna modifica". 

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

 **Documenti correlati:** 
+  [Che cos'è Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [What is Amazon CodeGuru Profiler? (Che cos'è Amazon CodeGuru Profiler?)](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [Istanze FPGA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [SDK AWS su Strumenti per creare su AWS](https://aws.amazon.com/tools/) 

 **Video correlati:** 
+  [Building Sustainably on AWS (Creare sostenibilità su AWS)](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP04 Ottimizzazione dell'impatto su dispositivi e apparecchiature dei clienti
<a name="sus_sus_software_a5"></a>

 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. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Basso 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Inventario dei dispositivi utilizzati dai clienti. 
+  Esegui i test usando device farm gestite con set di hardware rappresentativi per misurare l'impatto delle tue modifiche e iterare lo sviluppo per ottimizzare i dispositivi supportati. 
+  Prendi in considerazione la larghezza di banda e la latenza della rete durante la creazione di payload e implementa funzionalità che consentano alle tue applicazioni di lavorare bene anche in presenza di una larghezza di banda ridotta e di link ad alta latenza. 
+  Elabora in anticipo i payload di dati per ridurre i requisiti di elaborazione in locale e limitare i requisiti relativi al trasferimento di dati. 
+  Esegui attività a elevata intensità computazionale lato server (come, ad esempio, il rendering delle immagini) oppure usa lo streaming delle applicazioni per migliorare l'esperienza utente sui dispositivi di versioni precedenti. 
+  Esegui la segmentazione e la paginazione dell'output, soprattutto per le sessioni interattive, per gestire i payload e limitare i requisiti di archiviazione in locale. 

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

 **Documenti correlati:** 
+  [Che cos'è AWS Device Farm?](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 
+  [Documentazione su Amazon AppStream 2.0](https://docs.aws.amazon.com/appstream2/) 
+  [NICE DCV](https://docs.aws.amazon.com/dcv/) 
+  [Documentazione su Amazon Elastic Transcoder](https://docs.aws.amazon.com/elastic-transcoder/) 

 **Video correlati:** 
+  [Building Sustainably on AWS (Creare sostenibilità su AWS)](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP05 Uso dei modelli e le architetture software che meglio supportano l'accesso ai dati e i modelli di archiviazione
<a name="sus_sus_software_a6"></a>

 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. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Basso 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Analizza gli accessi ai dati e i modelli di archiviazione. 
+  Archivia i file di dati in formati di file efficienti, ad esempio Parquet, per evitare elaborazioni non necessarie (durante ad esempio l'esecuzione di analisi dei dati) e per ridurre l'archiviazione totale assegnata. 
+  Sfrutta le tecnologie che lavorano in modo nativo con i dati compressi. 
+  Utilizza il motore del database che meglio supporta il modello di query dominante. 
+  Gestisci gli indici di database per verificare che le progettazioni degli indici siano in grado di supportare un'esecuzione efficiente delle query. 
+  Seleziona protocolli di rete che riducano la quantità di capacità di rete utilizzata. 

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

 **Documenti correlati:** 
+  [Formati file di supporto alla compressione di Athena](https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html) 
+  [COPY dai formati dei dati in colonne con Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-columnar.html) 
+  [Convertire il formato dei record di input in Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html) 
+  [Opzioni di formato per input e output ETL in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html) 
+  [Migliora le prestazioni delle query su Amazon Athena con una conversione ai formati in colonne](https://docs.aws.amazon.com/athena/latest/ug/convert-to-columnar.html) 
+  [caricamento di file di dati compressi da Amazon S3 con Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-gzip-compressed-data-files-from-S3.html) 
+  [Monitoraggio del carico del database con Performance Insights su Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html) 
+  [Monitoraggio del carico del database con Performance Insights su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+  [AWS IoT FleetWise](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-iot-fleetwise-transferring-vehicle-data-cloud/) 

 **Video correlati:** 
+  [Building Sustainably on AWS (Creare sostenibilità su AWS)](https://www.youtube.com/watch?v=ARAitMSIxc8) 