

# Gestione delle modifiche
<a name="a-change-management"></a>

**Topics**
+ [REL 6 In che modo monitori le risorse del carico di lavoro?](w2aac19b9b9b5.md)
+ [REL 7 In che modo progetti il carico di lavoro per adattarti ai cambiamenti della domanda?](w2aac19b9b9b7.md)
+ [REL 8 In che modo implementi le modifiche?](w2aac19b9b9b9.md)

# REL 6 In che modo monitori le risorse del carico di lavoro?
<a name="w2aac19b9b9b5"></a>

I log e i parametri sono strumenti molto efficaci per ottenere informazioni sullo stato del tuo carico di lavoro. È possibile configurare il carico di lavoro in modo da monitorare i log e i parametri e inviare notifiche quando vengono superate le soglie o si verificano eventi significativi. Il monitoraggio consente al carico di lavoro di riconoscere quando vengono superate le soglie di prestazioni basse o si verificano errori, in modo che possa essere ripristinato automaticamente di rimando.

**Topics**
+ [REL06-BP01 Monitoraggio di tutti i componenti per il carico di lavoro (generazione)](rel_monitor_aws_resources_monitor_resources.md)
+ [REL06-BP02 Definizione e calcolo dei parametri (aggregazione)](rel_monitor_aws_resources_notification_aggregation.md)
+ [REL06-BP03 Invio di notifiche (elaborazione e avvisi in tempo reale)](rel_monitor_aws_resources_notification_monitor.md)
+ [REL06-BP04 Automatizzazione delle risposte (elaborazione e avvisi in tempo reale)](rel_monitor_aws_resources_automate_response_monitor.md)
+ [REL06-BP05 Analisi](rel_monitor_aws_resources_storage_analytics.md)
+ [REL06-BP06 Esecuzione di revisioni periodiche](rel_monitor_aws_resources_review_monitoring.md)
+ [REL06-BP07 Monitoraggio del tracciamento end-to-end delle richieste attraverso il sistema](rel_monitor_aws_resources_end_to_end.md)

# REL06-BP01 Monitoraggio di tutti i componenti per il carico di lavoro (generazione)
<a name="rel_monitor_aws_resources_monitor_resources"></a>

 monitora i componenti del carico di lavoro con Amazon CloudWatch o con strumenti di terze parti. Monitora i servizi AWS con il pannello di controllo AWS Health. 

 Occorre monitorare tutti i componenti del carico di lavoro, inclusi front-end, logica aziendale e livelli di storage. Definisci i parametri chiave e come estrarli dai registri, se necessario, e imposta soglie per l'attivazione degli eventi di allarme corrispondenti. Assicurati che i parametri siano pertinenti agli indicatori chiave di prestazione (KPI) del tuo carico di lavoro e utilizza i parametri e i registri per identificare i primi segnali di degrado del servizio. Ad esempio, un parametro legato ai risultati aziendali, come il numero di ordini elaborati con successo al minuto, può indicare problemi di carico di lavoro più rapidamente di un parametro tecnico, come l'utilizzo della CPU. Utilizza il pannello di controllo AWS Health per una visualizzazione personalizzata delle prestazioni e della disponibilità dei servizi AWS sottostanti alle risorse AWS. 

 Il monitoraggio nel cloud offre nuove opportunità. La maggior parte dei provider cloud ha sviluppato hook personalizzabili e può fornire approfondimenti per aiutarti a monitorare più livelli del carico di lavoro. I servizi AWS come Amazon CloudWatch applicano algoritmi statistici e di apprendimento automatico per analizzare continuamente i parametri di sistemi e applicazioni, determinare le normali linee di base e far emergere le anomalie con un intervento minimo da parte dell'utente. Gli algoritmi di rilevamento delle anomalie tengono conto della stagionalità e delle variazioni di tendenza dei parametri. 

 AWS mette a disposizione una grande quantità di informazioni di monitoraggio e di registro che possono essere utilizzate per definire parametri specifici per i carichi di lavoro, processi di variazione della domanda e per l'adozione di tecniche di apprendimento automatico indipendentemente dalle competenze di ML. 

 Inoltre, monitora tutti gli endpoint esterni per avere la certezza che siano indipendenti dall'implementazione di base. Questo monitoraggio attivo può essere effettuato con transazioni sintetiche (talvolta indicate come *canary utente,*ma da non confondere con le implementazioni canary) che eseguono periodicamente una serie di attività comuni che corrispondono alle azioni eseguite dai client del carico di lavoro. Mantieni queste attività di breve durata e assicurati di non sovraccaricare il carico di lavoro durante il test. Amazon CloudWatch Synthetics ti consente di [creare canary sintetici](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) per monitorare gli endpoint e le API. Puoi anche combinare i nodi client sintetici Canary con la console AWS X-Ray per individuare quali Canary sintetiche stanno riscontrando problemi con errori, guasti o velocità di throttling per l'intervallo di tempo selezionato. 

 **Risultato desiderato: ** 

 raccogliere e utilizzare i parametri critici di tutti i componenti del carico di lavoro per garantire l'affidabilità del carico di lavoro e un'esperienza utente ottimale. Rilevare che un carico di lavoro non sta raggiungendo i risultati aziendali consente di dichiarare rapidamente un disastro e di riprendersi da un incidente. 

 **Anti-pattern comuni:** 
+  Solo monitoraggio delle interfacce esterne per il carico di lavoro. 
+  Non generare parametri specifici per il carico di lavoro e affidati solo ai parametri forniti dai servizi AWS utilizzati dal carico di lavoro. 
+  Utilizzare solo parametri tecnici nel carico di lavoro e non monitorare i parametri relativi agli indicatori chiave di prestazione (KPI) non tecnici a cui il carico di lavoro contribuisce. 
+  Affidarsi al traffico di produzione e a semplici controlli di integrità per monitorare e valutare lo stato del carico di lavoro. 

 **Vantaggi dell'adozione di questa best practice:** il monitoraggio a tutti i livelli del carico di lavoro consente di prevedere e risolvere più rapidamente i problemi dei componenti che costituiscono il carico di lavoro. 

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

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

1.  **Abilitazione della registrazione ove disponibile.** I dati di monitoraggio devono essere ottenuti da tutti i componenti dei carichi di lavoro. Attiva ulteriori registri, come i registri di accesso S3, e abilita il carico di lavoro per registrare i dati specifici del carico di lavoro. Raccogli i parametri per le medie di CPU, I/O di rete e I/O su disco da servizi come Amazon ECS, Amazon EKS, Amazon EC2, Elastic Load Balancing, AWS Auto Scaling ed Amazon EMR. Consulta [Servizi AWS che pubblicano parametri CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) Servizi AWS che pubblicano parametri su CloudWatch. 

1.  **Esamina tutti i parametri predefiniti ed esplora eventuali lacune nella raccolta dei dati.** Tutti i servizi generano parametri predefiniti. La raccolta di parametri predefiniti consente di comprendere meglio le dipendenze tra i componenti del carico di lavoro e il modo in cui l'affidabilità e le prestazioni dei componenti influiscono sul carico di lavoro. Puoi anche creare e [pubblicare parametri propri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) affinché CloudWatch utilizzi la AWS CLI o un'API. Questo 

1.  **valuta tutti i parametri per decidere quelli a cui inviare avvisi per ogni servizio AWS nel carico di lavoro.** Puoi scegliere di selezionare un sottoinsieme di parametri che hanno un impatto importante sull'affidabilità del carico di lavoro. La focalizzazione su soglie e parametri critici consente di affinare il numero di avvisi [informativi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) e può contribuire a ridurre al minimo i falsi positivi. 

1.  **Definisci gli avvisi e il processo di recupero del carico di lavoro dopo l'attivazione dell'avviso.** La definizione degli avvisi consente di notificare, intensificare e seguire rapidamente le fasi necessarie per il ripristino da un incidente e il rispetto dell'obiettivo di tempo di ripristino (RTO) prescritto. Puoi utilizzare [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions) per invocare flussi di lavoro automatici e avviare procedure di ripristino in base a soglie definite. 

1.  **Esplora l'uso di transazioni sintetiche per raccogliere dati rilevanti sullo stato dei carichi di lavoro.** Il monitoraggio sintetico segue gli stessi percorsi ed esegue le stesse azioni di un cliente, il che consente di verificare continuamente l'esperienza del cliente anche quando non c'è traffico di clienti sui carichi di lavoro. Utilizzando [le transazioni sintetiche,](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)puoi individuare i problemi prima dei clienti. 

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

 **Best practice correlate:** 
