

# SUS 6 In che modo i processi organizzativi possono supportare gli obiettivi di sostenibilità?
<a name="sus-06"></a>

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

**Topics**
+ [SUS06-BP01 Adozione di metodi che consentano di introdurre rapidamente migliorie in tema di sostenibilità](sus_sus_dev_a2.md)
+ [SUS06-BP02 Aggiornamento del carico di lavoro](sus_sus_dev_a3.md)
+ [SUS06-BP03 Aumento dell'utilizzo degli ambienti di costruzione](sus_sus_dev_a4.md)
+ [SUS06-BP04 Utilizzo di device farm gestite per i test](sus_sus_dev_a5.md)

# SUS06-BP01 Adozione di metodi che consentano di introdurre rapidamente migliorie in tema di sostenibilità
<a name="sus_sus_dev_a2"></a>

Adotta metodi e processi per convalidare migliorie potenziali, ridurre i costi legati ai test e offrire piccole migliorie.

 **Anti-pattern comuni:** 
+  Analizzare l'applicazione rispetto alla sostenibilità è un'attività che viene eseguita solo una volta, all'inizio di un progetto. 
+  Il tuo carico di lavoro non è aggiornato, poiché il processo di rilascio è troppo complesso per introdurre modifiche minori per l'efficienza delle risorse. 
+  Non hai meccanismi per migliorare il tuo carico di lavoro in termini di sostenibilità. 

 **Vantaggi dell'adozione di questa best practice:** definendo un processo per avviare e monitorare le migliorie in termini di sostenibilità, potrai adottare continuamente nuove funzionalità, eliminare i problemi e migliorare l'efficienza del carico di lavoro. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Testa e convalida potenziali miglioramenti all'impatto sulla sostenibilità prima di implementarli 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. 

 **Passaggi dell'implementazione** 
+  Aggiungi i requisiti per migliorare la sostenibilità nel tuo backlog di sviluppo. 
+  Usa un [processo di migliorie](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/improvement-process.html) iterativo che ti consente di identificare, valutare, dare la priorità, testare e implementare queste migliorie. 
+  Migliora e semplifica continuamente i tuoi processi di sviluppo. Ad esempio, [Automatizza il processo di distribuzione del software con pipeline di distribuzione e integrazione continue (CI/CD)](https://aws.amazon.com/getting-started/hands-on/set-up-ci-cd-pipeline/) per testare e distribuire migliorie potenziali per ridurre il livello di impegno e gli errori causati da processi manuali. 
+  Sviluppa e testa i potenziali miglioramenti utilizzando i componenti rappresentativi minimi realizzabili per ridurre i costi legati ai test. 
+  Valuta continuamente l'impatto delle migliorie e fai gli adeguamenti richiesti. 

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

 **Documenti correlati:** 
+  [AWS offre soluzioni di sostenibilità](https://aws.amazon.com/sustainability/) 
+ [ Procedure di sviluppo agile e scalabile basate su AWS CodeCommit](https://aws.amazon.com/blogs/devops/scalable-agile-development-practices-based-on-aws-codecommit/)

 **Video correlati:** 
+ [ Offrire architetture sostenibili e ad alte prestazioni ](https://www.youtube.com/watch?v=FBc9hXQfat0)

 **Esempi correlati:** 
+  [Well-Architected Lab - Trasformare i report su costi e utilizzo in report sull'efficienza](https://www.wellarchitectedlabs.com/sustainability/300_labs/300_cur_reports_as_efficiency_reports/) 

# SUS06-BP02 Aggiornamento del carico di lavoro
<a name="sus_sus_dev_a3"></a>

Aggiorna il tuo carico di lavoro per adottare funzionalità efficienti, eliminare le problematiche e migliorare l'efficienza generale del tuo carico di lavoro. 

 **Anti-pattern comuni:** 
+ Ritieni che l'architettura corrente diventi statica e non venga aggiornata nel corso del tempo.
+  Non disponi di sistemi né esegui regolarmente una valutazione per la compatibilità di software e pacchetti aggiornati con il carico di lavoro. 

 **Vantaggi dell'adozione di questa best practice:** la definizione di un processo per garantire il costante aggiornamento del carico di lavoro ti consentirà di adottare nuove caratteristiche e funzionalità, risolvere i problemi e migliorare l'efficienza del carico di lavoro.

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Sistemi operativi, runtime, middleware, librerie e applicazioni aggiornati possono incidere sull'efficienza dei carichi di lavoro e facilitano l'adozione delle 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à. Adotta una cadenza regolare per aggiornare il tuo carico di lavoro con le ultime funzionalità e i rilasci più recenti. 

 **Passaggi dell'implementazione** 
+  Definisci un processo e una pianificazione per valutare nuove caratteristiche o istanze per il carico di lavoro. Sfrutta l'agilità del cloud per testare in modo semplice e rapido il modo in cui le nuove funzionalità possono migliorare il carico di lavoro nei seguenti ambiti: 
  +  Riduzione dell'impatto a livello di sostenibilità. 
  +  Raggiungimento di maggiore efficienza in termini di prestazioni. 
  +  Eliminazione delle barriere finalizzata a un miglioramento pianificato. 
  +  Miglioramento della capacità di misurare e gestire l'impatto a livello di sostenibilità. 
+  Esegui l'inventario del software e dell'architettura e identifica i componenti che richiedono un aggiornamento. 
  +  Puoi usare [AWS Systems Manager Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) per raccogliere i metadati relativi a sistema operativo (SO), applicazioni e istanze dalle istanze Amazon EC2 per avere una panoramica immediata su quali istanze stanno eseguendo il software e le configurazioni richieste dalle policy software e quali istanze devono essere aggiornate. 
+  Individua le modalità di aggiornamento dei componenti del carico di lavoro.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/wellarchitected/2023-10-03/framework/sus_sus_dev_a3.html)
+  Utilizza l'automazione del processo di aggiornamento per ridurre il livello di impegno per distribuire le nuove funzionalità e limitare gli errori causati dai processi manuali. 
  +  Puoi usare [CI/CD](https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/) per aggiornare automaticamente le AMI, le immagini di container e altri artefatti relativi alla tua applicazione cloud. 
  +  Puoi usare strumenti come [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) per automatizzare il processo degli aggiornamenti di sistema e pianificare le attività tramite [Finestre di manutenzione AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

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

 **Documenti correlati:** 
+  [Centro di progettazione AWS](https://aws.amazon.com/architecture) 
+  [Le novità di AWS](https://aws.amazon.com/new/?ref=wellarchitected&ref=wellarchitected) 
+  [Strumenti per sviluppatori AWS](https://aws.amazon.com/products/developer-tools/) 

 **Esempi correlati:** 
+  [ Well-Architected Labs: Inventario e gestione delle patch](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [Laboratorio: AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# SUS06-BP03 Aumento dell'utilizzo degli ambienti di costruzione
<a name="sus_sus_dev_a4"></a>

Aumenta l'uso delle risorse per sviluppare, testare e creare i tuoi carichi di lavoro.

 **Anti-pattern comuni:** 
+  Esegui il provisioning manuale o interrompi i tuoi ambienti di sviluppo. 
+  Fai in modo che i tuoi ambienti di sviluppo siano in esecuzione indipendentemente dalle attività di test, creazione o rilascio (ad esempio, eseguire un ambiente al di fuori dell'orario di lavoro dei membri del tuo team di sviluppo). 
+  Esegui un provisioning eccessivo delle tue risorse per gli ambienti di creazione. 

 **Vantaggi derivanti dall'adozione di questa best practice:** aumentando l'uso degli ambienti di sviluppo, puoi migliorare l'efficienza complessiva del tuo carico di lavoro cloud, allocando al contempo le risorse di cui gli sviluppatori hanno bisogno per creare, testare e sviluppare in modo efficiente. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Utilizza l'automazione e l'infrastruttura come codice per rendere operativi gli ambienti di produzione 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. Gli ambienti di test devono essere molto simili alla configurazione di produzione. Tuttavia, cerca la possibilità di utilizzare tipi di istanze con capacità di espansione, istanze Spot Amazon EC2, servizi di database con dimensionamento automatico, container e tecnologie serverless per allineare la capacità di sviluppo e test all'uso. Limita i volumi di dati per soddisfare solo i requisiti di test. Se usi i dati di produzione per i test, rifletti sulla possibilità di condividere i dati di produzione invece di spostarli. 

 **Passaggi dell'implementazione** 
+  Usa l'infrastruttura come codice per eseguire il provisioning dei tuoi ambienti di sviluppo. 
+  Utilizza l'automazione per gestire il ciclo di vita degli ambienti di sviluppo e test e massimizzare l'efficienza delle tue risorse di sviluppo. 
+  Utilizza strategie per ottimizzare l'utilizzo degli ambienti di sviluppo e test. 
  +  Utilizza ambienti rappresentativi minimi realizzabili per lo sviluppo e il test di potenziali miglioramenti. 
  +  Utilizza tecnologie serverless, se possibile. 
  +  Utilizza istanze on-demand per integrare i dispositivi per gli sviluppatori. 
  +  Utilizza i tipi di istanze con capacità di espansione, istanze Spot e altre tecnologie per allineare la capacità di compilazione all'uso. 
  +  Adotta servizi cloud nativi per un accesso sicuro alle shell delle istanze invece di implementare parchi istanze di host bastion. 
  +  Dimensiona automaticamente le tue risorse di sviluppo in base alle tue attività. 

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

 **Documenti correlati:** 
+  [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 
+  [ Istanze espandibili di prestazioni Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) 
+  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+ [ Che cos'è AWS CodeBuild? ](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [ Instance Scheduler su AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/)

 **Video correlati:** 
+ [Best practice sull'integrazione continua ](https://www.youtube.com/watch?v=77HvSGyBVdU)

# SUS06-BP04 Utilizzo di device farm gestite per i test
<a name="sus_sus_dev_a5"></a>

Usa device farm gestite per testare in maniera efficiente una nuova funzionalità su un set rappresentativo di hardware.

 **Anti-pattern comuni:** 
+  Testa e distribuisci manualmente la tua applicazione su singoli dispositivi fisici. 
+  Non usare il servizio di test delle app per testare e interagire con le tue app (ad esempio, Android, iOS e app Web) su dispositivi fisici reali. 

 **Vantaggi dell'adozione di questa best practice:** usare le device farm gestite per testare applicazioni abilitate al cloud offre una serie di vantaggi: 
+  Offrono funzionalità più efficienti per testare le applicazioni su un'ampia gamma di dispositivi. 
+  Eliminano la necessità di un'infrastruttura in-house per i test. 
+  Offrono diverse tipologie di dispositivi, tra cui hardware di generazioni precedenti e meno diffuso, eliminando così la necessità di aggiornamenti non necessari dei dispositivi. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>

L'uso di device farm gestite può aiutarti a semplificare il processo di test per le nuove funzionalità su un gruppo rappresentativo di hardware. Le device farm gestite offrono diversi tipi di dispositivi, inclusi hardware meno diffusi e di generazioni precedenti, ed evitano l'impatto sulla sostenibilità dei clienti dovuti ad aggiornamenti dei dispositivi non necessari.

 **Passaggi dell'implementazione** 
+  Definisci i requisiti di test ed esegui la pianificazione (come tipo di test, sistemi operativi e programma di test). 
  +  Puoi usare [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) per raccogliere e analizzare dati lato client e formulare il tuo piano di test. 
+  Seleziona la device farm gestita che supporta i tuoi requisiti di test. Ad esempio, puoi usare [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) per testare e capire l'impatto delle tue modifiche su un set rappresentativo di hardware. 
+  Usa l'integrazione continua/l'implementazione continua (CI/CD) per pianificare ed eseguire i test. 
  + [ Integrazione di AWS Device Farm con la pipeline CI/CD per eseguire i test Selenium sui diversi browser ](https://aws.amazon.com/blogs/devops/integrating-aws-device-farm-with-ci-cd-pipeline-to-run-cross-browser-selenium-tests/)
  + [ Creazione e test di app iOS e iPadOS con AWS DevOps e servizi mobili ](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)
+  Esamina sempre i risultati dei test e apporta le migliorie richieste. 

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

 **Documenti correlati:** 
+ [ Elenco dei dispositivi AWS Device Farm](https://awsdevicefarm.info/)
+ [ Visualizzazione del dashboard CloudWatch RUM ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-view-data.html)

 **Esempi correlati:** 
+ [ App di esempio AWS Device Farm per Android ](https://github.com/aws-samples/aws-device-farm-sample-app-for-android)
+ [ App di esempio AWS Device Farm per iOS ](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios)
+ [ Test Appium Web per AWS Device Farm](https://github.com/aws-samples/aws-device-farm-sample-web-app-using-appium-python)

 **Video correlati:** 
+ [ Ottimizza le applicazioni con gli approfondimenti degli utenti finali con Amazon CloudWatch RUM ](https://www.youtube.com/watch?v=NMaeujY9A9Y)