+ [REL11-BP03 Automatizzazione della riparazione a tutti i livelli](rel_withstand_component_failures_auto_healing_system.md)

 **Documenti correlati:** 
+  [Getting started with your AWS Health Dashboard – Your account health (Nozioni di base su AWS HealthDashboard: stato del tuo account)](https://docs.aws.amazon.com/health/latest/ug/getting-started-health-dashboard.html) 
+  [Servizi AWS che pubblicano parametri CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
+  [Log di accesso per Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html) 
+  [Log di accesso per Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html) 
+  [Accesso a Amazon CloudWatch Logs per AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html) 
+  [Registrazione delle richieste con registrazione dell'accesso al server Amazon S3 ](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html) 
+  [Abilita i log di accesso per Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html) 
+  [Esportazione di dati di registro in Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html) 
+  [Installazione dell'agente CloudWatch su un'istanza Amazon EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html) 
+  [Pubblicazione di parametri personalizzati](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 
+  [Utilizzo dei pannelli di controllo Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
+  [Utilizzare i parametri Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
+  [Utilizzo di Canary (Amazon CloudWatch Synthetics)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [Cosa sono i Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 

   **Guide per l'utente:** 
+  [Creazione di un trail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html) 
+  [Monitoraggio dei parametri di memoria e del disco per le istanze Amazon EC2 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 
+  [Utilizzo di CloudWatch Logs con istanze di container](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html) 
+  [Log di flusso VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html) 
+  [Che cos'è Amazon DevOps Guru?](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 
+  [Che cos'è AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

 **Blog correlati:** 
+  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 

 **Esempi e workshop correlati:** 
+  [AWS Well-Architected Labs: Operational Excellence - Dependency Monitoring (Laboratori ben strutturati AWS: Eccellenza operativa - Monitoraggio delle dipendenze)](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_dependency_monitoring/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [Workshop sull'osservabilità](https://catalog.workshops.aws/observability/en-US) 

# REL06-BP02 Definizione e calcolo dei parametri (aggregazione)
<a name="rel_monitor_aws_resources_notification_aggregation"></a>

 Archivia i dati di registro e applica i filtri, laddove necessari, per calcolare i parametri, ad esempio i conteggi di un evento di registro specifico o la latenza calcolata dai timestamp del registro eventi. 

 Amazon CloudWatch e Amazon S3 fungono da principali livelli di aggregazione e storage. Per alcuni servizi, come AWS Auto Scaling e Elastic Load Balancing, i parametri predefiniti vengono forniti per impostazione predefinita per il carico della CPU o la latenza media delle richieste in un cluster o in un'istanza. Per i servizi di streaming, come i registri di flusso VPC e AWS CloudTrail, i dati degli eventi vengono inoltrati a CloudWatch Logs ed è necessario definire e applicare filtri di parametri per estrarre i parametri dai dati dell'evento. In questo modo vengono forniti dati di serie temporali, che possono fungere da input per gli allarmi CloudWatch definiti dall'utente per attivare gli avvisi. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Aggregazione: definisci e calcola i parametri. Archivia i dati di log e applica filtri, se necessario, per calcolare i parametri, ad esempio i conteggi di un evento di log specifico o la latenza calcolata dai timestamp degli eventi di log 
  +  I filtri dei parametri definiscono i termini e i modelli da ricercare nei dati di registro inviati a CloudWatch Logs. CloudWatch Logs utilizza questi filtri di parametri per trasformare i dati di registro in parametri CloudWatch numerici che è possibile rappresentare su un grafico o un avviso. 
    +  [Ricerca e filtraggio dei dati di log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) 
  +  Utilizza una terza parte affidabile per aggregare i registri. 
    +  Segui le istruzioni che ti vengono fornite dalle terze parti. La maggior parte dei prodotti di terze parti si integra con CloudWatch e Amazon S3. 
  +  Alcuni servizi AWS possono pubblicare registri direttamente in Amazon S3. Se il requisito principale per i registri è l'archiviazione in Amazon S3, si può facilmente fare in modo che il servizio che produce i registri li invii direttamente a Amazon S3, senza dover creare un'infrastruttura aggiuntiva. 
    +  [Invio di registri direttamente a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Sending-Logs-Directly-To-S3.html) 

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

 **Documenti correlati:** 
+  [Query di esempio di Amazon CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html) 
+  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [Ricerca e filtraggio dei dati di log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) 
+  [Invio di registri direttamente a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Sending-Logs-Directly-To-S3.html) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 

# REL06-BP03 Invio di notifiche (elaborazione e avvisi in tempo reale)
<a name="rel_monitor_aws_resources_notification_monitor"></a>

 Le organizzazioni interessate ricevono le notifiche quando si verificano eventi significativi. 

 Gli avvisi possono essere inviati ad argomenti Amazon Simple Notification Service (Amazon SNS) e poi inoltrati a un numero qualsiasi di iscritti. Ad esempio, Amazon SNS può inoltrare avvisi a un alias e-mail in modo che il personale tecnico possa rispondere. 

 **Anti-pattern comuni:** 
+  La configurazione di avvisi a una soglia troppo bassa causa l'invio di troppe notifiche. 
+  Non archiviare avvisi per l'esplorazione futura. 

 **Vantaggi dell'adozione di questa best practice:** le notifiche sugli eventi (anche quelle che è possibile gestire e risolvere in automatico) consentono di avere un record di eventi e di affrontarli potenzialmente in modo diverso in futuro. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Elaborazione e avvisi in tempo reale. Le organizzazioni che devono essere messe al corrente ricevono le notifiche nel caso si verifichino eventi significativi 
  +  I pannelli di controllo di Amazon CloudWatch sono home page personalizzabili nella console CloudWatch che puoi utilizzare per monitorare le tue risorse in un'unica visualizzazione, anche quelle distribuite tra regioni diverse. 
    +  [Utilizzo dei pannelli di controllo Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
  +  Crea un avviso quando un parametro supera un limite. 
    +  [Utilizzo degli allarmi di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 

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

 **Documenti correlati:** 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [Utilizzo degli allarmi di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) 
+  [Utilizzo dei pannelli di controllo Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
+  [Utilizzare i parametri Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 

# REL06-BP04 Automatizzazione delle risposte (elaborazione e avvisi in tempo reale)
<a name="rel_monitor_aws_resources_automate_response_monitor"></a>

 utilizza l'automazione per agire quando viene rilevato un evento; ad esempio, per sostituire i componenti guasti. 

 Gli avvisi possono attivare eventi di AWS Auto Scaling, in modo che i cluster reagiscano ai cambiamenti della domanda. Gli avvisi possono essere inviati a Amazon Simple Queue Service (Amazon SQS), che può fungere da punto di integrazione per sistemi di ticket di terze parti. AWS Lambda può anche effettuare l'iscrizione ad avvisi, fornendo agli utenti un modello serverless asincrono che reagisce alle modifiche in modo dinamico. AWS Config monitora e registra continuamente le configurazioni delle risorse AWS e può attivare [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) per risolvere i problemi. 

 Amazon DevOps Guru monitora automaticamente le risorse dell'applicazione per rilevare comportamenti anomali e fornisce raccomandazioni mirate per accelerare i tempi di identificazione e riparazione dei problemi. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizza Amazon DevOps Guru per eseguire azioni automatizzate. Amazon DevOps Guru monitora automaticamente le risorse dell'applicazione per rilevare comportamenti anomali e fornisce raccomandazioni mirate per accelerare i tempi di identificazione e riparazione dei problemi. 
  +  [What is Amazon DevOps Guru? (Che cos'è Amazon DevOps Guru?)](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 
+  Utilizza AWS Systems Manager per eseguire azioni automatizzate. AWS Config monitora e registra in modo continuo le configurazioni delle risorse AWS e può attivare AWS Systems Manager per risolvere i problemi. 
  +  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
    +  Crea e utilizza documenti Systems Manager Automation. Questi definiscono le operazioni che Systems Manager esegue sulle istanze gestite e su altre risorse AWS quando si avvia un processo di automazione. 
    +  [Gestione dei documenti di automazione (playbook)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+  Amazon CloudWatch invia eventi di modifica dello stato di avviso a Amazon EventBridge. Crea regole di EventBridge per automatizzare le risposte. 
  +  [Creazione di una regola EventBridge che si attivi su un evento da una risorsa AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html) 
+  Crea ed esegui un piano per automatizzare le risposte. 
  +  Effettua l'inventario di tutte le procedure di risposta agli avvisi. Devi pianificare le risposte agli avvisi prima di classificare le attività. 
  +  Effettua l'inventario di tutte le attività con azioni specifiche da intraprendere. La maggior parte di queste azioni è documentata nei runbook. È inoltre necessario disporre di playbook per gli avvisi relativi a eventi imprevisti. 
  +  Esamina i runbook e i playbook per tutte le azioni automatizzabili. In generale, se è possibile definire un'azione, è molto probabile che si possa anche automatizzare. 
  +  Classifica innanzitutto le attività soggette a errori o dispendiose in termini di tempo. È molto utile eliminare le fonti di errore e ridurre i tempi di risoluzione. 
  +  Definisci un piano per completare l'automazione. Mantieni un piano attivo per automatizzare e aggiornare l'automazione. 
  +  Esamina i requisiti manuali per le opportunità di automazione. Metti alla prova il processo manuale per scoprire opportunità di automazione. 

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

 **Documenti correlati:** 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
+  [Creazione di una regola EventBridge che si attivi su un evento da una risorsa AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html) 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [What is Amazon DevOps Guru? (Che cos'è Amazon DevOps Guru?)](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 
+  [Gestione dei documenti di automazione (playbook)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 

# REL06-BP05 Analisi
<a name="rel_monitor_aws_resources_storage_analytics"></a>

 raccogli i file di log e le cronologie dei parametri e analizzali per ottenere informazioni più ampie sulle tendenze e sui carichi di lavoro. 

 Amazon CloudWatch Logs Insights supporta un [linguaggio di query semplice ma potente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) che puoi utilizzare per analizzare i dati di log. Amazon CloudWatch Logs supporta anche le sottoscrizioni che consentono ai dati di fluire in modo ottimale verso Amazon S3, dove puoi utilizzare o Amazon Athena per eseguire query sui dati. Supporta, inoltre, le query su un'ampia gamma di formati. Consulta [SerDe e formati di dati supportati](https://docs.aws.amazon.com/athena/latest/ug/supported-format.html) nella Guida per l'utente Amazon Athena per ulteriori informazioni. Per l'analisi di enormi set di file di log, puoi eseguire un cluster Amazon EMR per effettuare analisi con capacità nell'ordine dei petabyte. 

 Esistono numerosi strumenti forniti da Partner AWS e terze parti che consentono aggregazione, elaborazione, archiviazione e analisi. Questi strumenti includono New Relic, Splunk, Loggly, Logstash, CloudHealth e Nagios. Tuttavia, la generazione esterna di log di sistema e applicazioni è univoca per ciascun provider di servizi cloud e spesso per ciascun servizio. 

 Una parte spesso trascurata del processo di monitoraggio è la gestione dei dati. È necessario determinare i requisiti di conservazione per il monitoraggio dei dati, quindi applicare le policy del ciclo di vita di conseguenza. Amazon S3 supporta la gestione del ciclo di vita a livello di bucket S3. Questa gestione del ciclo di vita può essere applicata in modo diverso ai diversi percorsi nel bucket. Verso la fine del ciclo di vita è possibile trasferire i dati su Amazon Glacier per l'archiviazione a lungo termine fino alla scadenza, al termine del periodo di conservazione. La classe di storage S3 Intelligent-Tiering è progettata per ottimizzare i costi trasferendo automaticamente i dati nel livello di accesso più conveniente, senza impatto sulle prestazioni o sovraccarico operativo. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Gli approfondimenti CloudWatch Logs consentono di cercare e analizzare in modo interattivo i dati di registro in Amazon CloudWatch Logs. 
  +  [Analisi dei dati di registro con gli approfondimenti CloudWatch Logs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html) 
  +  [Query di esempio di Amazon CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 
+  Utilizza Amazon CloudWatch Logs per inviare registri a Amazon S3 dove puoi utilizzare Amazon Athena per le query dei dati. 
  +  [Come faccio ad analizzare i miei registri di accesso al server Amazon S3 utilizzando Athena?](https://aws.amazon.com/premiumsupport/knowledge-center/analyze-logs-athena/) 
    +  Crea una policy del ciclo di vita di S3 per il bucket dei log di accesso al server. Configura la policy del ciclo di vita per rimuovere periodicamente i file di log. In questo modo si riduce la quantità di dati che Athena deve analizzare per ogni query. 
      +  [Come faccio a creare una policy del ciclo di vita per un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html) 

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

 **Documenti correlati:** 
+  [Query di esempio di Amazon CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html) 
+  [Analisi dei dati di registro con gli approfondimenti CloudWatch Logs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html) 
+  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 
+  [Come faccio a creare una policy del ciclo di vita per un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html) 
+  [Come faccio ad analizzare i miei registri di accesso al server Amazon S3 utilizzando Athena?](https://aws.amazon.com/premiumsupport/knowledge-center/analyze-logs-athena/) 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 

# REL06-BP06 Esecuzione di revisioni periodiche
<a name="rel_monitor_aws_resources_review_monitoring"></a>

 Esegui verifiche frequenti delle modalità di implementazione del monitoraggio del carico di lavoro e aggiornalo in base a eventi e modifiche significativi. 

 Il monitoraggio efficace è basato su parametri aziendali chiave. Assicurati che questi parametri siano presenti nel carico di lavoro man mano che le priorità aziendali cambiano. 

 L'audit del monitoraggio consente di sapere quando un'applicazione sta raggiungendo gli obiettivi di disponibilità. L'analisi delle cause principali richiede la capacità di scoprire cosa è successo in caso di errori. AWS consente di monitorare lo stato dei tuoi servizi durante un incidente: 
+  **Amazon CloudWatch Logs:** è possibile archiviare i log in questo servizio e controllarne i contenuti. 
+  **Amazon CloudWatch Logs Insights**: è un servizio completamente gestito che consente di eseguire analisi di registri di grandi dimensioni in pochi secondi. Offre query e visualizzazioni rapide e interattive.  
+  **AWS Config:** è possibile vedere quale infrastruttura AWS era in uso in momenti differenti. 
+  **AWS CloudTrail:** è possibile vedere quali API AWS sono state richiamate, a che ora e da quale principale. 

 In AWS, conduciamo meeting settimanali per [esaminare le prestazioni operative](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html) e condividere quanto appreso tra i team. Dato l'elevato numero di team presenti in AWS, abbiamo creato [La ruota](https://aws.amazon.com/blogs/opensource/the-wheel/) per scegliere casualmente un carico di lavoro da esaminare. Stabilire una cadenza regolare per le revisioni delle prestazioni operative e la condivisione delle conoscenze migliora la capacità di ottenere prestazioni più elevate dai team operativi. 

 **Anti-pattern comuni:** 
+  Raccolta dei soli parametri predefiniti. 
+  Impostazione di una strategia di monitoraggio senza alcuna revisione. 
+  Nessuna discussione sul monitoraggio quando vengono distribuite modifiche importanti. 

 **Vantaggi dell'adozione di questa best practice:** la verifica periodica del monitoraggio consente di prevedere potenziali problemi, invece di rispondere alle notifiche quando un problema previsto si verifica effettivamente. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Crea più pannelli di controllo per il carico di lavoro. È necessario disporre di un pannello di controllo di primo livello contenente i parametri aziendali chiave, nonché i parametri tecnici che hai identificato come i più rilevanti per lo stato previsto del carico di lavoro al variare dell'utilizzo. È inoltre importante disporre di pannelli di controllo per vari livelli di applicazione e dipendenze che è possibile ispezionare. 
  +  [Utilizzo dei pannelli di controllo Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 
+  Pianifica ed effettua revisioni periodiche dei pannelli di controllo del carico di lavoro. Effettua un'ispezione regolare dei pannelli di controllo. La frequenza può essere diversa a seconda di quanto l'ispezione sia approfondita. 
  +  Ispeziona l'andamento nei parametri. Confronta i valori dei parametri con i valori storici per vedere se ci sono tendenze che potrebbero suggerire l'esame di un particolare aspetto. Riportiamo alcuni esempi: aumento della latenza, riduzione della funzione aziendale primaria e aumento delle risposte all'errore. 
  +  Identificazione di outlier/anomalie nei parametri. Le medie o mediane possono nascondere outlier e anomalie. Osserva i valori più alti e più bassi nell'intervallo di tempo e analizza le cause dei risultati estremi. Man mano che continui a eliminare tali cause, la riduzione del numero di valori estremi ti consente di continuare a migliorare la coerenza delle prestazioni del carico di lavoro. 
  +  Ricerca di bruschi cambiamenti nel comportamento. Un cambiamento repentino della quantità o della direzione di un parametro può indicare un cambiamento nell'applicazione o fattori esterni che potrebbero richiedere l'aggiunta di ulteriori parametri da monitorare. 

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

 **Documenti correlati:** 
+  [Query di esempio di Amazon CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html) 
+  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [Utilizzo dei pannelli di controllo Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 

# REL06-BP07 Monitoraggio del tracciamento end-to-end delle richieste attraverso il sistema
<a name="rel_monitor_aws_resources_end_to_end"></a>

 Utilizza AWS X-Ray o strumenti di terze parti per consentire agli sviluppatori di eseguire più facilmente l'analisi e il debug di sistemi distribuiti, per comprendere l'andamento delle prestazioni delle loro applicazioni e dei relativi servizi sottostanti. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Monitora il tracciamento end-to-end delle richieste attraverso il sistema. AWS X-Ray è un servizio che raccoglie dati sulle richieste elaborate dalla tua applicazione e fornisce strumenti che puoi utilizzare per visualizzare, filtrare e ottenere informazioni approfondite su tali dati per identificare problemi e opportunità di ottimizzazione. Per qualsiasi richiesta tracciata alla tua applicazione, puoi visualizzare informazioni dettagliate non solo sulla richiesta e sulla risposta, ma anche sulle chiamate effettuate dall'applicazione verso microservizi, database, API Web e risorse AWS a valle. 
  +  [Che cos'è AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
  +  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 

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

 **Documenti correlati:** 
+  [Effettuare il debug con Amazon CloudWatch Synthetics e AWS X-Ray](https://aws.amazon.com/blogs/devops/debugging-with-amazon-cloudwatch-synthetics-and-aws-x-ray/) 
+  [One Observability Workshop](https://observability.workshop.aws/) 
+  [The Amazon Builders' Library: Dotazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [Utilizzo di Canary (Amazon CloudWatch Synthetics)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [Che cos'è AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

# REL 7 In che modo progetti il carico di lavoro per adattarti ai cambiamenti della domanda?
<a name="w2aac19b9b9b7"></a>

Un carico di lavoro scalabile fornisce elasticità per aggiungere o rimuovere risorse automaticamente, in modo che vi sia una stretta corrispondenza con la domanda attuale in un dato momento.

**Topics**
+ [REL07-BP01 Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse](rel_adapt_to_changes_autoscale_adapt.md)
+ [REL07-BP02 Ottenimento di risorse quando viene rilevata la compromissione di un carico di lavoro](rel_adapt_to_changes_reactive_adapt_auto.md)
+ [REL07-BP03 Ottenimento di risorse dopo aver rilevato che sono necessarie più risorse per un carico di lavoro](rel_adapt_to_changes_proactive_adapt_auto.md)
+ [REL07-BP04 Esecuzione di un test di carico sul carico di lavoro](rel_adapt_to_changes_load_tested_adapt.md)

# REL07-BP01 Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse
<a name="rel_adapt_to_changes_autoscale_adapt"></a>

 Quando sostituisci risorse danneggiate o esegui il dimensionamento del carico di lavoro, puoi automatizzare il processo utilizzando servizi AWS gestiti, come Amazon S3 e AWS Auto Scaling. Puoi anche utilizzare strumenti di terze parti e SDK AWS per automatizzare il dimensionamento. 

 I servizi gestiti AWS includono Amazon S3, Amazon CloudFront, AWS Auto Scaling, AWS Lambda, Amazon DynamoDB, AWS Fargate e Amazon Route 53. 

 AWS Auto Scaling consente di rilevare e sostituire le istanze danneggiate. Inoltre, permette di creare piani di dimensionamento per le risorse, tra cui istanze e parchi istanze [Amazon EC2](https://aws.amazon.com/ec2/) , attività [Amazon ECS](https://aws.amazon.com/ecs/) , tabelle e indici [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) e repliche di [Amazon Aurora](https://aws.amazon.com/aurora/) . 

 Durante il dimensionamento di istanze EC2, assicurati di utilizzare più zone di disponibilità (preferibilmente almeno tre) e di aggiungere o rimuovere capacità per mantenere il bilanciamento tra queste zone. Anche le attività ECS o i pod Kubernetes (quando si utilizza Amazon Elastic Kubernetes Service) devono essere distribuiti su più zone di disponibilità. 

 Quando utilizzi AWS Lambda, le istanze subiscono un dimensionamento automatico. Ogni volta che viene ricevuta una notifica di evento per la funzione, AWS Lambda individua rapidamente la capacità libera all'interno del parco istanze di calcolo ed esegue il codice fino alla simultaneità allocata. Devi assicurarti che la simultaneità necessaria sia configurata sulla Lambda specifica e nelle tue Service Quotas. 

 Amazon S3 ricalibra automaticamente le risorse per gestire elevati tassi di richiesta. Ad esempio, l'applicazione può ottenere almeno 3.500 richieste PUT/COPY/POST/DELETE o 5.500 richieste GET /HEAD al secondo per prefisso in un bucket. Non ci sono limiti al numero di prefissi in un bucket. Puoi aumentare le prestazioni di lettura o scrittura parallelizzando le letture. Ad esempio, se crei 10 prefissi in un bucket Amazon S3 per parallelizzare le letture, potresti dimensionare le prestazioni di lettura a 55.000 richieste al secondo. 

 Configura e utilizza Amazon CloudFront o una rete di distribuzione di contenuti (CDN) attendibile. Una CDN può fornire tempi di risposta più rapidi agli utenti finali e può servire le richieste di contenuti dalla cache, riducendo così la necessità di dimensionare il carico di lavoro. 

 **Anti-pattern comuni:** 
+  Implementare gruppi Auto Scaling per la correzione automatica, ma senza elasticità. 
+  Utilizzare l'auto scaling per rispondere a grandi aumenti di traffico. 
+  Distribuire applicazioni altamente stateful, eliminando l'opzione di elasticità. 

 **Vantaggi dell'adozione di questa best practice:** L'automazione elimina il potenziale di errori manuali nella distribuzione e nella disattivazione delle risorse. L'automazione elimina il rischio di superamento dei costi e di rifiuto del servizio a causa della risposta lenta alle esigenze di distribuzione o disattivazione. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Configura e utilizza AWS Auto Scaling. In questo modo è possibile monitorare le applicazioni e regolare automaticamente la capacità per mantenere prestazioni stabili e prevedibili al minor costo possibile. Grazie ad AWS Auto Scaling, puoi configurare il dimensionamento delle applicazioni per più risorse in vari servizi. 
  +  [Che cos'è AWS Auto Scaling?](https://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html) 
    +  Configura il dimensionamento automatico su serie di istanze Spot e istanze Amazon EC2, attività Amazon ECS, indici e tabelle Amazon DynamoDB, repliche Amazon Aurora e applicazioni Marketplace AWS, come applicabile. 
      +  [Gestione automatica della capacità di throughput con DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) 
        +  Utilizza le operazioni delle API di servizi per specificare gli avvisi, le policy di ridimensionamento e i tempi di riscaldamento e raffreddamento. 
+  Utilizza Elastic Load Balancing. I sistemi di bilanciamento del carico possono distribuire il carico in base al percorso o alla connettività di rete. 
  +  [Che cos'è Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) 
    +  Application Load Balancers può distribuire il carico per percorso. 
      +  [What is an Application Load Balancer? (Che cos'è un Application Load Balancer?)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
        +  Configura un Application Load Balancer per distribuire il traffico su diversi carichi di lavoro in base a un percorso nello stesso nome di dominio. 
        +  Gli Application Load Balancers possono essere utilizzati per distribuire i carichi in modo da gestire la domanda attraverso l'integrazione con AWS Auto Scaling. 
          +  [Uso di un sistema di bilanciamento del carico con un gruppo Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) 
    +  I Network Load Balancer possono distribuire il carico in base alla connessione. 
      +  [Che cos'è un Network Load Balancer?](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
        +  Configura un Network Load Balancer per distribuire il traffico su diversi carichi di lavoro tramite TCP o per disporre di un set costante di indirizzi IP per il carico di lavoro. 
        +  I Network Load Balancer possono essere utilizzati per distribuire i carichi in modo da gestire la domanda attraverso l'integrazione con AWS Auto Scaling. 
+  Uso di un provider DNS altamente disponibile I nomi DNS consentono agli utenti di accedere ai carichi di lavoro utilizzando nomi anziché indirizzi IP e distribuire queste informazioni in un ambito definito, solitamente a livello globale per gli utenti del carico di lavoro. 
  +  Utilizza Amazon Route 53 o un provider DNS affidabile. 
    +  [Che cos'è Amazon Route 53?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 
  +  Utilizza Route 53 per gestire le distribuzioni CloudFront e i load balancer. 
    +  Individua i domini e i sottodomini da gestire. 
    +  Crea set di record appropriati utilizzando record ALIAS o CNAME. 
      +  [Uso dei record](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/rrsets-working-with.html) 
+  Utilizza la rete globale AWS per ottimizzare il percorso dagli utenti alle applicazioni. AWS Global Accelerator monitora costantemente l'integrità degli endpoint delle applicazioni e reindirizza il traffico verso endpoint integri in meno di 30 secondi. 
  +  AWS Global Accelerator è un servizio che migliora la disponibilità e le prestazioni delle applicazioni con utenti locali o globali, fornendo indirizzi IP statici che fungono da punto di ingresso fisso agli endpoint delle applicazioni in una o più regioni Regioni AWS, ad esempio Application Load Balancers, Network Load Balancer o istanze Amazon EC2. 
    +  [Che cos'è AWS Global Accelerator?](https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html) 
+  Configura e utilizza Amazon CloudFront o una rete di distribuzione di contenuti (CDN) attendibile. Una rete di distribuzione di contenuti (CDN) può fornire tempi di risposta più rapidi agli utenti finali e soddisfare richieste di contenuti che possono causare un dimensionamento non necessario dei carichi di lavoro. 
  +  [Che cos'è Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) 
    +  Configura le distribuzioni di Amazon CloudFront per i carichi di lavoro oppure utilizza una CDN di terze parti. 
      +  Puoi limitare l'accesso ai tuoi carichi di lavoro in modo che siano accessibili solo da CloudFront utilizzando gli intervalli di indirizzi IP per CloudFront nelle policy di accesso o nei gruppi di sicurezza degli endpoint. 

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

 **Documenti correlati:** 
+  [Partner APN: partner per la creazione di soluzioni di elaborazione automatizzate](https://aws.amazon.com/partners/find/results/?facets=%27Product%20:%20Compute%27) 
+  [AWS Auto Scaling: come funzionano i piani di dimensionamento](https://docs.aws.amazon.com/autoscaling/plans/userguide/how-it-works.html) 
+  [Marketplace AWS: prodotti che possono essere utilizzati con Auto Scaling](https://aws.amazon.com/marketplace/search/results?searchTerms=Auto+Scaling) 
+  [Gestione automatica della capacità di throughput con DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) 
+  [Uso di un sistema di bilanciamento del carico con un gruppo Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) 
+  [Che cos'è AWS Global Accelerator?](https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html) 
+  [Che cos'è Amazon EC2 Auto Scaling?](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) 
+  [Che cos'è AWS Auto Scaling?](https://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html) 
+  [Che cos'è Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html?ref=wellarchitected) 
+  [Che cos'è Amazon Route 53?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 
+  [Che cos'è Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) 
+  [Che cos'è un Network Load Balancer?](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [What is an Application Load Balancer? (Che cos'è un Application Load Balancer?)](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Uso dei record](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/rrsets-working-with.html) 

# REL07-BP02 Ottenimento di risorse quando viene rilevata la compromissione di un carico di lavoro
<a name="rel_adapt_to_changes_reactive_adapt_auto"></a>

 All'occorrenza, ridimensiona le risorse in modo reattivo se la disponibilità è influenzata per ripristinare la disponibilità del carico di lavoro. 

 Devi prima configurare i controlli dello stato e i criteri su questi controlli per indicare quando la disponibilità è influenzata dalla mancanza di risorse. Quindi notificare al personale appropriato di dimensionare manualmente la risorsa o attivare l'automazione per dimensionarla automaticamente. 

 Il dimensionamento può essere regolato manualmente in base al carico di lavoro, ad esempio modificando il numero di istanze EC2 in un gruppo con scalabilità automatica o modificando la velocità di trasmissione effettiva di una tabella DynamoDB tramite la Console di gestione AWS o la AWS CLI. Tuttavia, l'automazione deve essere utilizzata ogni qualvolta sia possibile (consulta **Utilizzo dell'automazione per l'acquisizione o il dimensionamento delle risorse**). 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Ottieni le risorse quando viene rilevata la compromissione di un carico di lavoro All'occorrenza, ridimensiona le risorse in modo reattivo se la disponibilità è influenzata per ripristinare la disponibilità del carico di lavoro. 
  +  Utilizza i piani di dimensionamento, che sono il componente principale di AWS Auto Scaling, per configurare una serie di istruzioni per dimensionare le risorse. Se lavori con AWS CloudFormation o aggiungi tag alle risorse AWS, puoi impostare piani di dimensionamento per diversi set di risorse, per ogni applicazione. AWS Auto Scaling fornisce raccomandazioni per strategie di dimensionamento personalizzate per ogni risorsa. Dopo aver creato il piano, AWS Auto Scaling combina i metodi di dimensionamento dinamico e predittivo per supportare la tua strategia di dimensionamento. 
    +  [AWS Auto Scaling: come funzionano i piani di dimensionamento](https://docs.aws.amazon.com/autoscaling/plans/userguide/how-it-works.html) 
  +  Amazon EC2 Auto Scaling aiuta a garantire che sia disponibile il numero corretto di istanze Amazon EC2 per gestire il carico dell'applicazione. È possibile creare raccolte di istanze EC2, denominate gruppi Auto Scaling. Puoi specificare il numero minimo di istanze in ciascun gruppo con scalabilità automatica, mentre Amazon EC2 Auto Scaling garantisce che il gruppo non scenda mai al di sotto di tale quantità. Puoi specificare il numero massimo di istanze in ciascun gruppo con scalabilità automatica, mentre Amazon EC2 Auto Scaling garantisce che il gruppo non scenda mai al di sotto di tale quantità. 
    +  [Che cos'è Amazon EC2 Auto Scaling?](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) 
  +  Il dimensionamento automatico Amazon DynamoDB utilizza il servizio di dimensionamento automatico dell'applicazione AWS per regolare dinamicamente la capacità effettiva di trasmissione assegnata per tuo conto, in risposta ai modelli di traffico effettivi. Ciò consente a una tabella o a un indice secondario globale di aumentare la capacità di lettura e scrittura assegnata per gestire aumenti di traffico improvvisi, senza throttling. 
    +  [Gestione automatica della capacità di throughput con DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) 

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

 **Documenti correlati:** 
+  [Partner APN: partner per la creazione di soluzioni di elaborazione automatizzate](https://aws.amazon.com/partners/find/results/?facets=%27Product%20:%20Compute%27) 
+  [AWS Auto Scaling: come funzionano i piani di dimensionamento](https://docs.aws.amazon.com/autoscaling/plans/userguide/how-it-works.html) 
+  [Marketplace AWS: prodotti che possono essere utilizzati con Auto Scaling](https://aws.amazon.com/marketplace/search/results?searchTerms=Auto+Scaling) 
+  [Gestione automatica della capacità di throughput con DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) 
+  [Che cos'è Amazon EC2 Auto Scaling?](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) 

# REL07-BP03 Ottenimento di risorse dopo aver rilevato che sono necessarie più risorse per un carico di lavoro
<a name="rel_adapt_to_changes_proactive_adapt_auto"></a>

 Dimensiona le risorse in modo proattivo per soddisfare la domanda ed evitare l'impatto sulla disponibilità. 

 Molti servizi AWS dimensionano automaticamente le risorse per soddisfare la domanda. Se si utilizzano istanze Amazon EC2 o cluster Amazon ECS, puoi configurare la scalabilità automatica di tali istanze in base ai parametri di utilizzo corrispondenti alla richiesta del carico di lavoro. Per Amazon EC2, è possibile impiegare l'utilizzo medio della CPU, il conteggio delle richieste del sistema di bilanciamento del carico o la larghezza di banda di rete per aumentare (o ridurre) le istanze EC2. Per Amazon ECS, è possibile impiegare l'utilizzo medio della CPU, il conteggio delle richieste del load balancer e l'utilizzo della memoria per aumentare orizzontalmente (o ridurre orizzontalmente) le attività ECS. Utilizzando il dimensionamento automatico di destinazione su AWS, l'autoscaler si comporta come un termostato domestico, aggiungendo o rimuovendo risorse per mantenere il valore di destinazione (ad esempio, il 70% di utilizzo della CPU) specificato. 

 AWS Auto Scaling può anche eseguire l' [Auto Scaling predittivo](https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/), che utilizza il machine learning per analizzare il carico di lavoro cronologico di ciascuna risorsa e prevede regolarmente il carico futuro per i due giorni successivi. 

 La legge di Little aiuta a calcolare il numero di istanze di calcolo (istanze EC2, funzioni Lambda simultanee, ecc.) necessarie. 

 *L* = *λW* 

 L = numero di istanze (o simultaneità media nel sistema) 

 λ = velocità media alla quale arrivano le richieste (richieste/sec) 

 W = tempo medio trascorso da ogni richiesta nel sistema (sec) 

 Ad esempio, a 100 rps, se ogni richiesta impiega 0,5 secondi per l'elaborazione, avrai bisogno di 50 istanze per tenere il passo con la domanda. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Ottieni risorse dopo aver rilevato che sono necessarie più risorse per un carico di lavoro Dimensiona le risorse in modo proattivo per soddisfare la domanda ed evitare l'impatto sulla disponibilità. 
  +  Valuta quante risorse di calcolo sono necessarie (simultaneità di calcolo) per gestire un determinato tasso di richiesta 
    +  [Telling Stories About Little's Law](https://brooker.co.za/blog/2018/06/20/littles-law.html) 
  +  Quando disponi di un modello cronologico per l'utilizzo, imposta il dimensionamento programmato per il dimensionamento automatico Amazon EC2. 
    +  [Dimensionamento programmato per Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 
  +  Utilizza il dimensionamento predittivo di AWS. 
    +  [Dimensionamento predittivo per EC2, alimentato dal machine learning](https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/) 

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

 **Documenti correlati:** 
+  [AWS Auto Scaling: come funzionano i piani di dimensionamento](https://docs.aws.amazon.com/autoscaling/plans/userguide/how-it-works.html) 
+  [Marketplace AWS: prodotti che possono essere utilizzati con Auto Scaling](https://aws.amazon.com/marketplace/search/results?searchTerms=Auto+Scaling) 
+  [Gestione automatica della capacità di throughput con DynamoDB Auto Scaling](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) 
+  [Dimensionamento predittivo per EC2, alimentato dal machine learning](https://aws.amazon.com/blogs/aws/new-predictive-scaling-for-ec2-powered-by-machine-learning/) 
+  [Dimensionamento programmato per Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 
+  [Telling Stories About Little's Law](https://brooker.co.za/blog/2018/06/20/littles-law.html) 
+  [Che cos'è Amazon EC2 Auto Scaling?](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) 

# REL07-BP04 Esecuzione di un test di carico sul carico di lavoro
<a name="rel_adapt_to_changes_load_tested_adapt"></a>

 Adotta un metodo di test del carico per misurare se l'attività di dimensionamento soddisfa i requisiti del carico di lavoro. 

 È importante eseguire test di carico prolungati. I test di carico devono rilevare il punto di rottura e testare le prestazioni del carico di lavoro. AWS consente di creare facilmente ambienti di test temporanei che riproducono la scala del carico di lavoro di produzione. Nel cloud, puoi creare un ambiente di test su scala produttiva on demand, completare i test e disattivare le risorse. Poiché paghi per l'ambiente di test solo quando è in esecuzione, puoi simulare un ambiente live a un costo notevolmente inferiore rispetti ai test in locale. 

 I test di carico in produzione dovrebbero anche essere considerati come parte dei game day in cui il sistema di produzione viene messo alla prova, durante le ore di utilizzo inferiore del cliente, con tutto il personale a disposizione per interpretare i risultati e risolvere eventuali problemi che si presentano. 

 **Anti-pattern comuni:** 
+  Eseguire test di carico su distribuzioni che non presentano la stessa configurazione della tua produzione. 
+  Eseguire test di carico solo su singole parti del carico di lavoro e non sulla sua interezza. 
+  Eseguire test di carico con un sottoinsieme di richieste e non con un set rappresentativo delle richieste effettive. 
+  Eseguire test di carico su un fattore di sicurezza di poco superiore al carico previsto. 

 **Vantaggi dell'adozione di questa best practice:** Saprai quali sono i componenti dell'architettura che non funzionano sotto carico e potrai identificare per tempo i parametri che indicano l'avvicinamento al carico in questione, così da affrontare il problema e prevenire l'impatto dell'esito negativo. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Esegui test di carico per identificare quali aspetti del carico di lavoro indicano la necessità di aggiungere o rimuovere capacità. Il test di carico deve avere un traffico rappresentativo simile a quello che ricevi nella produzione. Aumenta il carico mentre osservi i parametri implementati per stabilire quale di questi indica quando è necessario aggiungere o rimuovere risorse. 
  +  [Distributed Load Testing on AWS (Test di carico distribuito su AWS): simula migliaia di utenti connessi](https://aws.amazon.com/solutions/distributed-load-testing-on-aws/) 
    +  Identifica la combinazione di richieste. Potresti avere diverse combinazioni di richieste, quindi dovresti esaminare vari intervalli di tempo per identificare la combinazione di traffico. 
    +  Implementa un driver di caricamento. Puoi utilizzare codice personalizzato, software open source o software commerciale per implementare un driver di carico. 
    +  Esegui un test di carico iniziale con una capacità ridotta. Puoi vedere alcuni effetti immediati applicando il carico su una capacità inferiore, possibilmente pari a un'istanza o a un container. 
    +  Esegui un test di carico con una capacità maggiore. Gli effetti saranno diversi su un carico distribuito, quindi è necessario eseguire il test in condizioni quanto più simili possibili all'ambiente del prodotto. 

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

 **Documenti correlati:** 
+  [Distributed Load Testing on AWS (Test di carico distribuito su AWS): simula migliaia di utenti connessi](https://aws.amazon.com/solutions/distributed-load-testing-on-aws/) 

# REL 8 In che modo implementi le modifiche?
<a name="w2aac19b9b9b9"></a>

Per distribuire nuove funzionalità e garantire che i carichi di lavoro e l'ambiente operativo eseguano software noti e che sia possibile applicare patch o sostituirli in modo prevedibile, sono necessarie modifiche controllate. Se invece non sono controllate, risulta difficile prevederne l'effetto o risolvere eventuali problemi che causano. 

**Topics**
+ [REL08-BP01 Utilizzo di runbook per attività standard come l'implementazione](rel_tracking_change_management_planned_changemgmt.md)
+ [REL08-BP02 Esecuzione di test funzionali come parte integrante dell'implementazione](rel_tracking_change_management_functional_testing.md)
+ [REL08-BP03 Esecuzione di test di resilienza come parte integrante dell'implementazione](rel_tracking_change_management_resiliency_testing.md)
+ [REL08-BP04 Esecuzione dell'implementazione utilizzando un'infrastruttura immutabile](rel_tracking_change_management_immutable_infrastructure.md)
+ [REL08-BP05 Implementazione delle modifiche tramite automazione](rel_tracking_change_management_automated_changemgmt.md)

# REL08-BP01 Utilizzo di runbook per attività standard come l'implementazione
<a name="rel_tracking_change_management_planned_changemgmt"></a>

 I runbook sono le procedure predefinite per ottenere risultati specifici. Utilizza i runbook per eseguire attività standard, o manualmente o automaticamente. Alcuni esempi includono l'implementazione di un carico di lavoro, l'applicazione di patch a un carico di lavoro o la realizzazione di modifiche DNS. 

 Ad esempio, metti in atto processi per [garantire la sicurezza del rollback durante le distribuzioni](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments). Garantire la possibilità di eseguire il rollback di una distribuzione senza interruzioni per i clienti è fondamentale per rendere un servizio affidabile. 

 Per le procedure di runbook, inizia da un processo manuale valido ed efficace, implementalo nel codice e attivalo per l'esecuzione automatica, se necessario. 

 Anche per carichi di lavoro sofisticati e altamente automatizzati, i runbook rimangono utili per [eseguire game day](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays) o soddisfare rigorosi requisiti di reportistica e audit. 

 Tieni presente che i playbook vengono utilizzati in risposta a incidenti specifici e i runbook vengono utilizzati per ottenere risultati specifici. Spesso, i runbook sono per attività di routine, mentre i playbook vengono utilizzati per rispondere a eventi non di routine. 

 **Anti-pattern comuni:** 
+  Eseguire modifiche impreviste alla configurazione nella produzione. 
+  Ignorare le fasi del piano per velocizzare l'implementazione, compromettendone la riuscita. 
+  Apportare modifiche senza testarne l'annullamento. 

 **Vantaggi dell'adozione di questa best practice:** Una pianificazione efficace aumenta la capacità di eseguire correttamente la modifica, perché sei a conoscenza di tutti i sistemi interessati. Convalidare la modifica negli ambienti di test aumenta la sicurezza. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Abilita risposte coerenti e tempestive agli eventi noti documentando le procedure nei runbook. 
  +  [Framework AWS Well-Architected – Concetti – Runbook](https://wa.aws.amazon.com/wat.concept.runbook.en.html) 
+  Uso del principio di infrastruttura come codice per definire l'infrastruttura Utilizzando AWS CloudFormation o una terza parte affidabile per definire la tua infrastruttura, puoi utilizzare un software per il controllo delle versioni per gestire le versioni e tenere traccia delle modifiche. 
  +  Utilizza AWS CloudFormation o un provider di terze parti affidabile per definire l'infrastruttura. 
    +  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  Crea modelli unici e disaccoppiati, utilizzando solidi principi di progettazione del software. 
    +  Stabilisci le autorizzazioni, i modelli e le parti responsabili dell'implementazione 
      + [ Controllo degli accessi con AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
    +  Utilizza un controllo sorgente come AWS CodeCommit o uno strumento di terze parti affidabili per il controllo delle versioni. 
      +  [Che cos'è AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

 **Documenti correlati:** 
+  [Partner APN: partner per la creazione di soluzioni di distribuzione automatizzate](https://aws.amazon.com/partners/find/results/?keyword=devops) 
+  [Marketplace AWS: prodotti per l'automazione delle distribuzioni](https://aws.amazon.com/marketplace/search/results?searchTerms=DevOps) 
+  [Framework AWS Well-Architected – Concetti – Runbook](https://wa.aws.amazon.com/wat.concept.runbook.en.html) 
+  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Che cos'è AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

   **Esempi correlati:** 
+  [Automating operations with Playbooks and Runbooks (Automazione delle operazioni con Playbook e Runbook)](https://wellarchitectedlabs.com/operational-excellence/200_labs/200_automating_operations_with_playbooks_and_runbooks/) 

# REL08-BP02 Esecuzione di test funzionali come parte integrante dell'implementazione
<a name="rel_tracking_change_management_functional_testing"></a>

 I test funzionali vengono eseguiti come parte integrante della distribuzione automatizzata. Se non vengono soddisfatti i criteri di esito positivo, la pipeline viene arrestata o ripresa dall'inizio. 

 Questi test vengono eseguiti in un ambiente di pre-produzione, gestito per fasi prima della produzione nella pipeline. Idealmente, questa operazione viene eseguita come parte di una pipeline di distribuzione. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Esegui test funzionali come parte integrante dell'implementazione. I test funzionali vengono eseguiti come parte integrante della distribuzione automatizzata. Se non vengono soddisfatti i criteri di esito positivo, la pipeline viene arrestata o ripresa dall'inizio. 
  +  Richiama AWS CodeBuild durante l'azione di test delle pipeline di rilascio di software modellate in AWS CodePipeline. Questa funzionalità consente di eseguire facilmente un'ampia gamma di test sul codice, tra cui test delle unità, analisi del codice statico e test di integrazione. 
    +  [AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild (AWS CodePipeline aggiunge il supporto per i test di unità e integrazione personalizzati con AWS CodeBuild)](https://aws.amazon.com/about-aws/whats-new/2017/03/aws-codepipeline-adds-support-for-unit-testing/) 
  +  Utilizza le soluzioni Marketplace AWS per eseguire test automatizzati come parte integrante della tua pipeline di distribuzione di software. 
    +  [Automazione e test del software](https://aws.amazon.com/marketplace/solutions/devops/software-test-automation) 

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

 **Documenti correlati:** 
+  [AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild (AWS CodePipeline aggiunge il supporto per i test di unità e integrazione personalizzati con AWS CodeBuild)](https://aws.amazon.com/about-aws/whats-new/2017/03/aws-codepipeline-adds-support-for-unit-testing/) 
+  [Automazione e test del software](https://aws.amazon.com/marketplace/solutions/devops/software-test-automation) 
+  [Che cos'è AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# REL08-BP03 Esecuzione di test di resilienza come parte integrante dell'implementazione
<a name="rel_tracking_change_management_resiliency_testing"></a>

 I test di resilienza (eseguiti utilizzando i [Principles of Chaos Engineering](https://principlesofchaos.org/)) vengono svolti nell'ambito della pipeline di implementazione automatizzata in un ambiente di pre-produzione. 

 Questi test vengono gestiti per fasi ed eseguiti nella pipeline di pre-produzione. Devono anche essere eseguiti in produzione, ma come parte di [https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays). 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Esegui test di resilienza come parte integrante della distribuzione Utilizza l'ingegneria del caos, la disciplina che consiste nello sperimentare su un carico di lavoro per aumentare la fiducia nella capacità del carico di lavoro di resistere a condizioni turbolente in produzione. 
  +  I test di resilienza inseriscono errori o causano un degrado delle risorse per valutare se il carico di lavoro risponde con la resilienza progettata 
    +  [Corso Well-Architected: Level 300: Testing for Resiliency of EC2 RDS and S3](https://wellarchitectedlabs.com/Reliability/300_Testing_for_Resiliency_of_EC2_RDS_and_S3/README.html) 
  +  Questi test possono essere eseguiti regolarmente in ambienti di pre-produzione nelle pipeline di distribuzione automatizzate. 
  +  È opportuno eseguirli anche in produzione, nell'ambito delle giornate di gioco pianificate. 
  +  A partire dai principi di ingegneristica del caos, avanza ipotesi sulle prestazioni del carico di lavoro in caso di vari problemi, quindi mettile alla prova utilizzando i test di resilienza. 
    +  [Principles of Chaos Engineering](https://principlesofchaos.org/) 

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

 **Documenti correlati:** 
+  [Principles of Chaos Engineering](https://principlesofchaos.org/) 
+  [Che cos'è AWS Fault Injection Simulator?](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html) 

 **Esempi correlati:** 
+  [Corso Well-Architected: Level 300: Testing for Resiliency of EC2 RDS and S3](https://wellarchitectedlabs.com/Reliability/300_Testing_for_Resiliency_of_EC2_RDS_and_S3/README.html) 

# REL08-BP04 Esecuzione dell'implementazione utilizzando un'infrastruttura immutabile
<a name="rel_tracking_change_management_immutable_infrastructure"></a>

 L'infrastruttura immutabile è un modello che richiede che non vengano applicati aggiornamenti, patch di sicurezza o modifiche di configurazione sui carichi di lavoro di produzione. Quando è necessaria una modifica, l'architettura viene costruita su una nuova infrastruttura e distribuita alla produzione. 

 L'implementazione più comune del paradigma dell'infrastruttura immutabile è il ***server immutabile***. Ciò significa che se un server necessita di un aggiornamento o di una correzione, vengono distribuiti nuovi server invece di aggiornare quelli già in uso. Pertanto, invece di accedere al server tramite SSH e aggiornare la versione del software, ogni modifica nell'applicazione inizia con un push del software al repository di codice, ad esempio git push. Poiché non sono consentite modifiche nell'infrastruttura immutabile, puoi essere sicuro dello stato del sistema distribuito. Le infrastrutture immutabili sono intrinsecamente più coerenti, affidabili e prevedibili e semplificano molti aspetti dello sviluppo e delle operazioni di software. 

 Utilizza una distribuzione Canary o blue/green durante la distribuzione di applicazioni in infrastrutture immutabili. 

 [https://martinfowler.com/bliki/CanaryRelease.html](https://martinfowler.com/bliki/CanaryRelease.html) : è la pratica di indirizzare un piccolo numero di clienti alla nuova versione, in genere in esecuzione su una singola istanza di servizio (la release Canary). Quindi analizzerai in modo approfondito le modifiche di comportamento o gli errori generati. Puoi rimuovere il traffico dalla release Canary in caso di problemi critici e reindirizzare gli utenti alla versione precedente. Se la distribuzione viene completata correttamente, puoi continuare a distribuire alla velocità desiderata, monitorando le modifiche alla ricerca di errori, fino a quando non sarai completamente distribuito. AWS CodeDeploy può essere configurato con una configurazione di distribuzione che abilita una distribuzione Canary. 

 [https://martinfowler.com/bliki/BlueGreenDeployment.html](https://martinfowler.com/bliki/BlueGreenDeployment.html) : è simile alla distribuzione Canary, tranne per il fatto che un intero parco dell'applicazione è distribuito in parallelo. Puoi alternare le distribuzioni tra i due stack (blue e green). Ancora una volta, puoi inviare il traffico alla nuova versione e tornare alla versione precedente in caso di problemi con la distribuzione. Generalmente, tutto il traffico viene trasferito contemporaneamente, tuttavia puoi anche utilizzare frazioni del traffico verso ciascuna versione per accelerare l'adozione della nuova versione mediante le funzionalità di instradamento DNS ponderato di Amazon Route 53. AWS CodeDeploy e AWS Elastic Beanstalk possono essere impostati con una configurazione di implementazione che abilita un'implementazione blu/verde. 

![\[Diagramma che mostra l'implementazione blu/verde con AWS Elastic Beanstalk e Amazon Route 53\]](http://docs.aws.amazon.com/it_it/wellarchitected/2022-03-31/framework/images/blue-green-deployment.png)


 Vantaggi dell'infrastruttura immutabile: 
+  **Riduzione delle deviazioni di configurazione:** sostituendo frequentemente i server da una configurazione di base, nota e controllata dalla versione, l'infrastruttura viene **reimpostata** a uno stato noto, evitando deviazioni di configurazione. 
+  **Distribuzioni semplificate**: le distribuzioni sono semplificate perché non devono supportare gli aggiornamenti. Gli aggiornamenti sono solo nuove distribuzioni. 
+  **Distribuzioni atomiche affidabili:** le distribuzioni vengono completate correttamente o non cambia nulla. Offre maggiore fiducia nel processo di distribuzione. 
+  **Distribuzioni più sicure con processi di rollback e ripristino rapidi:** Le distribuzioni sono più sicure perché la versione funzionante precedente non viene modificata. Puoi eseguire il rollback se vengono rilevati errori. 
+  **Ambienti di test e debug ottimizzati:** poiché tutti i server utilizzano la stessa immagine, non ci sono differenze tra gli ambienti. Una build viene distribuita in più ambienti. Inoltre, evita ambienti incoerenti e semplifica test e debug. 
+  **Maggiore scalabilità:** poiché i server utilizzano un'immagine di base, sono coerenti e ripetibili, la scalabilità automatica è intrinseca. 
+  **Toolchain semplificata**: la toolchain è semplificata poiché è possibile eliminare gli strumenti di gestione della configurazione che gestiscono gli aggiornamenti del software di produzione. Non vengono installati altri strumenti o agenti sui server. Le modifiche vengono apportate all'immagine di base, testate e implementate. 
+  **Maggiore sicurezza:** negando tutte le modifiche ai server, puoi disabilitare SSH sulle istanze e rimuovere le chiavi. Questo riduce il vettore di attacco, migliorando l'assetto di sicurezza dell'organizzazione. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Distribuisci utilizzando un'infrastruttura immutabile. Un'infrastruttura immutabile è un modello che impone che non vengano *applicati* aggiornamenti, patch di sicurezza o modifiche sui carichi di lavoro di produzione. Quando è necessaria una modifica, viene creata una nuova versione dell'architettura e distribuita alla produzione. 
  +  [Panoramica di una distribuzione Blue/Green](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-blue-green) 
  +  [Distribuzione graduale di applicazioni serverless](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html) 
  +  [Infrastruttura immutabile: affidabilità, coerenza e fiducia attraverso l'immutabilità](https://medium.com/@adhorn/immutable-infrastructure-21f6613e7a23) 
  +  [Release Canary](https://martinfowler.com/bliki/CanaryRelease.html) 

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

 **Documenti correlati:** 
+  [Release Canary](https://martinfowler.com/bliki/CanaryRelease.html) 
+  [Distribuzione graduale di applicazioni serverless](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html) 
+  [Infrastruttura immutabile: affidabilità, coerenza e fiducia attraverso l'immutabilità](https://medium.com/@adhorn/immutable-infrastructure-21f6613e7a23) 
+  [Panoramica di una distribuzione Blue/Green](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-blue-green) 
+  [The Amazon Builders' Library: Garantire la sicurezza del rollback durante le distribuzioni](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 

# REL08-BP05 Implementazione delle modifiche tramite automazione
<a name="rel_tracking_change_management_automated_changemgmt"></a>

 Le distribuzioni e l'applicazione di patch sono automatizzate per eliminare l'impatto negativo. 

 Apportare modifiche ai sistemi produttivi è una delle maggiori aree di rischio per molte organizzazioni. Riteniamo che le distribuzioni siano un problema prioritario da risolvere insieme ai problemi aziendali affrontati dal software. Oggi, ciò significa l'uso dell'automazione ovunque sia pratica nelle operazioni, inclusi test e distribuzione di modifiche, aggiunta o rimozione di capacità e migrazione dei dati. AWS CodePipeline consente di gestire le fasi necessarie per rilasciare il carico di lavoro. Questo include uno stato di distribuzione che utilizza AWS CodeDeploy per automatizzare la distribuzione del codice dell'applicazione su istanze Amazon EC2, istanze in locale, funzioni Lambda serverless o servizi Amazon ECS. 

**Consiglio**  
 Anche se la prassi comune suggerisce di includere le persone nelle procedure operative più difficili, suggeriamo di automatizzare le procedure più difficili proprio per questo motivo. 

 **Anti-pattern comuni:** 
+  Eseguire le modifiche manualmente. 
+  Ignorare le fasi dell'automazione attraverso i flussi di lavoro di emergenza. 
+  Non seguire i piani. 

 **Vantaggi dell'adozione di questa best practice:** L'utilizzo dell'automazione per distribuire tutte le modifiche scongiura il rischio di introdurre errori umani e consente di effettuare test prima di modificare la produzione, così da garantire che i piani siano completi. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Automatizzazione della pipeline di distribuzione Le pipeline di distribuzione permettono di richiamare test automatici, rilevare le anomalie e interrompere la pipeline a una determinata fase prima della distribuzione in produzione o eseguire automaticamente il ripristino di una modifica. 
  +  [The Amazon Builders' Library: Garantire la sicurezza del rollback durante le distribuzioni](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 
  +  [The Amazon Builders' Library: Più velocità con una consegna continua](https://aws.amazon.com/builders-library/going-faster-with-continuous-delivery/) 
    +  Utilizza AWS CodePipeline (o un prodotto di terze parti affidabile) per definire ed eseguire le tue pipeline. 
      +  Configura la pipeline in modo che inizi quando si effettua il commit di una modifica al repository del codice. 
        +  [Che cos'è AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 
      +  Utilizza Amazon Simple Notification Service (Amazon SNS) e Amazon Simple Email Service (Amazon SES) per inviare notifiche sui problemi nella pipeline o integrarti utilizzando uno strumento di chat per team, ad esempio Amazon Chime. 
        +  [Che cos'è Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 
        +  [Che cos'è Amazon SES?](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 
        +  [Che cos'è Amazon Chime?](https://docs.aws.amazon.com/chime/latest/ug/what-is-chime.html) 
        +  [Automatizza i messaggi delle chat con webhook.](https://docs.aws.amazon.com/chime/latest/ug/webhooks.html) 

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

 **Documenti correlati:** 
+  [Partner APN: partner per la creazione di soluzioni di distribuzione automatizzate](https://aws.amazon.com/partners/find/results/?keyword=devops) 
+  [Marketplace AWS: prodotti per l'automazione delle distribuzioni](https://aws.amazon.com/marketplace/search/results?searchTerms=DevOps) 
+  [Automatizza i messaggi delle chat con webhook.](https://docs.aws.amazon.com/chime/latest/ug/webhooks.html) 
+  [The Amazon Builders' Library: Garantire la sicurezza del rollback durante le distribuzioni](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 
+  [The Amazon Builders' Library: Più velocità con una consegna continua](https://aws.amazon.com/builders-library/going-faster-with-continuous-delivery/) 
+  [Che cos'è AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 
+  [Che cos'è CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 
+  [Che cos'è Amazon SES?](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 
+  [Che cos'è Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 

 **Video correlati:** 
+  [AWS Summit 2019: CI/CD su AWS (AWS Summit: CI/CD su AWS)](https://youtu.be/tQcF6SqWCoY) 