

# Preparazione
<a name="a-prepare"></a>

**Topics**
+ [OPS 4 In che modo progetti il carico di lavoro al fine di comprenderne lo stato?](ops-04.md)
+ [OPS 5 In che modo riduci i difetti, favorisci la correzione e migliori il flusso nella produzione?](ops-05.md)
+ [OPS 6 In che modo mitighi i rischi della distribuzione?](ops-06.md)
+ [OPS 7 Come fai a sapere che sei pronto a supportare un carico di lavoro?](ops-07.md)

# OPS 4 In che modo progetti il carico di lavoro al fine di comprenderne lo stato?
<a name="ops-04"></a>

 Progetta il tuo carico di lavoro in modo da ottenere le informazioni necessarie tra i componenti (ad esempio, parametri, log e tracce) per comprenderne lo stato interno. Ciò ti consente di fornire risposte efficaci in base alle esigenze. 

**Topics**
+ [OPS04-BP01 Implementazione della telemetria dell'applicazione](ops_telemetry_application_telemetry.md)
+ [OPS04-BP02 Implementazione e configurazione della telemetria del carico di lavoro](ops_telemetry_workload_telemetry.md)
+ [OPS04-BP03 Implementazione della telemetria dell'attività degli utenti](ops_telemetry_customer_telemetry.md)
+ [OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_telemetry_dependency_telemetry.md)
+ [OPS04-BP05 Implementazione della tracciabilità delle transazioni](ops_telemetry_dist_trace.md)

# OPS04-BP01 Implementazione della telemetria dell'applicazione
<a name="ops_telemetry_application_telemetry"></a>

 La telemetria dell'applicazione è la base su cui si fonda l'osservabilità del carico di lavoro. L'applicazione deve trasmettere una telemetria in grado di fornire approfondimenti sullo stato dell'applicazione stessa e sul raggiungimento dei risultati aziendali. Dalla risoluzione dei problemi alla misurazione dell'impatto di una nuova funzionalità, la telemetria dell'applicazione garantisce informazioni su cui basare la creazione, il funzionamento e l'evoluzione del carico di lavoro. 

 La telemetria dell'applicazione è costituita da parametri e registri. I parametri sono informazioni diagnostiche, ad esempio il polso o la temperatura, e vengono impiegati in maniera collettiva per descrivere lo stato dell'applicazione. La loro raccolta nel tempo può servire per sviluppare indicatori di riferimento e rilevare anomalie. I registri sono messaggi inviati dall'applicazione in merito al suo stato interno o a eventi che si verificano. Sono esempi di eventi registrati i codici di errore, gli identificatori di transazione e le azioni dell'utente. 

 **Risultato desiderato:** 
+  L'applicazione trasmette parametri e registri che forniscono informazioni in merito alla sua integrità e al raggiungimento dei risultati aziendali. 
+  I parametri e i registri sono archiviati centralmente per tutte le applicazioni del carico di lavoro. 

 **Anti-pattern comuni:** 
+  L'applicazione non emette telemetria. Sei costretto a fare affidamento sui tuoi clienti per informarti quando c'è qualcosa che non va. 
+  Un cliente ha segnalato che la tua applicazione non risponde. Non disponi di una telemetria e non sei in grado di confermare l'effettiva esistenza del problema o definirlo senza utilizzare l'applicazione per comprendere l'attuale esperienza utente. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Possibilità di conoscere lo stato di integrità dell'applicazione, l'esperienza utente e di sapere se i risultati aziendali sono stati raggiunti. 
+  Possibilità di reagire rapidamente alle modifiche dello stato di integrità dell'applicazione. 
+  Possibilità di sviluppare tendenze in merito allo stato di integrità dell'applicazione. 
+  Possibilità di prendere decisioni più informate sul miglioramento dell'applicazione. 
+  Possibilità di rilevare e risolvere più rapidamente eventuali problemi con l'applicazione. 

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

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

 Per implementare l'applicazione della telemetria sono necessari tre passaggi: identificare una posizione in cui archiviare la telemetria, identificare una telemetria che descriva lo stato dell'applicazione e dotare l'applicazione degli strumenti per trasmettere la telemetria. 

 **Esempio del cliente** 

AnyCompany Retail ha un'architettura basata sui microservizi. Nell'ambito dell'iter progettuale dell'architettura, l'azienda identifica una telemetria dell'applicazione utile per capire lo stato di ciascun microservizio. Ad esempio, il servizio legato al carrello dell'utente trasmette una telemetria relativa a eventi come l'aggiunta al carrello, l'abbandono del carrello e il tempo che è servito per aggiungere un articolo al carrello. Per tutti i microservizi è prevista la registrazione di errori, avvisi e informazioni sulle transazioni. La telemetria viene inviata a Amazon CloudWatch per l'archiviazione e l'analisi. 

 **Passaggi dell'implementazione** 

1.  Il primo passaggio consiste nell'identificare una posizione centrale in cui archiviare la telemetria per le applicazioni del carico di lavoro. Il punto scelto deve supportare sia la raccolta della telemetria che le capacità di analisi. Il rilevamento delle anomalie e gli approfondimenti automatici sono caratteristiche consigliate. 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch) può garantire la raccolta della telemetria, dashboard, analisi e funzionalità di generazione di eventi. 

1.  Per identificare la telemetria necessaria per le tue esigenze, inizia rispondendo a questa domanda: qual è lo stato della mia applicazione? L'applicazione deve emettere metriche e registri in grado di rispondere in modo collettivo a queste domande. Se non è possibile rispondere con la telemetria dell'applicazione esistente, si potrà lavorare con le figure che si occupano di business e di progettazione per creare un elenco di requisiti di telemetria. 

   1.  Nel corso dell'identificazione e dello sviluppo di una nuova telemetria per l'applicazione, è possibile chiedere una consulenza tecnica agli esperti del team Account AWS. 

1.  Una volta identificata la soluzione di telemetria da aggiungere, si potrà lavorare con le figure che si occupano della progettazione per dotare l'applicazione degli strumenti necessari. 

   1.  [AWS Distro for Open Telemetry](https://aws-otel.github.io/) fornisce API, librerie e agenti per la raccolta della telemetria dell'applicazione. [Questo esempio mostra come dotare un'applicazione JavaScript di parametri personalizzati](https://aws-otel.github.io/docs/getting-started/js-sdk/metric-manual-instr). 

   1.  Se vuoi conoscere i servizi di osservabilità offerti da AWS, partecipa al [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) o richiedi assistenza al nostro team Account AWS. 

   1.  Per maggiori approfondimenti sulla telemetria dell'applicazione leggi l'articolo [Strumentazione dei sistemi distribuiti per la visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) nella libreria di Amazon Builder, che spiega come Amazon esegua la strumentazione delle applicazioni e può servire come guida per lo sviluppo delle tue linee guida di strumentazione. 

 **Livello di impegno per il piano di implementazione:** alto La strumentazione dell'applicazione e la centralizzazione dell'archiviazione della telemetria possono richiedere investimenti significativi. 

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

 **Best practice correlate:** 

[OPS04-BP02 Implementazione e configurazione della telemetria del carico di lavoro](ops_telemetry_workload_telemetry.md) - La telemetria dell'applicazione è un componente della telemetria del carico di lavoro. Per conoscere l'integrità del carico di lavoro in generale è necessario conoscere l'integrità delle singole applicazioni che lo compongono. 

[OPS04-BP03 Implementazione della telemetria dell'attività degli utenti](ops_telemetry_customer_telemetry.md) - La telemetria dell'attività utente è spesso un sottoinsieme della telemetria dell'applicazione. L'attività utente, ad esempio eventi di aggiunta al carrello, flussi di clic o transazioni completate, fornisce informazioni dettagliate sull'esperienza utente. 

[OPS04-BP04 Implementazione della telemetria delle dipendenze](ops_telemetry_dependency_telemetry.md) - I controlli di dipendenza sono correlati alla telemetria dell'applicazione e possono essere inclusi nella propria applicazione. Se quest'ultima si appoggia a dipendenze esterne, ad esempio DNS o un database, può trasmettere parametri e registri riguardanti la reperibilità, i timeout e altri eventi. 

[OPS04-BP05 Implementazione della tracciabilità delle transazioni](ops_telemetry_dist_trace.md) - Il tracciamento delle transazioni in un carico di lavoro richiede che ogni applicazione trasmetta informazioni sulle modalità con cui elabora gli eventi condivisi. Il modo in cui le singole applicazioni gestiscono questi eventi viene trasmesso tramite la relativa telemetria dell'applicazione. 

[OPS08-BP02 Definizione delle metriche del carico di lavoro](ops_workload_health_design_workload_metrics.md) - I parametri del carico di lavoro sono gli indicatori chiave del suo stato di integrità. I parametri chiave dell'applicazione fanno parte dei parametri del carico di lavoro. 

 **Documenti correlati:** 
+  [AWS Builders Library: strumentazione di sistemi distribuiti per visibilità operativa](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility/) 
+  [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) 
+  [Whitepaper sull'eccellenza operativa AWS Well-Architected - progettazione della telemetria](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/design-telemetry.html) 
+  [Creazione di parametri da registro eventi mediante filtri](https://docs.aws.amazon.com/Amazon/latest/logs/MonitoringLogData.html) 
+  [Implementazione di registrazione e monitoraggio con Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/welcome.html) 
+  [Monitoraggio dell'integrità e delle prestazioni dell'applicazione con AWS Distro for OpenTelemetry](https://aws.amazon.com/blogs/opensource/monitoring-application-health-and-performance-with-aws-distro-for-opentelemetry/) 
+  [Novità – Come monitorare meglio i parametri personalizzati di un'applicazione con Amazon CloudWatch Agent](https://aws.amazon.com/blogs/devops/new-how-to-better-monitor-your-custom-application-metrics-using-amazon-cloudwatch-agent/) 
+  [Osservabilità in AWS](https://aws.amazon.com/products/management-and-governance/use-cases/monitoring-and-observability/) 
+  [Scenario: pubblicazione di parametri su CloudWatch](https://docs.aws.amazon.com/Amazon/latest/monitoring/PublishMetrics.html) 
+  [Inizia a creare - Come monitorare le applicazioni in modo efficace](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/) 
+  [Utilizzo di CloudWatch con un SDK AWS](https://docs.aws.amazon.com/Amazon/latest/monitoring/sdk-general-information-section.html) 

 **Video correlati:** 
+  [AWS re:Invent 2021 - L'osservabilità con l'open-source](https://www.youtube.com/watch?v=vAnIhIwE5hY) 
+  [Raccolta di metriche e registri da istanze Amazon EC2 con CloudWatch Agent](https://www.youtube.com/watch?v=vAnIhIwE5hY) 
+  [Come configurare facilmente il monitoraggio dell'applicazione per i carichi di lavoro AWS - AWS Online Tech Talks](https://www.youtube.com/watch?v=LKCth30RqnA) 
+  [Controllare l'osservabilità delle applicazioni serverless - AWS Online Tech Talks](https://www.youtube.com/watch?v=CtsiXhiAUq8) 
+  [Osservabilità open-source con AWS - AWS Virtual Workshop](https://www.youtube.com/watch?v=vAnIhIwE5hY) 

 **Esempi correlati:** 
+  [Risorse di esempio per registrazione e monitoraggio AWS](https://github.com/aws-samples/logging-monitoring-apg-guide-examples) 
+  [AWS Soluzione: Amazon CloudWatch Monitoring Framework](https://aws.amazon.com/solutions/implementations/amazon-cloudwatch-monitoring-framework/?did=sl_card&trk=sl_card) 
+  [AWS Soluzione: registrazione centralizzata](https://aws.amazon.com/solutions/implementations/centralized-logging/) 
+  [One Observability Workshop](https://catalog.workshops.aws/observability/en-US) 

 **Servizi correlati:** 
+ [ Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)

# OPS04-BP02 Implementazione e configurazione della telemetria del carico di lavoro
<a name="ops_telemetry_workload_telemetry"></a>

 Progetta e configura il carico di lavoro affinché fornisca informazioni sul suo stato interno e sullo stato corrente, ad esempio volume delle chiamate API, codici di stato HTTP ed eventi di scalabilità. Utilizza queste informazioni per determinare quando è necessaria una risposta. 

 Puoi avvalerti di un servizio come [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) per aggregare log e parametri da componenti del carico di lavoro (ad esempio, log API da [AWS CloudTrail](https://aws.amazon.com/cloudtrail/), [parametri AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html), [Registri di flusso Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)e [altri servizi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/aws-services-sending-logs.html)). 

 **Anti-pattern comuni:** 
+  I tuoi clienti lamentano prestazioni scarse. Non sono presenti modifiche recenti all'applicazione, pertanto sospetti un problema con un componente del carico di lavoro. Non disponi della telemetria per analizzare e determinare quali componenti contribuiscono a rendere scarse le prestazioni. 
+  L'applicazione non è raggiungibile. In mancanza di telemetria, non puoi determinare se si tratta di un problema di rete. 

 **Vantaggi dell'adozione di questa best practice:** Comprendere cosa succede all'interno del carico di lavoro ti consente di rispondere, se necessario. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Implementazione della telemetria per registri e parametri: dota il carico di lavoro degli strumenti per fornire informazioni sullo stato interno, sullo stato e sul raggiungimento dei risultati aziendali. Utilizza queste informazioni per stabilire quando è necessaria una risposta. 
  +  [Migliorare la capacità di osservazione delle VM con Amazon CloudWatch - AWS Online Tech Talks](https://youtu.be/1Ck_me4azMw) 
  +  [Come funziona Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html) 
  +  [Che cos'è Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
  +  [Utilizzare i parametri Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
  +  [Che cos'è Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 
    +  Implementazione della telemetria per registri e parametri: progetta e configura il carico di lavoro affinché fornisca informazioni sul suo stato interno e sullo stato corrente, ad esempio volume delle chiamate API, codici di stato HTTP ed eventi di scalabilità. 
      +  [Documentazione di riferimento su parametri e dimensioni di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
      +  [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 
      +  [Che cos'è AWS CloudTrail?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 
      +  [Log di flusso VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

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

 **Documenti correlati:** 
+  [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 
+  [Documentazione su Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/index.html) 
+  [Documentazione di riferimento su parametri e dimensioni di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) 
+  [Come funziona Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html) 
+  [Utilizzare i parametri Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 
+  [Log di flusso VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [Che cos'è AWS CloudTrail?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 
+  [Che cos'è Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 
+  [Che cos'è Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 

 **Video correlati:** 
+  [Application Performance Management on AWS (Gestione delle prestazioni delle applicazioni su AWS)](https://www.youtube.com/watch?v=5T4stR-HFas) 
+  [Migliorare la capacità di osservazione delle VM con Amazon CloudWatch](https://youtu.be/1Ck_me4azMw) 
+  [Migliorare la capacità di osservazione delle VM con Amazon CloudWatch - AWS Online Tech Talks](https://youtu.be/1Ck_me4azMw) 

# OPS04-BP03 Implementazione della telemetria dell'attività degli utenti
<a name="ops_telemetry_customer_telemetry"></a>

Implementa il codice dell'applicazione affinché fornisca informazioni sull'attività utente, Tra gli esempi di attività utente figurano i flussi di clic o le transazioni avviate, abbandonate e completate. Utilizza queste informazioni per comprendere come viene utilizzata l'applicazione, i modelli di utilizzo e per stabilire quando è necessaria una risposta. Acquisendo le attività reali degli utenti puoi sviluppare un'attività sintetica da utilizzare per monitorare e testare il tuo carico di lavoro in produzione.

 **Risultato desiderato:** 
+  Il tuo carico di lavoro emette telemetria sulle attività dell'utente in tutte le applicazioni. 
+  Sfrutti attività utente sintetiche per monitorare la tua applicazione durante le ore non di punta. 

 **Anti-pattern comuni:** 
+ Gli sviluppatori hanno distribuito una nuova funzionalità senza telemetria degli utenti. Non puoi stabilire se i clienti utilizzano la funzionalità senza contattarli. 
+ Dopo un'implementazione nell'applicazione di front-end, noti un aumento dell'utilizzo. Poiché non hai la telemetria dell'attività utente, è difficile identificare il problema esatto.
+  Nella tua applicazione si verifica un problema durante le ore non di punta. Non noti il problema fino alla mattina successiva, quando i tuoi utenti sono online, poiché non hai configurato l'attività utente sintetica. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Comprendere modelli utente comuni o comportamenti inaspettati per ottimizzare le funzionalità dell'applicazione e raggiungere gli obiettivi aziendali. 
+  Monitorare l'applicazione dal punto di vista dei dipendenti per rilevare problemi con l'esperienza utente, come collegamenti interrotti o risposte lente ai clic. 
+  Identificare la causa principale dei problemi ripercorrendo i passaggi effettuati dall'utente coinvolto. 
+  Le attività sintetiche dell'utente possono offrire in anticipo segnali di degradazione delle performance durante le ore non di punta, consentendoti così di intraprendere azioni correttive prima che gli utenti reali siano coinvolti. 

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

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

 Progetta il codice dell'applicazione affinché fornisca informazioni sull'attività degli utenti, Utilizza queste informazioni per comprendere come viene utilizzata l'applicazione, i modelli di utilizzo e per stabilire quando è necessaria una risposta. Utilizza le attività utente sintetiche per fornire informazioni dettagliate sulle performance delle applicazioni durante le ore non di punta. 

 **Esempio del cliente** 

 AnyCompany Retail implementa la telemetria sull'attività utente a diversi livelli dell'applicazione. La telemetria del front-end traccia eventi di movimento e del puntatore, mentre i microservizi di backend emettono eventi di monitoraggio della telemetria, come aggiungere un articolo al carrello dell'utente ed eseguire il check-out. Insieme, offrono visibilità sull'esperienza dell'utente. AnyCompany Retail usa anche la telemetria utente sintetica per evidenziare i problemi quando ci sono meno utenti sul carico di lavoro. 

 **Passaggi dell'implementazione** 

1.  Fai in modo che la tua applicazione sia in grado di emettere la telemetria (metriche, eventi, log e tracce) sull'attività utente. Dopo l'implementazione, i componenti del front-end emettono la telemetria in automatico, mentre l'utente interagisce con l'interfaccia utente. Le applicazioni di backend emettono la telemetria su eventi e transazioni dell'utente. 

   1.  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) può fornire informazioni approfondite sull'esperienza utente per le applicazioni di front-end. 

   1.  Puoi usare [AWS Distro for Open Telemetry](https://aws-otel.github.io/) per implementare e acquisire dati di telemetria dalle tue applicazioni. 

   1.  [Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html) può analizzare il comportamento degli utenti tramite le campagne, fornendo informazioni approfondite sull'interazione degli utenti. 

   1.  I clienti con il piano di supporto Enterprise possono richiedere il [Workshop Creare una strategia di monitoraggio](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) al proprio Technical Account Manager. Questo workshop aiuta a sviluppare una strategia di visibilità per il tuo carico di lavoro. 

1.  Definisci l'attività utente sintetica per monitorare la tua applicazione. L'attività utente sintetica simula le azioni dell'utente per confermare che la tua applicazione sta funzionando correttamente. 

   1.  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) può simulare l'attività utente tramite i canary. 

 **Livello di impegno per il piano di implementazione:** alto Consentire alla tua applicazione di raccogliere i dati di telemetria sull'attività utente può richiedere un impegno di sviluppo significativo. 

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

 **Best practice correlate:** 
+  [OPS04-BP01 Implementazione della telemetria dell'applicazione](ops_telemetry_application_telemetry.md) - La telemetria delle applicazioni è necessaria per integrare la telemetria relativa all'attività utente. 
+  [OPS04-BP02 Implementazione e configurazione della telemetria del carico di lavoro](ops_telemetry_workload_telemetry.md) - Alcuni dati di telemetria dell'attività utente possono anche essere considerati come telemetria del carico di lavoro. 

 **Documenti correlati:** 
+ [Come monitorare le applicazioni in modo efficace](https://aws.amazon.com/startups/start-building/how-to-monitor-applications/)

 **Video correlati:** 
+ [AWS re:Invent 2020: Monitorare i servizi di produzione in Amazon ](https://www.youtube.com/watch?v=hnPcf_Czbvw)
+ [AWS re:Invent 2021 - Ottimizzare le applicazioni con gli approfondimenti degli utenti finali con Amazon CloudWatch RUM ](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+ [ Testare e monitorare le API su AWS - AWS Online Tech Talks ](https://www.youtube.com/watch?v=VQM38CZyjFY)

 **Esempi correlati:** 
+ [ Amazon CloudWatch RUM Web Client ](https://github.com/aws-observability/aws-rum-web)
+ [AWS Distro for Open Telemetry ](https://aws-otel.github.io/)
+ [ Implementare il monitoraggio dell'utente reale dell'applicazione Amplify tramite Amazon CloudWatch RUM ](https://aws.amazon.com/blogs/mobile/implementing-real-user-monitoring-of-amplify-application-using-amazon-cloudwatch-rum/)
+ [One Observability Workshop](https://catalog.workshops.aws/observability/en-US/intro)

 **Servizi correlati:** 
+ [ Amazon CloudWatch RUM ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)
+ [ Amazon CloudWatch Synthetics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)
+ [ Amazon Pinpoint ](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html)

# OPS04-BP04 Implementazione della telemetria delle dipendenze
<a name="ops_telemetry_dependency_telemetry"></a>

Progetta e configura il carico di lavoro affinché fornisca informazioni sullo stato delle risorse da cui dipende. Si tratta di risorse esterne rispetto al tuo carico di lavoro. Esempi di dipendenze esterne possono includere database esterni, DNS e connettività di rete. Usa queste informazioni per stabilire quando è richiesta una risposta e offri un contesto aggiuntivo sullo stato del carico di lavoro.

 **Risultato desiderato:** 
+  Il tuo carico di lavoro emetta dati di telemetria sullo stato delle dipendenze esterne. 
+  Ricevi una notifica quando le dipendenze non sono integre. 

 **Anti-pattern comuni:** 
+ Gli utenti non riescono a raggiungere il tuo sito. Non è possibile determinare se il motivo è un problema DNS senza eseguire manualmente un controllo per verificare se il provider DNS funziona. 
+ L'applicazione correlata al carrello non è in grado di completare le transazioni. Non sei in grado di determinare se si tratta di un problema con il provider di elaborazione della carta di credito senza contattarlo per verificarlo. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Il monitoraggio delle dipendenze esterne offre notifiche in anticipo dei problemi. 
+  La conoscenza dello stato di integrità delle tue dipendenze ti supporta nella risoluzione dei problemi. 

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

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

 Collabora con le parti interessate per identificare le dipendenze esterne da cui dipende il tuo carico di lavoro. Le dipendenze esterne possono includere database esterni, API o connettività di rete tra il carico di lavoro e le risorse in altri ambienti. Sviluppa una strategia di monitoraggio per offrire informazioni sullo stato di integrità delle dipendenze e invia allarmi in modo proattivo nel caso si verifichi un cambiamento allo stato. 

 **Esempio del cliente** 

 Il carico di lavoro dell'e-commerce di AnyCompany Retail si affida a un database che si trova in un altro ambiente. Ogni notte, i dati vengono popolati nel database per l'uso con la piattaforma di e-commerce. La connettività di rete e il supporto al database sono di competenza di altri team. Il team di e-commerce ha configurato diversi allarmi canary per ricevere avvisi in caso di problemi di connettività della rete, se il database non è raggiungibile e quando il processo non viene completato. 

 **Passaggi dell'implementazione** 

1.  identifica le dipendenze esterne a cui si affida il tuo carico di lavoro. Implementa la telemetria per monitorare l'integrità o la reperibilità delle dipendenze. 

   1.  I clienti AWS possono usare [Dashboard AWS Health](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html) per monitorare l'integrità dei servizi AWS e ricevere notifiche sugli eventi correlati. 

   1.  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) può essere utilizzato per monitorare API, URL e contenuti del sito Web. 

1.  Configura gli allarmi per avvisare la tua organizzazione quando una dipendenza non è raggiungibile o è in uno stato non integro. 

   1.  I clienti con il piano di supporto Enterprise possono richiedere il [Workshop Creare una strategia di monitoraggio](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) al proprio Technical Account Manager. Questo workshop aiuta a sviluppare una strategia di visibilità per il tuo carico di lavoro. 

1.  Identifica i contatti delle dipendenze per i casi in cui la dipendenza non è integra. Documenta come contattare il proprietario della dipendenza, gli accordi per l'assistenza e il processo di escalation. 

 **Livello di impegno per il piano di implementazione:** Medio. L'implementazione della telemetria delle dipendenze potrebbe richiedere lo sviluppo di soluzioni di monitoraggio personalizzate. 

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

 **Best practice correlate:** 
+  [OPS04-BP01 Implementazione della telemetria dell'applicazione](ops_telemetry_application_telemetry.md) - Puoi sviluppare il monitoraggio delle dipendenze nella telemetria delle applicazioni. 

 **Documenti correlati:** 
+ [ Monitora i tuoi endpoint interni privati 24 ore su 24, 7 giorni su 7 con CloudWatch Synthetics ](https://aws.amazon.com/blogs/mt/monitor-your-private-endpoints-using-cloudwatch-synthetics/)

 **Video correlati:** 
+ [AWS re:Invent 2018: Monitora ogni aspetto: Amazon CloudWatch in azione con BBC ](https://www.youtube.com/watch?v=uuBuc6OAcVY)
+ [AWS re:Invent 2022 - Sviluppare una strategia di visibilità ](https://www.youtube.com/watch?v=Ub3ATriFapQ)
+ [AWS re:Invent 2022 - Best practice di visibilità in Amazon ](https://www.youtube.com/watch?v=zZPzXEBW4P8)

 **Esempi correlati:** 
+ [One Observability Workshop](https://catalog.workshops.aws/observability/en-US/intro)
+ [ Well-Architected Labs - Monitoraggio delle dipendenze ](https://www.wellarchitectedlabs.com/operational-excellence/100_labs/100_dependency_monitoring/)

 **Servizi correlati:** 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+ [AWS Health](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html)

# OPS04-BP05 Implementazione della tracciabilità delle transazioni
<a name="ops_telemetry_dist_trace"></a>

Implementa il codice dell'applicazione e configura i componenti del carico di lavoro per l'emissione di eventi, che vengono attivati come conseguenza di singole operazioni logiche e quindi consolidati attraverso diversi limiti del carico di lavoro. Genera mappe per osservare il flusso delle tracce tra il carico di lavoro e i servizi. Ottieni informazioni dettagliate sulle relazioni tra componenti e identifica e analizza i problemi. Usa le informazioni raccolte per determinare quando è necessaria una risposta e come aiuto per identificare i fattori che contribuiscono a un problema. 

 **Risultato desiderato:** 
+  Raccolta di tracce delle transazioni nel carico di lavoro per ottenere informazioni dettagliate sulla relazione tra componenti. 
+  Generazione di mappe per comprendere meglio il flusso di transazioni ed eventi nel carico di lavoro. 

 **Anti-pattern comuni:** 
+  Implementazione di un'architettura di microservizi serverless che si estende su più account. I clienti riscontrano problemi di prestazioni intermittenti. Non riesci a identificare la funzione o il componente responsabile a causa della mancata tracciabilità delle transazioni. 
+ Presenza di un collo di bottiglia nel carico di lavoro. A causa della mancanza di tracciabilità delle transazioni, non riesci a determinare la relazione tra i componenti dell'applicazione e a identificare il collo di bottiglia.
+  L'identificatore usato per le tracce non è univoco a livello globale e causa una collisione delle tracce durante l'analisi del comportamento del carico di lavoro. 

 **Vantaggi dell'adozione di questa best practice:** 
+  La comprensione del flusso delle transazioni nel carico di lavoro fornisce informazioni dettagliate sul comportamento previsto delle transazioni. 
+  Puoi osservare le variazioni rispetto al comportamento previsto nel carico di lavoro e rispondere, se necessario. 
+  Puoi individuare le transazioni in base al rispettivo identificatore univoco, indipendentemente da dove sono state generate. 

 **Livello di rischio associato alla mancata adozione di questa best practice:** basso 

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

 Progetta l'applicazione e il carico di lavoro affinché forniscano informazioni sul flusso delle transazioni nei componenti del sistema, I dati da includere nelle transazioni sono un identificatore di transazione univoco a livello globale, la fase della transazione, il componente attivo e il tempo necessario per completare l'attività. Utilizza queste informazioni per determinare cosa è in corso, cosa è completato e i risultati delle attività completate. 

 **Esempio del cliente** 

 Presso AnyCompany Retail tutte le transazioni sono associate a un UUID univoco a livello globale. Questo UUID viene passato tra microservizi durante le transazioni. L'UUID viene usato per creare tracce delle transazioni man mano che gli utenti interagiscono con il carico di lavoro. Con le tracce viene generata una mappa della topologia del carico di lavoro, che viene usata per risolvere i problemi del carico di lavoro e migliorare le prestazioni. 

 **Passaggi dell'implementazione** 

1.  Esegui la strumentazione delle applicazioni nel carico di lavoro per emettere tracce delle transazioni. A questo scopo, puoi generare un identificatore univoco per ogni transazione e passarlo tra applicazioni. 

   1.  Puoi usare la strumentazione automatica in [AWS Distro per OpenTelemetry](https://aws-otel.github.io/) per implementare tracce nelle applicazioni esistenti senza modificarne il codice. 

1.  Genera mappe per la topologia delle applicazioni. Usa le mappe per migliorare le prestazioni, ottenere informazioni dettagliate e semplificare la risoluzione dei problemi. 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) può generare mappe delle applicazioni nel carico di lavoro. 

 **Livello di impegno per il piano di implementazione:** medio. L'implementazione di tracce delle transazioni può richiedere un impegno moderato per lo sviluppo. 

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

 **Best practice correlate:** 
+  [OPS04-BP01 Implementazione della telemetria dell'applicazione](ops_telemetry_application_telemetry.md) – La telemetria delle applicazioni controlla la tracciabilità e la gestione delle transazioni e deve essere implementata per prima. 

 **Documenti correlati:** 
+ [ Individuazione dei problemi delle applicazioni e ricezione di notifiche con AWS X-Ray Insights ](https://aws.amazon.com/blogs/mt/discover-application-issues-get-notifications-aws-x-ray-insights/)
+ [ Wealthfront utilizza AWS X-Ray per l'analisi e il debug delle applicazioni distribuite ](https://aws.amazon.com/blogs/mt/wealthfront-utilizes-aws-x-ray-analyze-debug-distributed-applications/)
+ [ Nuova funzionalità per AWS Distro per OpenTelemetry: disponibilità a livello generale del supporto per le tracce ](https://aws.amazon.com/blogs/aws/new-for-aws-distro-for-opentelemetry-tracing-support-is-now-generally-available/)

 **Video correlati:** 
+ [AWS re:Invent 2018: Approfondimento di AWS X-Ray: monitoraggio di applicazioni moderne (DEV324) ](https://www.youtube.com/watch?v=5MQkX57eTh8)
+ [AWS re:Invent 2022: Creazione di applicazioni osservabili con OpenTelemetry (BOA310) ](https://www.youtube.com/watch?v=efk8XFJrW2c)
+ [AWS re:Invent 2022: Visibilità con il modello open source (COP301-R) ](https://www.youtube.com/watch?v=2IJPpdp9xU0)
+ [ Acquisizione di dati di traccia con AWS Distro per OpenTelemetry ](https://www.youtube.com/watch?v=837NtV0McOA)
+ [ Ottimizzazione delle prestazioni delle applicazioni con AWS X-Ray](https://www.youtube.com/watch?v=5lIdNrrO_o8)

 **Esempi correlati:** 
+ [AWS X-Ray Multi API Gateway Tracing Example ](https://github.com/aws-samples/aws-xray-multi-api-gateway-tracing-example)

 **Servizi correlati:** 
+  [AWS Distro per OpenTelemetry](https://aws-otel.github.io/) 
+  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

# OPS 5 In che modo riduci i difetti, favorisci la correzione e migliori il flusso nella produzione?
<a name="ops-05"></a>

 Adotta prassi che migliorino il flusso delle modifiche nella produzione, che consentano il refactoring e il feedback veloce su qualità e correzione di errori. Tali prassi accelerano l'ingresso in produzione delle modifiche vantaggiose, limitano i problemi distribuiti e consentono una rapida identificazione e risoluzione dei problemi introdotti attraverso le attività di distribuzione. 

**Topics**
+ [OPS05-BP01 Utilizzo del controllo delle versioni](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Test e convalida delle modifiche](ops_dev_integ_test_val_chg.md)
+ [OPS05-BP03 Utilizzo di sistemi di gestione delle configurazioni](ops_dev_integ_conf_mgmt_sys.md)
+ [OPS05-BP04 Utilizzo di sistemi di gestione della compilazione e implementazione](ops_dev_integ_build_mgmt_sys.md)
+ [OPS05-BP05 Esecuzione della gestione delle patch](ops_dev_integ_patch_mgmt.md)
+ [OPS05-BP06 Condivisione degli standard di progettazione](ops_dev_integ_share_design_stds.md)
+ [OPS05-BP07 Implementazione di prassi per migliorare la qualità del codice](ops_dev_integ_code_quality.md)
+ [OPS05-BP08 Utilizzo di più ambienti](ops_dev_integ_multi_env.md)
+ [OPS05-BP09 Applicazione di modifiche frequenti, minime e reversibili](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Automazione completa dell'integrazione e della distribuzione](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Utilizzo del controllo delle versioni
<a name="ops_dev_integ_version_control"></a>

 Utilizza il controllo delle versioni per abilitare il monitoraggio di modifiche e rilasci. 

 Molti servizi AWS offrono funzionalità di controllo delle versioni. Utilizza una revisione o un sistema di controllo del codice sorgente come [AWS CodeCommit](https://aws.amazon.com/codecommit/) per gestire il codice e altri artefatti, come i modelli [AWS CloudFormation](https://aws.amazon.com/cloudformation/) controllati dalla versione della tua infrastruttura. 

 **Anti-pattern comuni:** 
+  Hai sviluppato e archiviato il codice sulla workstation. Si è verificato un errore di storage non recuperabile sulla workstation in cui il codice è andato perso. 
+  Dopo aver sovrascritto il codice esistente con le modifiche, riavvii l'applicazione e non è più utilizzabile. Non è possibile ripristinare la modifica. 
+  Hai un blocco di scrittura su un file di report che deve essere modificato da altri utenti. Ti contattano per chiederti di smettere di utilizzarlo in modo che possano completare le loro attività. 
+  Il team di ricerca ha lavorato a un'analisi dettagliata che definirà il tuo lavoro futuro. Qualcuno ha salvato accidentalmente la lista della spesa nel report finale. Non puoi ripristinare la modifica e dovrai ricreare il report. 

 **Vantaggi dell'adozione di questa best practice:** Grazie alle funzionalità di controllo delle versioni, puoi ripristinare facilmente gli stati validi noti, le versioni precedenti e limitare il rischio di perdita degli asset. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo del controllo delle versioni: mantieni gli asset in repository con controllo delle versioni. In questo modo si supporta il monitoraggio delle modifiche, la distribuzione di nuove versioni, il rilevamento delle modifiche apportate alle versioni esistenti e il ripristino delle versioni precedenti, ad esempio il rollback a uno stato corretto noto in caso di errore. Integra nelle tue procedure le funzionalità di controllo delle versioni dei sistemi di gestione delle configurazioni. 
  +  [Introduzione ad AWS CodeCommit](https://youtu.be/46PRLMW8otg) 
  +  [What is AWS CodeCommit? (Che cos'è AWS CodeCommit?)](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

 **Documenti correlati:** 
+  [What is AWS CodeCommit? (Che cos'è AWS CodeCommit?)](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Video correlati:** 
+  [Introduzione ad AWS CodeCommit](https://youtu.be/46PRLMW8otg) 

# OPS05-BP02 Test e convalida delle modifiche
<a name="ops_dev_integ_test_val_chg"></a>

 Ogni modifica apportata deve essere testata per evitare errori in produzione. Questa best practice si concentra sulla verifica delle modifiche dal controllo di versione alla creazione dell'artefatto. Oltre alle modifiche al codice dell'applicazione, i test dovrebbero includere l'infrastruttura, la configurazione, i controlli di sicurezza e le procedure operative. I test assumono molte forme, dai test unitari all'analisi dei componenti software (SCA). Spostando i test più a sinistra nel processo di integrazione e consegna del software ottieni una maggiore certezza della qualità degli artefatti. 

 L'organizzazione deve sviluppare standard di test per tutti gli artefatti software. I test automatizzati riducono la fatica ed evitano gli errori dei test manuali. I test manuali potrebbero essere necessari in alcuni casi. Gli sviluppatori devono avere accesso ai risultati dei test automatizzati per creare cicli di feedback che migliorino la qualità del software. 

 **Risultato desiderato:** 
+  Tutte le modifiche software vengono testate prima del rilascio. 
+  Gli sviluppatori hanno accesso ai risultati dei test. 
+  La tua organizzazione ha uno standard per i test che applica a tutte le modifiche software. 

 **Anti-pattern comuni:** 
+ Implementi una nuova modifica software senza test. Non funziona in produzione e genera un'interruzione.
+ I nuovi gruppi di sicurezza vengono distribuiti con CloudFormation senza essere testati in un ambiente di pre-produzione. I gruppi di sicurezza rendono la tua app irraggiungibile per i clienti.
+ Un metodo viene modificato, ma non ci sono test di unità. Il software ha esito negativo quando viene distribuito in produzione.

 **Vantaggi dell'adozione di questa best practice:** 
+  Il tasso di fallimento delle implementazioni software è ridotto. 
+  La qualità del software viene migliorata. 
+  Gli sviluppatori hanno una maggiore consapevolezza della fattibilità del loro codice. 
+  Le politiche di sicurezza possono essere implementate con sicurezza per supportare la conformità dell'organizzazione. 
+  Le modifiche all'infrastruttura, come gli aggiornamenti automatici delle politiche di scaling, vengono testate in anticipo per soddisfare le esigenze del traffico. 

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

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

 I test vengono eseguiti su tutte le modifiche, dal codice dell'applicazione all'infrastruttura, come parte della pratica di integrazione continua. I risultati dei test vengono pubblicati in modo che gli sviluppatori abbiano un feedback rapido. La tua organizzazione ha uno standard per i test che applica a tutte le modifiche software. 

 **Esempio del cliente** 

 Nell'ambito della pipeline di integrazione continua, AnyCompany Retail esegue diversi tipi di test su tutti gli artefatti software. Praticano lo sviluppo guidato dai test, per cui tutto il software è dotato di test unitari. Una volta creato l'artefatto, eseguono test end-to-end. Al termine di questa prima serie di test, viene eseguita una scansione statica della sicurezza dell'applicazione, alla ricerca di vulnerabilità note. Gli sviluppatori ricevono messaggi al superamento di ciascun gate di test. Una volta completati tutti i test, l'artefatto software viene archiviato in un repository di artefatti. 

 **Passaggi dell'implementazione** 

1.  Collaborare con le parti interessate dell'organizzazione per sviluppare uno standard di test per gli artefatti software. Quali test standard devono superare tutti gli artefatti? Ci sono requisiti di conformità o di governance che devono essere inclusi nella copertura dei test? Devi condurre test di qualità del codice? Quando i test sono terminati, chi deve esserne a conoscenza? 

   1.  L'[architettura di riferimento della pipeline di distribuzione AWS](https://pipelines.devops.aws.dev/) contiene un elenco autorevole dei tipi di test che possono essere condotti su artefatti software come parte di una pipeline di integrazione. 

1.  Fornisci la tua applicazione dei test necessari in base allo standard di test del software. Ogni set di test deve essere completato in meno di dieci minuti. I test devono essere eseguiti come parte della pipeline di integrazione. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) può testare il tuo codice applicativo per i difetti. 

   1.  Puoi usare [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) per condurre i test su artefatti software. 

   1.  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) può organizzare i tuoi test software in una pipeline. 

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

 **Best practice correlate:** 
+  [OPS05-BP01 Utilizzo del controllo delle versioni](ops_dev_integ_version_control.md) - Tutti gli artefatti software devono essere supportati da un repository a controllo di versione. 
+  [OPS05-BP06 Condivisione degli standard di progettazione](ops_dev_integ_share_design_stds.md) - Gli standard di test del software dell'organizzazione informano gli standard di progettazione. 
+  [OPS05-BP10 Automazione completa dell'integrazione e della distribuzione](ops_dev_integ_auto_integ_deploy.md) - I test del software dovrebbero essere eseguiti automaticamente come parte della pipeline di integrazione e distribuzione più ampia. 

 **Documenti correlati:** 
+ [ Adotta un approccio allo sviluppo basato sul test ](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html)
+ [ Pipeline di test automatizzata CloudFormation con TaskCat e CodePipeline ](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/)
+ [ Creare una pipeline end-to-end AWS DevSecOps CI/CD con strumenti open source SCA, SAST e DAST ](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/)
+ [ Iniziare a usare applicazioni serverless di test ](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/)
+ [ La mia pipeline CI/CD è la mia release captain ](https://aws.amazon.com/builders-library/cicd-pipeline/)
+ [ Whitepaper Fare pratica con l'integrazione continua/la distribuzione continua su AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html)

 **Video correlati:** 
+ [AWS re:Invent 2020: infrastruttura per il test: test di integrazione su AWS](https://www.youtube.com/watch?v=KJC380Juo2w)
+ [AWS Summit ANZ 2021 - Adottare una strategia incentrata sui test con CDK e sviluppo incentrato sui test ](https://www.youtube.com/watch?v=1R7G_wcyd3s)
+ [ Testare l'infrastruttura come codice con AWS CDK ](https://www.youtube.com/watch?v=fWtuwGSoSOU)

 **Risorse correlate:** 
+ [AWS Architettura di riferimento per l'implementazione di pipeline - Applicazione ](https://pipelines.devops.aws.dev/application-pipeline/index.html)
+ [AWS Kubernetes DevSecOps Pipeline ](https://github.com/aws-samples/devsecops-cicd-containers)
+ [ Policy come codice - Workshop – Sviluppo incentrato sui test ](https://catalog.us-east-1.prod.workshops.aws/workshops/9da471a0-266a-4d36-8596-e5934aeedd1f/en-US/pac-tools/cfn-guard/tdd)
+ [ Esegui test di unità per un'applicazione Node.js di GitHub usando AWS CodeBuild](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html)
+ [ Usa Serverspec per lo sviluppo incentrato sul test del codice dell'infrastruttura ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html)

 **Servizi correlati:** 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# OPS05-BP03 Utilizzo di sistemi di gestione delle configurazioni
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 L'utilizzo di sistemi di gestione delle configurazioni permette di effettuare modifiche alle stesse e tenerne traccia. Questi sistemi riducono gli errori causati dai processi manuali e il livello di impegno richiesto per la distribuzione delle modifiche. 

 Durante l'inizializzazione di una risorsa, la gestione delle configurazioni statiche consente di impostare valori che dovrebbero rimanere coerenti per tutta la vita utile della risorsa. Ne sono alcuni esempi l'azione di configurare un server web o applicativo su un'istanza oppure di definire la configurazione di un servizio AWS nella [Console di gestione AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) o tramite la [AWS CLI](https://aws.amazon.com/cli/). 

 Al momento dell'inizializzazione, la gestione delle configurazioni dinamiche consente di impostare valori che possono cambiare nel corso della vita utile di una risorsa. Ad esempio è possibile impostare un interruttore funzionale in grado di abilitare una funzionalità nel codice tramite una modifica della configurazione, oppure modificare il livello di dettaglio del registro durante un incidente per acquisire un maggior numero di dati e cambiarlo in seguito per tornare al livello di dettaglio precedente, risparmiando così in numero di registri e nei relativi costi. 

 Se sulle applicazioni in esecuzione su istanze, container, funzioni serverless o dispositivi sono attive configurazioni dinamiche, è possibile utilizzare [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) per gestirle e distribuirle fra i diversi ambienti. 

 In AWS, è possibile utilizzare [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) per monitorare in modo continuo le configurazioni delle risorse AWS [tra i diversi account e regioni](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Questa soluzione consente di tenere traccia della cronologia delle configurazioni, di capire che effetto avrebbe la modifica di una configurazione sulle altre risorse e verificarle rispetto alle configurazioni previste o desiderate tramite [Regole di AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) e [i pacchetti di conformità di AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 In AWS, puoi creare pipeline di integrazione continua/distribuzione continua (CI/CD) utilizzando servizi come gli [Strumenti per gli sviluppatori di AWS](https://aws.amazon.com/products/developer-tools/) (ad esempio, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)e [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 Mantieni un calendario delle modifiche e verifica quando sono pianificate attività o eventi aziendali significativi che potrebbero essere influenzati dall'implementazione del cambiamento. Regola le attività per gestire i rischi in funzione dei vari eventi. [Il calendario delle modifiche di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) fornisce un meccanismo per documentare intervalli di tempo aperti o chiusi alle modifiche e per quale motivo, e per [condividere tali informazioni](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) con altri Account AWS. Gli script di AWS Systems Manager Automation possono essere configurati per rispettare lo stato del calendario delle modifiche. 

 [finestre di manutenzione di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) possono essere utilizzate per pianificare le prestazioni degli script Run Command o Automation di AWS, delle chiamate AWS Lambda o delle attività di AWS Step Functions in orari specifici. Contrassegna queste attività nel calendario delle modifiche in modo che possano essere incluse nella tua valutazione. 

 **Anti-pattern comuni:** 
+  Aggiorni manualmente la configurazione del server Web all'interno del parco istanze e un certo numero di server non risponde a causa di errori di aggiornamento. 
+  Aggiorni manualmente il parco istanze del server applicazioni nel corso di molte ore. L'incoerenza nella configurazione durante la modifica causa comportamenti imprevisti. 
+  Qualcuno ha aggiornato i tuoi gruppi di sicurezza e i server Web non sono più accessibili. Senza sapere cosa è stato modificato, dedichi molto tempo a esaminare il problema prolungando il tempo necessario per il ripristino. 

 **Vantaggi dell'adozione di questa best practice:** L'adozione di sistemi di gestione della configurazione riduce il livello di impegno necessario per apportare e tenere traccia delle modifiche e la frequenza degli errori causati dalle procedure manuali. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo dei sistemi di gestione delle configurazioni: utilizza i sistemi di gestione delle configurazioni per tenere traccia e implementare le modifiche, ridurre gli errori causati dai processi manuali e ridurre il livello di impegno richiesto. 
  +  [Gestione della configurazione delle infrastrutture](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [What is AWS Config? (Che cos'è AWS Config?)](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Introduzione ad AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
  +  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [What is AWS OpsWorks? (Che cos'è AWS OpsWorks?)](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Introduzione ad AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 
  +  [Che cos'è AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

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

 **Documenti correlati:** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [Strumenti per gli sviluppatori di AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [Il calendario delle modifiche di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [finestre di manutenzione di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Gestione della configurazione delle infrastrutture](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [What is AWS Config? (Che cos'è AWS Config?)](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [Che cos'è AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [What is AWS OpsWorks? (Che cos'è AWS OpsWorks?)](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Video correlati:** 
+  [Introduzione ad AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
+  [Introduzione ad AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 

# OPS05-BP04 Utilizzo di sistemi di gestione della compilazione e implementazione
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Utilizza sistemi di gestione della creazione e distribuzione Questi sistemi riducono gli errori causati dai processi manuali e il livello di impegno richiesto per la distribuzione delle modifiche. 

 In AWS, puoi compilare pipeline di integrazione continua/implementazione continua (CI/CD) utilizzando servizi come gli [Strumenti per sviluppatori in AWS](https://aws.amazon.com/products/developer-tools/) (ad esempio, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)e [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Anti-pattern comuni:** 
+  Dopo aver compilato il codice nel sistema di sviluppo, copi il file eseguibile nei sistemi di produzione e questo non si avvia. I file di log locali indicano che l'operazione è risultata impossibile a causa della mancanza di dipendenze. 
+  Hai creato l'applicazione con nuove funzionalità nel tuo ambiente di sviluppo e fornisci il codice al controllo qualità. Il controllo qualità non riesce perché mancano asset statici. 
+  Venerdì, dopo un notevole sforzo, hai creato l'applicazione manualmente nel tuo ambiente di sviluppo, incluse le nuove funzionalità codificate. Lunedì non sei in grado di ripetere le fasi che ti hanno consentito di creare correttamente la tua applicazione. 
+  Esegui i test creati per la nuova versione. Quindi passi la settimana successiva a configurare un ambiente di test ed eseguire tutti i test di integrazione esistenti seguiti dai test delle prestazioni. Il nuovo codice ha un impatto inaccettabile sulle prestazioni e deve essere risviluppato e quindi ritestato. 

 **Vantaggi dell'adozione di questa best practice:** Fornendo meccanismi per gestire le attività di compilazione e distribuzione, riduci il livello di impegno necessario per eseguire attività ripetitive, consenti ai membri del team di concentrarsi liberamente sulle loro attività creative di valore elevato e limiti l'introduzione di errori derivanti da procedure manuali. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo di sistemi di gestione della compilazione e implementazione: utilizza sistemi di gestione della compilazione e implementazione per tenere traccia e implementare le modifiche, ridurre gli errori causati dai processi manuali e ridurre il livello di impegno richiesto. Automatizza completamente la pipeline di integrazione e distribuzione dal check-in del codice fino alle fasi di creazione, test, distribuzione e convalida. In questo modo è possibile ridurre il lead time, aumentare la frequenza delle modifiche e ridurre il livello di impegno richiesto. 
  +  [Che cos'è AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD per applicazioni serverless su AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduzione ad AWS CodeDeploy - Sviluppo di software automatizzato con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Che cos'è AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **Documenti correlati:** 
+  [Strumenti per sviluppatori in AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Che cos'è AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [Che cos'è AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video correlati:** 
+  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduzione ad AWS CodeDeploy - Sviluppo di software automatizzato con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD per applicazioni serverless su AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS05-BP05 Esecuzione della gestione delle patch
<a name="ops_dev_integ_patch_mgmt"></a>

 La gestione delle patch consente di ottenere funzionalità, risolvere problemi e rispettare i requisiti di governance. Automatizza la gestione delle patch per ridurre gli errori causati dai processi manuali e il livello di impegno richiesto per applicare le patch. 

 La gestione delle patch e delle vulnerabilità fa parte delle attività di gestione dei rischi e dei vantaggi. È preferibile disporre di infrastrutture immutabili e distribuire carichi di lavoro in stati noti verificati. Se ciò non è realizzabile, l'applicazione di patch sul posto è l'alternativa. 

 Aggiornare immagini di macchine, immagini di container o, nel caso di Lambda, [runtime personalizzati e librerie aggiuntive](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) per rimuovere le vulnerabilità fa parte della gestione delle patch. È consigliabile gestire gli aggiornamenti alle [Amazon Machine Image](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI) per immagini Linux o Windows Server utilizzando [EC2 Image Builder](https://aws.amazon.com/image-builder/). Puoi utilizzare [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) con la pipeline esistente per [gestire le immagini di Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) e [gestire le immagini di Amazon EKS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html). AWS Lambda include [caratteristiche di](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) gestione della versione. 

 L'applicazione di patch non deve essere eseguita sui sistemi di produzione senza prima eseguire test in un ambiente sicuro. Le patch devono essere applicate solo se supportano risultati operativi o aziendali. In AWS, è possibile utilizzare [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) per automatizzare il processo di applicazione di patch ai sistemi gestiti e pianificare l'attività utilizzando le [finestre di manutenzione di AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Anti-pattern comuni:** 
+  Ti viene assegnato il compito di applicare tutte le nuove patch di sicurezza entro 2 ore, il che provoca più interruzioni a causa dell'incompatibilità dell'applicazione con le patch. 
+  Una libreria senza patch comporta conseguenze indesiderate in quanto parti sconosciute utilizzano vulnerabilità al suo interno per accedere al carico di lavoro. 
+  L'applicazione di patch agli ambienti per sviluppatori viene eseguita automaticamente senza avvisare gli sviluppatori. Gli sviluppatori ti inviano più reclami perché il loro ambiente non funziona come previsto. 
+  Non hai applicato patch al software pronto all'uso commerciale su un'istanza persistente. Quando hai problemi con il software e contatti il fornitore, questo ti informerà che la versione non è supportata e dovrai applicare le patch a un livello specifico per ricevere assistenza. 
+  Una patch rilasciata di recente per il software di crittografia utilizzato offre miglioramenti significativi in termini di prestazioni. Il sistema privo di patch presenta problemi di prestazioni che rimangono in vigore a causa della mancata applicazione di patch. 

 **Vantaggi dell'adozione di questa best practice:** Stabilendo un processo di gestione delle patch, inclusi i criteri per l'applicazione di patch e la metodologia per la distribuzione tra gli ambienti, sarai in grado di realizzarne i vantaggi e controllarne l'impatto. In questo modo sarà possibile adottare le caratteristiche e le funzionalità desiderate, eliminare i problemi e mantenere la conformità alla governance. Implementa sistemi di gestione delle patch e automazione per ridurre il livello di impegno per distribuire le patch e limitare gli errori causati dai processi manuali. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Gestione delle patch: applica patch ai sistemi per correggere gli errori, ottenere le funzionalità o le capacità desiderate e assicurare la conformità alle policy di governance e ai requisiti di supporto del fornitore. Nei sistemi immutabili, distribuisci con il set di patch appropriato per raggiungere il risultato desiderato. Automatizza il meccanismo di gestione delle patch per ridurre il tempo necessario per applicare le patch, ridurre gli errori causati dai processi manuali e il livello di impegno richiesto per applicare le patch. 
  +  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

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

 **Documenti correlati:** 
+  [Strumenti per gli sviluppatori di AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **Video correlati:** 
+  [CI/CD per applicazioni serverless su AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Progettare nell'ottica Ops](https://youtu.be/uh19jfW7hw4) 

   **Esempi correlati:** 
+  [Well-Architected Labs - Inventory and Patch Management (Gestione di inventario e patch)](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 

# OPS05-BP06 Condivisione degli standard di progettazione
<a name="ops_dev_integ_share_design_stds"></a>

Condividi le best practice con i team per incrementare la consapevolezza e potenziare al massimo i vantaggi delle attività di sviluppo. Documentale e mantienile aggiornate di pari passo con l'evoluzione dell'architettura. Se nella tua organizzazione vengono applicati standard condivisi, è fondamentale che esistano meccanismi per richiedere aggiunte, modifiche ed eccezioni agli standard. Senza questa opzione, gli standard diventano un ostacolo per l'innovazione. 

 **Risultato desiderato:** 
+  Gli standard di progettazione vengono condivisi fra team nelle organizzazioni. 
+  Vengono documentati e tenuti aggiornati in base all'evoluzione delle best practice. 

 **Anti-pattern comuni:** 
+ Due team di sviluppo hanno creato ciascuno un servizio di autenticazione utente. Gli utenti devono mantenere un set separato di credenziali per ogni parte del sistema a cui vogliono accedere. 
+ Ogni team gestisce la propria infrastruttura. Un nuovo requisito di conformità impone una modifica all'infrastruttura e ogni team la implementa in modo diverso.

 **Vantaggi dell'adozione di questa best practice:** 
+  L'uso di standard condivisi supporta l'applicazione di best practice e permette di ottenere i massimi vantaggi dalle attività di sviluppo. 
+  La documentazione e l'aggiornamento degli standard di progettazione tengono l'organizzazione al passo con le best practice e i requisiti di sicurezza e conformità. 

 **Livello di rischio associato alla mancata adozione di questa best practice:** medio 

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

 Condividi le best practice, gli standard di progettazione, gli elenchi di controllo, le procedure operative, le linee guida e i requisiti di governance esistenti tra team diversi. Definisci procedure per richiedere modifiche, aggiunte ed eccezioni agli standard di progettazione per supportare il miglioramento e l'innovazione. Rendi noto ai team il contenuto pubblicato. Predisponi un meccanismo per mantenere aggiornati gli standard di progettazione in base all'emergere di nuove best practice. 

 **Esempio del cliente** 

 AnyCompany Retail ha un team interfunzionale che crea modelli di architettura software. Questo team crea l'architettura con conformità e governance integrate. I team che adottano gli standard condivisi traggono vantaggio dall'integrazione di conformità e governance. Possono creare rapidamente soluzioni sulla base degli standard di progettazione. Il team responsabile dell'architettura si incontra ogni trimestre per valutare i modelli architetturali e aggiornarli, se necessario. 

 **Passaggi dell'implementazione** 

1.  Identifica un team interfunzionale che sarà responsabile dello sviluppo e dell'aggiornamento degli standard di progettazione. Questo team collaborerà con gli stakeholder in tutta l'organizzazione per sviluppare standard di progettazione, procedure operative, elenchi di controllo, linee guida e requisiti di governance. Documenta gli standard di progettazione e condividili internamente all'organizzazione. 

   1.  Puoi usare il [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) per creare portfolio che rappresentano gli standard di progettazione usando il modello Infrastruttura come codice (IaC). Puoi condividere portfolio tra più account. 

1.  Predisponi un meccanismo per mantenere aggiornati gli standard di progettazione man mano che vengono identificate nuove best practice. 

1.  Se gli standard di progettazione vengono applicati a livello centrale, definisci un processo per richiedere modifiche, aggiornamenti ed eccezioni. 

 **Livello di impegno per il piano di implementazione:** medio. Lo sviluppo di un processo per creare e condividere standard di progettazione può richiedere il coordinamento e la cooperazione con gli stakeholder in tutta l'organizzazione. 

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

 **Best practice correlate:** 
+  [OPS01-BP03 Valutazione dei requisiti di governance](ops_priorities_governance_reqs.md) – I requisiti di governance influiscono sugli standard di progettazione. 
+  [OPS01-BP04 Valutazione dei requisiti di conformità](ops_priorities_compliance_reqs.md) – La conformità è un fattore essenziale nella creazione di standard di progettazione. 
+  [OPS07-BP02 Revisione costante della prontezza operativa](ops_ready_to_support_const_orr.md) – Gli elenchi di controllo della prontezza operativa sono un meccanismo per implementare standard di progettazione durante la progettazione del carico di lavoro. 
+  [OPS11-BP01 Definizione di un processo per il miglioramento continuo](ops_evolve_ops_process_cont_imp.md) – L'aggiornamento degli standard di progettazione contribuisce a un miglioramento continuo. 
+  [OPS11-BP04 Gestione delle informazioni](ops_evolve_ops_knowledge_management.md) – Nell’ambito della procedura di gestione delle informazioni, documenta e condividi gli standard di progettazione. 

 **Documenti correlati:** 
+ [ Automazione di AWS Backup con il AWS Service Catalog](https://aws.amazon.com/blogs/mt/automate-aws-backups-with-aws-service-catalog/)
+ [ Gestione migliorata degli account del AWS Service Catalog](https://aws.amazon.com/blogs/mt/aws-service-catalog-account-factory-enhanced/)
+ [ Expedia Group crea un'offerta Database as a Service (DBaaS) usando il AWS Service Catalog](https://aws.amazon.com/blogs/mt/how-expedia-group-built-database-as-a-service-dbaas-offering-using-aws-service-catalog/)
+ [ Mantenimento della visibilità sull'uso di modelli architetturali cloud ](https://aws.amazon.com/blogs/architecture/maintain-visibility-over-the-use-of-cloud-architecture-patterns/)
+ [ Semplificazione della condivisione dei portfolio del AWS Service Catalog in una configurazione di AWS Organizations](https://aws.amazon.com/blogs/mt/simplify-sharing-your-aws-service-catalog-portfolios-in-an-aws-organizations-setup/)

 **Video correlati:** 
+ [AWS Service Catalog – Nozioni di base ](https://www.youtube.com/watch?v=A9kKy6WhqVA)
+ [AWS re:Invent 2020: Gestione dei portfolio del AWS Service Catalog in modo esperto ](https://www.youtube.com/watch?v=lVfXkWHAtR8)

 **Esempi correlati:** 
+ [AWS Service Catalog Reference Architecture ](https://github.com/aws-samples/aws-service-catalog-reference-architectures)
+ [ Workshop su AWS Service Catalog](https://catalog.us-east-1.prod.workshops.aws/workshops/d40750d7-a330-49be-9945-cde864610de9/en-US)

 **Servizi correlati:** 
+  [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) 

# OPS05-BP07 Implementazione di prassi per migliorare la qualità del codice
<a name="ops_dev_integ_code_quality"></a>

Implementa prassi per migliorare la qualità del codice e ridurre al minimo i difetti. Alcuni esempi includono sviluppo basato su test, revisioni del codice, adozione degli standard e programmazione in coppia. Inserisci queste prassi nel processo di integrazione continua e distribuzione continua. 

 **Risultato desiderato:** 
+  L'organizzazione usa best practice come le revisioni del codice e la programmazione in coppia per migliorare la qualità del codice. 
+  Sviluppatori e operatori adottano le best practice per la qualità del codice nell'ambito del ciclo di vita di sviluppo del software. 

 **Anti-pattern comuni:** 
+ Commit del codice nel ramo principale dell'applicazione senza alcuna revisione. In questo modo, la modifica viene automaticamente implementata nell'ambiente di produzione e causa un'interruzione.
+  Sviluppo di una nuova applicazione senza unit test, test end-to-end o test di integrazione. Non è possibile in alcun modo testare l'applicazione prima dell'implementazione. 
+  I team apportano modifiche manuali nell'ambiente di produzione per gestire gli errori. Le modifiche non vengono sottoposte a test o revisioni del codice, né vengono acquisite o registrate durante i processi di integrazione continua e distribuzione continua. 

 **Vantaggi dell'adozione di questa best practice:** 
+  L'adozione di pratiche per migliorare la qualità del codice ti consente di ridurre al minimo i problemi di produzione. 
+  La qualità del codice aumenta se vengono usate best practice come la programmazione in coppia e le revisioni del codice. 

 **Livello di rischio associato alla mancata adozione di questa best practice:** medio 

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

 Implementa prassi per migliorare la qualità del codice in modo da ridurre gli errori prima dell'implementazione. Usa prassi come lo sviluppo basato su test, le revisioni del codice e la programmazione in coppia per migliorare la qualità dello sviluppo. 

 **Esempio del cliente** 

 AnyCompany Retail adotta diverse prassi per migliorare la qualità del codice. L'azienda ha adottato lo sviluppo basato su test come standard per la scrittura di applicazioni. Per alcune nuove funzionalità, gli sviluppatori eseguiranno la programmazione in coppia durante uno sprint. Ogni richiesta pull viene sottoposta a una revisione del codice da parte di uno sviluppatore senior prima di essere integrata e implementata. 

 **Passaggi dell'implementazione** 

1.  Adotta prassi per la qualità del codice come lo sviluppo basato su test, le revisioni del codice e la programmazione in coppia nel processo di integrazione continua e distribuzione continua. Usa queste tecniche per migliorare la qualità del software. 

   1.  Il [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) può fornire suggerimenti di programmazione per il codice Java e Python tramite il machine learning. 

   1.  Puoi creare ambienti di sviluppo condivisi con [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) in cui collaborare allo sviluppo del codice. 

 **Livello di impegno per il piano di implementazione:** medio. Esistono molti modi per implementare questa best practice, ma la realizzazione dell'adozione da parte dell'organizzazione può essere problematica. 

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

 **Best practice correlate:** 
+  [OPS05-BP06 Condivisione degli standard di progettazione](ops_dev_integ_share_design_stds.md) – Puoi condividere gli standard di progettazione nell'ambito della prassi per la qualità del codice. 

 **Documenti correlati:** 
+ [ Agile Software Guide ](https://martinfowler.com/agile.html)
+ [ La mia pipeline CI/CD è la mia release captain ](https://aws.amazon.com/builders-library/cicd-pipeline/)
+ [ Automazione delle revisioni del codice con il Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
+ [ Adotta un approccio allo sviluppo basato sul test ](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html)
+ [ DevFactory crea applicazioni migliori con Amazon CodeGuru ](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/)
+ [ On Pair Programming ](https://martinfowler.com/articles/on-pair-programming.html)
+ [ RENGA Inc. automatizza le revisioni del codice con Amazon CodeGuru ](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/)
+ [ The Art of Agile Development: Test-Driven Development ](http://www.jamesshore.com/v2/books/aoad1/test_driven_development)
+ [ Why code reviews matter (and actually save time\$1) ](https://www.atlassian.com/agile/software-development/code-reviews)

 **Video correlati:** 
+ [AWS re:Invent 2020: Miglioramento continuo della qualità del codice con Amazon CodeGuru ](https://www.youtube.com/watch?v=iX1i35H1OVw)
+ [AWS Summit ANZ 2021 - Adottare una strategia incentrata sui test con CDK e sviluppo incentrato sui test ](https://www.youtube.com/watch?v=1R7G_wcyd3s)

 **Servizi correlati:** 
+ [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)
+ [ Amazon CodeGuru Profiler ](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html)
+  [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 

# OPS05-BP08 Utilizzo di più ambienti
<a name="ops_dev_integ_multi_env"></a>

 Utilizza ambienti multipli per sperimentare, sviluppare e testare il carico di lavoro. Utilizza livelli crescenti di controlli man mano che gli ambienti si avvicinano alla fase di produzione per avere la certezza che il carico di lavoro funzionerà come previsto una volta distribuito. 

 **Anti-pattern comuni:** 
+  Stai sviluppando in un ambiente di sviluppo condiviso e un altro sviluppatore sovrascrive le tue modifiche al codice. 
+  I controlli di sicurezza restrittivi nell'ambiente di sviluppo condiviso impediscono di sperimentare nuovi servizi e funzionalità. 
+  Esegui test di carico sui tuoi sistemi di produzione e causa un'interruzione per i tuoi utenti. 
+  Si è verificato un errore critico che ha causato la perdita di dati nella produzione. Nel tuo ambiente di produzione tenti di ricreare le condizioni che portano alla perdita di dati in modo da poter identificare come si è verificata e impedire che si ripeta. Per evitare un'ulteriore perdita di dati durante il test, devi rendere l'applicazione non disponibile per i tuoi utenti. 
+  Stai operando un servizio multi-tenant e non sei in grado di supportare la richiesta di un cliente per un ambiente dedicato. 
+  Non esegui sempre test, ma quando lo fai è in produzione. 
+  Ritieni che la semplicità di un singolo ambiente prevalga sulla portata dell'impatto che possono avere modifiche all'interno dell'ambiente. 

 **Vantaggi dell'adozione di questa best practice:** Con la distribuzione di più ambienti, puoi supportare più ambienti di sviluppo, test e produzione simultanei senza creare conflitti tra sviluppatori o community di utenti. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo di più ambienti: fornisci agli sviluppatori ambienti sandbox con controlli minimi per abilitare la sperimentazione. Fornisci ambienti di sviluppo individuali per abilitare il lavoro in parallelo, incrementando l'agilità dello sviluppo. Implementa controlli più rigorosi negli ambienti che si avvicinano alla produzione per consentire agli sviluppatori di innovare. Utilizza l'approccio Infrastructure-as-Code e sistemi di gestione delle configurazioni per distribuire ambienti configurati in modo coerente con i controlli presenti in produzione per assicurare che i sistemi funzionino nel modo previsto quando vengono distribuiti. Quando gli ambienti non vengono utilizzati, disattivali per evitare costi associati alle risorse inattive, ad esempio i sistemi di sviluppo nelle ore serali e nei fine settimana. Distribuisci ambienti equivalenti alla produzione quando esegui i test di carico per ottenere risultati validi. 
  +  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [Come arrestare e riavviare le istanze Amazon EC2 a intervalli regolari con AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

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

 **Documenti correlati:** 
+  [Come arrestare e riavviare le istanze Amazon EC2 a intervalli regolari con AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [Che cos'è AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# OPS05-BP09 Applicazione di modifiche frequenti, minime e reversibili
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Le modifiche frequenti, minime e reversibili riducono la portata e l'impatto di una modifica. Questo semplifica la risoluzione dei problemi, consente tempi di correzione più rapidi e permette di eseguire il rollback di una modifica. 

 **Anti-pattern comuni:** 
+  Viene distribuita trimestralmente una nuova versione dell'applicazione. 
+  Le modifiche vengono apportate frequentemente allo schema del database. 
+  Esegui aggiornamenti manuali sul posto, sovrascrivendo le installazioni e le configurazioni esistenti. 

 **Vantaggi dell'adozione di questa best practice:** Riconosci più rapidamente i vantaggi derivanti dalle attività di sviluppo grazie alla distribuzione frequente di piccole modifiche. Quando le modifiche sono piccole, è molto più facile identificare se hanno conseguenze indesiderate. Quando le modifiche sono reversibili, è meno rischioso implementare la modifica poiché il ripristino è più semplice. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Applicazione di modifiche frequenti, minime e reversibili: le modifiche frequenti, minime e reversibili riducono la portata e l'impatto di una modifica. Questo semplifica la risoluzione dei problemi, consente tempi di correzione più rapidi e permette di eseguire il rollback di una modifica. Inoltre, aggiunge più rapidamente valore al business. 

# OPS05-BP10 Automazione completa dell'integrazione e della distribuzione
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Automatizza la creazione, la distribuzione e il test del carico di lavoro. Questo riduce gli errori causati dai processi manuali e l'impegno necessario per distribuire le modifiche. 

 Applica i metadati utilizzando i [tag delle risorse](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) e [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) seguendo una [strategia di applicazione dei tag](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) coerente per consentire l'identificazione delle risorse. Applica tag alle risorse per organizzare, monitorare i costi e controllare gli accessi e ottimizza l'esecuzione delle attività operative automatizzate. 

 **Anti-pattern comuni:** 
+  Venerdì termini la creazione del nuovo codice per il ramo delle funzionalità. Lunedì, dopo aver eseguito gli script di test di qualità del codice e ciascuno degli script dei test di unità, verificherai nel codice la prossima versione pianificata. 
+  Ti verrà assegnato di codificare una correzione per un problema critico che interessa un numero elevato di clienti nella produzione. Dopo aver testato la correzione, esegui il commit del codice e richiedi via e-mail alla gestione delle modifiche l'approvazione per distribuirlo in produzione. 

 **Vantaggi dell'adozione di questa best practice:** Implementando sistemi di gestione automatizzati di compilazione e distribuzione, riduci gli errori causati dai processi manuali e l'impegno necessario per distribuire le modifiche, consentendo ai membri del team di concentrarsi su attività aziendali più importanti. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo di sistemi di gestione della creazione e distribuzione: utilizza sistemi di gestione della creazione e distribuzione per tenere traccia e implementare le modifiche, ridurre gli errori causati dai processi manuali e ridurre il livello di impegno richiesto. Automatizza completamente la pipeline di integrazione e distribuzione dal check-in del codice fino alle fasi di creazione, test, distribuzione e convalida. In questo modo è possibile ridurre il lead time, aumentare la frequenza delle modifiche e ridurre il livello di impegno richiesto. 
  +  [What is AWS CodeBuild? (Che cos'è AWS CodeBuild?)](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD for serverless applications on AWS (Slalom: CI/CD per applicazioni serverless su AWS)](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services (Introduzione ad AWS CodeDeploy – Implementazione automatica del software con Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [What is AWS CodeDeploy? (Che cos'è AWS CodeDeploy?)](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **Documenti correlati:** 
+  [What is AWS CodeBuild? (Che cos'è AWS CodeBuild?)](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [What is AWS CodeDeploy? (Che cos'è AWS CodeDeploy?)](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video correlati:** 
+  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services (Introduzione ad AWS CodeDeploy – Implementazione automatica del software con Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD for serverless applications on AWS (Slalom: CI/CD per applicazioni serverless su AWS)](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS 6 In che modo mitighi i rischi della distribuzione?
<a name="ops-06"></a>

 Adotta prassi che consentano di fornire un feedback rapido sulla qualità e permettano un ripristino veloce dalle modifiche che non hanno i risultati previsti. L'uso di queste prassi consente di mitigare l'impatto dei problemi introdotti attraverso la distribuzione delle modifiche. 

**Topics**
+ [OPS06-BP01 Preparazione di un piano in caso di esito negativo delle modifiche](ops_mit_deploy_risks_plan_for_unsucessful_changes.md)
+ [OPS06-BP02 Test e convalida delle modifiche](ops_mit_deploy_risks_test_val_chg.md)
+ [OPS06-BP03 Utilizzo di sistemi di gestione dell'implementazione](ops_mit_deploy_risks_deploy_mgmt_sys.md)
+ [OPS06-BP04 Test utilizzando implementazioni limitate](ops_mit_deploy_risks_test_limited_deploy.md)
+ [OPS06-BP05 Distribuzione utilizzando ambienti paralleli](ops_mit_deploy_risks_deploy_to_parallel_env.md)
+ [OPS06-BP06 Distribuzione di modifiche frequenti, minime e reversibili](ops_mit_deploy_risks_freq_sm_rev_chg.md)
+ [OPS06-BP07 Automazione completa dell'integrazione e dell'implementazione](ops_mit_deploy_risks_auto_integ_deploy.md)
+ [OPS06-BP08 Automazione dei test e del rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md)

# OPS06-BP01 Preparazione di un piano in caso di esito negativo delle modifiche
<a name="ops_mit_deploy_risks_plan_for_unsucessful_changes"></a>

 Pianifica il ripristino di uno stato corretto noto o la correzione nell'ambiente di produzione nel caso in cui una modifica non produca il risultato desiderato. Questa preparazione riduce i tempi di ripristino grazie a risposte più veloci. 

 **Anti-pattern comuni:** 
+  Hai eseguito una distribuzione e l'applicazione è diventata instabile, ma sembra che ci siano utenti attivi sul sistema. Devi decidere se eseguire il rollback della modifica e influire sugli utenti attivi o attendere il rollback della modifica, sapendo che gli utenti possono essere comunque influenzati. 
+  Dopo aver apportato una modifica di routine, i nuovi ambienti sono accessibili, ma una delle sottoreti è diventata irraggiungibile. Devi decidere se eseguire il rollback di tutto o provare a correggere la sottorete inaccessibile. Mentre prendi tale decisione, la sottorete rimane irraggiungibile. 

 **Vantaggi dell'adozione di questa best practice:** Avere pronto un piano riduce il tempo medio di ripristino (MTTR) dalle modifiche non riuscite, riducendo di conseguenza l'impatto sugli utenti finali. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Preparazione di un piano in caso di esito negativo delle modifiche: pianifica il ripristino di uno stato corretto noto (ovvero, esegui il rollback della modifica) o la correzione nell'ambiente di produzione (ovvero, esegui il roll forward della modifica) nel caso in cui una modifica non produca il risultato desiderato. In presenza di modifiche di cui non è possibile effettuare il rollback in caso di esito negativo, presta la dovuta attenzione prima di eseguire il commit. 

# OPS06-BP02 Test e convalida delle modifiche
<a name="ops_mit_deploy_risks_test_val_chg"></a>

 Testa le modifiche e convalida i risultati in tutte le fasi del ciclo di vita per confermare le nuove funzionalità e ridurre al minimo il rischio e l'impatto delle distribuzioni non riuscite. 

 Su AWS puoi creare ambienti temporanei paralleli che riducono il rischio, lo sforzo e il costo della sperimentazione e dell'esecuzione di test. Automatizza la distribuzione di questi ambienti utilizzando [AWS CloudFormation](https://aws.amazon.com/cloudformation/) per garantire implementazioni coerenti degli ambienti temporanei. 

 **Anti-pattern comuni:** 
+  Viene distribuita una nuova funzionalità interessante nella tua applicazione. Non funziona. Non lo sai. 
+  I certificati vengono aggiornati. Installi accidentalmente i certificati nei componenti errati. Non lo sai. 

 **Vantaggi dell'adozione di questa best practice:** Testando e convalidando le modifiche dopo la distribuzione, sarai in grado di identificare tempestivamente i problemi offrendo l'opportunità di mitigare l'impatto sui clienti. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Test e convalida delle modifiche: testa le modifiche e convalida i risultati in tutte le fasi del ciclo di vita (ad esempio, distribuzione, test e produzione) per confermare le nuove funzionalità e ridurre al minimo il rischio e l'impatto delle distribuzioni non riuscite. 
  +  [AWS Cloud9](https://aws.amazon.com/cloud9/) 
  +  [Cos'è AWS Cloud9?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 
  +  [Come eseguire test e debug con AWS CodeDeploy in locale prima di distribuire il codice](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 

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

 **Documenti correlati:** 
+  [AWS Cloud9](https://aws.amazon.com/cloud9/) 
+  [Strumenti per gli sviluppatori di AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Come eseguire test e debug con AWS CodeDeploy in locale prima di distribuire il codice](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 
+  [Cos'è AWS Cloud9?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 

# OPS06-BP03 Utilizzo di sistemi di gestione dell'implementazione
<a name="ops_mit_deploy_risks_deploy_mgmt_sys"></a>

 Usa sistemi di gestione della distribuzione per monitorare e implementare una modifica. Questo riduce gli errori causati dai processi manuali e l'impegno necessario per distribuire le modifiche. 

 In AWS, puoi compilare pipeline di integrazione continua/implementazione continua (CI/CD) utilizzando servizi come gli [Strumenti per sviluppatori in AWS](https://aws.amazon.com/products/developer-tools/) (ad esempio, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)e [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Anti-pattern comuni:** 
+  Distribuisci manualmente gli aggiornamenti dei server applicazioni all'interno del parco istanze e alcuni server non rispondono a causa di errori di aggiornamento. 
+  Distribuisci manualmente il parco istanze del server applicazioni nel corso di molte ore. L'incoerenza nelle versioni durante la modifica causa comportamenti imprevisti. 

 **Vantaggi dell'adozione di questa best practice:** L'adozione di sistemi di gestione dell'implementazione riduce il livello di impegno necessario per implementare modifiche e la frequenza degli errori causati dalle procedure manuali. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo di sistemi di gestione dell'implementazione: utilizza sistemi di gestione della distribuzione per monitorare e implementare le modifiche. Questo ridurrà gli errori causati dai processi manuali e il livello di impegno richiesto per la distribuzione delle modifiche. Automatizza completamente la pipeline di integrazione e distribuzione dal check-in del codice fino alle fasi di test, distribuzione e convalida. In questo modo è possibile ridurre il lead time, aumentare la frequenza delle modifiche e ridurre ulteriormente il livello di impegno richiesto. 
  +  [Introduzione ad AWS CodeDeploy - Sviluppo di software automatizzato con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Che cos'è AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [Che cos'è AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
  +  [Che cos'è Amazon API Gateway?](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 

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

 **Documenti correlati:** 
+  [Guida per l'utente di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [Strumenti per sviluppatori in AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [Che cos'è AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [Che cos'è AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [Che cos'è Amazon API Gateway?](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 

 **Video correlati:** 
+  [Approfondimento sulle tecniche avanzate di distribuzione continua utilizzando AWS](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 
+  [Introduzione ad AWS CodeDeploy - Sviluppo di software automatizzato con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 

# OPS06-BP04 Test utilizzando implementazioni limitate
<a name="ops_mit_deploy_risks_test_limited_deploy"></a>

 Esegui test con distribuzioni limitate accanto ai sistemi esistenti per confermare i risultati desiderati prima della distribuzione su vasta scala. Ad esempio, utilizza test della distribuzione di tipo canary oppure distribuzioni one-box. 

 **Anti-pattern comuni:** 
+  Distribuisci una modifica non riuscita a tutta la produzione contemporaneamente. Non lo sai. 

 **Vantaggi dell'adozione di questa best practice:** Testando e convalidando le modifiche dopo la distribuzione limitata, sarai in grado di identificare tempestivamente i problemi con un impatto minimo sui clienti offrendo l'opportunità di mitigare ulteriormente quest'ultimo. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Test con implementazioni limitate: esegui test con implementazioni limitate insieme ai sistemi esistenti per confermare i risultati desiderati prima dell'implementazione su vasta scala. Ad esempio, utilizza test della distribuzione di tipo canary oppure distribuzioni one-box. 
  +  [Guida per l'utente di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [Implementazione blu/verde con AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
  +  [Configurazione dell'implementazione di una release canary di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
  +  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
  +  [Utilizzo di configurazioni di implementazione in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

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

 **Documenti correlati:** 
+  [Guida per l'utente di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [Implementazione blu/verde con AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
+  [Configurazione dell'implementazione di una release canary di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
+  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [Utilizzo di configurazioni di implementazione in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

# OPS06-BP05 Distribuzione utilizzando ambienti paralleli
<a name="ops_mit_deploy_risks_deploy_to_parallel_env"></a>

 Implementa le modifiche in ambienti paralleli, quindi esegui la transizione al nuovo ambiente. Mantieni l'ambiente precedente finché non viene confermata la riuscita della distribuzione. In questo modo si riducono i tempi di ripristino grazie alla possibilità di eseguire il rollback all'ambiente precedente. 

 **Anti-pattern comuni:** 
+  Esegui una distribuzione variabile modificando i sistemi esistenti. Dopo aver scoperto che la modifica non è andata a buon fine, devi modificare nuovamente i sistemi per ripristinare la versione precedente estendendo il tempo di ripristino. 
+  Durante una finestra di manutenzione, disattivi l'ambiente precedente, quindi inizi a creare il nuovo ambiente. Molte ore dopo aver iniziato la procedura, scopri problemi irrecuperabili con la distribuzione. La stanchezza è grande, ma devi trovare le procedure di distribuzione precedenti e iniziare a ricostruire il vecchio ambiente. 

 **Vantaggi dell'adozione di questa best practice:** Utilizzando ambienti paralleli puoi distribuire anticipatamente il nuovo ambiente e passare a esso quando lo desideri. Se nel nuovo ambiente ci sono problemi, puoi eseguire rapidamente il ripristino al tuo ambiente originale. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Distribuzione con ambienti paralleli: implementa le modifiche in ambienti paralleli, quindi effettua la transizione o passa al nuovo ambiente. Mantieni l'ambiente precedente finché non viene confermata la riuscita della distribuzione. Questo riduce i tempi di ripristino grazie alla possibilità di eseguire il rollback all'ambiente precedente. Ad esempio, usa infrastrutture immutabili con distribuzioni blue/green. 
  +  [Utilizzo di configurazioni di distribuzione in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 
  +  [Distribuzioni blu/verde con AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
  +  [Configurazione della distribuzione di una release Canary di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
  +  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 

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

 **Documenti correlati:** 
+  [Guida per l'utente di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [Distribuzioni blu/verde con AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
+  [Configurazione della distribuzione di una release Canary di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
+  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [Utilizzo di configurazioni di distribuzione in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

 **Video correlati:** 
+  [Approfondimento sulle tecniche avanzate di distribuzione continua utilizzando AWS](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 

# OPS06-BP06 Distribuzione di modifiche frequenti, minime e reversibili
<a name="ops_mit_deploy_risks_freq_sm_rev_chg"></a>

 Utilizza modifiche frequenti, minime e reversibili per ridurre la portata e l'impatto di una modifica. Semplificherai così la risoluzione dei problemi, accelerando la correzione e mantenendo la possibilità di rollback delle modifiche. 

 **Anti-pattern comuni:** 
+  Viene distribuita trimestralmente una nuova versione dell'applicazione. 
+  Le modifiche vengono apportate frequentemente allo schema del database. 
+  Esegui aggiornamenti manuali sul posto, sovrascrivendo le installazioni e le configurazioni esistenti. 

 **Vantaggi dell'adozione di questa best practice:** Riconosci più rapidamente i vantaggi derivanti dalle attività di sviluppo grazie alla distribuzione frequente di piccole modifiche. Quando le modifiche sono piccole, è molto più facile identificare se hanno conseguenze indesiderate. Quando le modifiche sono reversibili, il rischio di implementare la modifica man mano che il ripristino viene semplificato è minore. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Distribuzione di modifiche frequenti, minime e reversibili: utilizza modifiche frequenti, minime e reversibili per ridurre la portata di una modifica. Semplificherai così la risoluzione dei problemi, accelerando la correzione e mantenendo la possibilità di rollback delle modifiche. 

# OPS06-BP07 Automazione completa dell'integrazione e dell'implementazione
<a name="ops_mit_deploy_risks_auto_integ_deploy"></a>

 Automatizza la creazione, la distribuzione e il test del carico di lavoro. Questo riduce gli errori causati dai processi manuali e l'impegno necessario per distribuire le modifiche. 

 Applica i metadati utilizzando i [tag delle risorse](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) e [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) seguendo una [strategia di applicazione dei tag](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) coerente per consentire l'identificazione delle risorse. Applica tag alle risorse per organizzare, monitorare i costi e controllare gli accessi e ottimizza l'esecuzione delle attività operative automatizzate. 

 **Anti-pattern comuni:** 
+  Venerdì termini la creazione del nuovo codice per il ramo delle funzionalità. Lunedì, dopo aver eseguito gli script di test di qualità del codice e ciascuno degli script dei test di unità, verificherai nel codice la prossima versione pianificata. 
+  Ti verrà assegnato di codificare una correzione per un problema critico che interessa un numero elevato di clienti nella produzione. Dopo aver testato la correzione, esegui il commit del codice e richiedi via e-mail alla gestione delle modifiche l'approvazione per implementarlo in produzione. 

 **Vantaggi dell'adozione di questa best practice:** Implementando sistemi di gestione automatizzati di compilazione e distribuzione, riduci gli errori causati dai processi manuali e lo sforzo di distribuire le modifiche consentendo ai membri del team di concentrarsi sull'offerta di valore aggiunto. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Utilizzo di sistemi di gestione della compilazione e dell'implementazione: utilizza sistemi di gestione della compilazione e dell'implementazione per tenere traccia e realizzare le modifiche, ridurre gli errori causati dai processi manuali e ridurre il livello di impegno richiesto. Automatizza completamente la pipeline di integrazione e distribuzione dal check-in del codice fino alle fasi di creazione, test, distribuzione e convalida. In questo modo è possibile ridurre il lead time, aumentare la frequenza delle modifiche e ridurre il livello di impegno richiesto. 
  +  [Che cos'è AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD per applicazioni serverless su AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduzione ad AWS CodeDeploy – Implementazione automatica del software con Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [What is AWS CodeDeploy? (Che cos'è AWS CodeDeploy?)](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [Approfondimento sulle tecniche avanzate di distribuzione continua utilizzando AWS](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 

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

 **Documenti correlati:** 
+  [Prova un'implementazione blu/verde di esempio in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [Che cos'è AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [What is AWS CodeDeploy? (Che cos'è AWS CodeDeploy?)](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video correlati:** 
+  [Best practice di integrazione continua per lo sviluppo del software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Approfondimento sulle tecniche avanzate di distribuzione continua utilizzando AWS](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 
+  [Introduzione ad AWS CodeDeploy – Implementazione automatica del software con Amazon Web Services)](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD per applicazioni serverless su AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS06-BP08 Automazione dei test e del rollback
<a name="ops_mit_deploy_risks_auto_testing_and_rollback"></a>

 Automatizza i test degli ambienti distribuiti per confermare i risultati desiderati. Automatizza il rollback a uno stato corretto noto quando non vengono raggiunti i risultati previsti, per ridurre al minimo il tempo di ripristino e gli errori causati dai processi manuali. 

 **Anti-pattern comuni:** 
+  Distribuisci le modifiche al carico di lavoro. Una volta completata la modifica, inizi il test post-implementazione. Al completamento, ti accorgi che il carico di lavoro è inutilizzabile e i clienti sono disconnessi. Inizi quindi a eseguire il rollback alla versione precedente. Dopo un lungo periodo di tempo per rilevare il problema, il tempo di ripristino viene esteso dalla reimplementazione manuale. 

 **Vantaggi dell'adozione di questa best practice:** Testando e convalidando le modifiche dopo l'implementazione, puoi identificare immediatamente i problemi. Effettuando automaticamente il rollback alla versione precedente, l'impatto sui clienti viene ridotto al minimo. 

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

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Automazione di test e rollback: automatizza i test degli ambienti implementati per confermare i risultati desiderati. Automatizza il rollback a uno stato corretto noto quando non vengono raggiunti i risultati previsti, per ridurre al minimo il tempo di ripristino e gli errori causati dai processi manuali. Ad esempio, esegui transazioni utente sintetiche dettagliate dopo la distribuzione, verifica i risultati ed esegui il rollback se l'esito è negativo. 
  +  [Reimplementazione e rollback di una implementazione con AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 

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

 **Documenti correlati:** 
+  [Reimplementazione e rollback di una implementazione con AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 

# OPS 7 Come fai a sapere che sei pronto a supportare un carico di lavoro?
<a name="ops-07"></a>

 Valuta la disponibilità operativa del carico di lavoro, dei processi e delle procedure, nonché del personale per comprendere i rischi operativi correlati al carico di lavoro. 

**Topics**
+ [OPS07-BP01 Verifica della capacità del personale](ops_ready_to_support_personnel_capability.md)
+ [OPS07-BP02 Revisione costante della prontezza operativa](ops_ready_to_support_const_orr.md)
+ [OPS07-BP03 Utilizzo di runbook per eseguire le procedure](ops_ready_to_support_use_runbooks.md)
+ [OPS07-BP04 Utilizzo dei playbook per analizzare i problemi](ops_ready_to_support_use_playbooks.md)
+ [OPS07-BP05 Adozione di decisioni informate per implementare sistemi e modifiche](ops_ready_to_support_informed_deploy_decisions.md)
+ [OPS07-BP06 Abilitazione dei piani di supporto per i carichi di lavoro di produzione](ops_ready_to_support_enable_support_plans.md)

# OPS07-BP01 Verifica della capacità del personale
<a name="ops_ready_to_support_personnel_capability"></a>

Predisponi un meccanismo per stabilire se possiedi il numero appropriato di risorse del personale qualificate per supportare il carico di lavoro. Le risorse devono essere state formate sulla piattaforma e sui servizi che costituiscono il tuo carico di lavoro. Fornisci loro le informazioni necessarie per eseguire il carico di lavoro. Devi avere a disposizione personale qualificato sufficiente per supportare il normale funzionamento del carico di lavoro e gestire gli eventuali incidenti. Predisponi personale sufficiente per la rotazione durante la reperibilità e le ferie per evitare motivi di frustrazione. 

 **Risultato desiderato:** 
+  Presenza di personale qualificato sufficiente per supportare il carico di lavoro nei momenti in cui è disponibile. 
+  Capacità di fornire al personale formazione sul software e sui servizi che costituiscono il carico di lavoro. 

 **Anti-pattern comuni:** 
+ Implementazione di un carico di lavoro senza membri del team qualificati per l'esecuzione della piattaforma e dei servizi in uso. 
+  Mancanza di personale sufficiente per supportare la reperibilità a rotazione o le richieste di permesso del personale. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Membri del team qualificati costituiscono un supporto efficace al carico di lavoro. 
+  Con un numero sufficiente di membri del team, puoi supportare il carico di lavoro e la reperibilità a rotazione, riducendo il rischio di frustrazione. 

 **Livello di rischio associato alla mancata adozione di questa best practice:** Elevato 

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

 Verifica che sia disponibile personale qualificato sufficiente per supportare il carico di lavoro. Assicurati che il numero di membri del team di cui disponi sia sufficiente a coprire le normali attività operative, inclusa la reperibilità a rotazione. 

 **Esempio del cliente** 

 AnyCompany Retail si assicura che i team che supportano il carico di lavoro includano personale qualificato sufficiente. L'azienda ha al suo interno un numero sufficiente di tecnici per supportare la reperibilità a rotazione. Il personale riceve formazione sul software e sulla piattaforma su cui è basato il carico di lavoro e viene incoraggiato a conseguire certificazioni. Vi è personale sufficiente per permettere alle persone di richiedere permessi di assenza, continuando a supportare il carico di lavoro durante la reperibilità a rotazione. 

 **Passaggi dell'implementazione** 

1.  Assegna un numero adeguato di risorse del personale per eseguire e supportare il carico di lavoro, tenendo conto della reperibilità. 

1.  Forma il personale sul software e sulle piattaforme che costituiscono il carico di lavoro. 

   1.  [AWS Training and Certification](https://aws.amazon.com/training/) offre una raccolta di corsi su AWS. Sono disponibili corsi gratuiti e a pagamento, online e di persona. 

   1.  [AWS organizza eventi e webinar](https://aws.amazon.com/events/) in cui puoi apprendere da esperti AWS. 

1.  Valuta regolarmente le dimensioni e le competenze del team in base al mutare delle condizioni operative e del carico di lavoro. Adegua le dimensioni e le competenze del team ai requisiti operativi. 

 **Livello di impegno per il piano di implementazione:** elevato L'assunzione e la formazione di un team per supportare il carico di lavoro possono richiedere un impegno significativo, ma assicurano solidi vantaggi a lungo termine. 

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

 **Best practice correlate:** 
+  [OPS11-BP04 Gestione delle informazioni](ops_evolve_ops_knowledge_management.md) – I membri del team devono disporre delle informazioni necessarie per eseguire e supportare il carico di lavoro. La gestione delle informazioni è il fattore chiave a questo scopo. 

 **Documenti correlati:** 
+  [Eventi e webinar AWS](https://aws.amazon.com/events/) 
+  [AWS Training and Certification](https://aws.amazon.com/training/) 

# OPS07-BP02 Revisione costante della prontezza operativa
<a name="ops_ready_to_support_const_orr"></a>

Usa le revisioni della prontezza operativa (ORR) per verificare che puoi utilizzare il carico di lavoro. ORR è un meccanismo sviluppato da Amazon per verificare che i team possano utilizzare in sicurezza i propri carichi di lavoro. ORR è un processo di revisione e ispezione che utilizza un elenco di controllo per i requisiti. È un'esperienza self-service che i team utilizzano per certificare i propri carichi di lavoro. Le ORR includono le best practice delle lezioni apprese durante gli anni dedicati alla creazione di software. 

 Un elenco di controllo ORR è composto da suggerimenti sull'architettura, processo operativo, gestione degli eventi e qualità del rilascio. Il nostro processo di correzione dell'errore (CoE, Correction of Error) è uno dei principali fattori trainanti di questi elementi. L'analisi post-incidente deve guidare l'evoluzione della ORR. Una ORR non riguarda solo l'adozione delle best practice, ma anche la prevenzione del ripetersi di eventi già visti. Infine, in una ORR possono essere inclusi anche i requisiti di sicurezza, governance e conformità. 

 Esegui le ORR prima che un carico di lavoro venga lanciato nella disponibilità generale e quindi durante tutto il ciclo di vita dello sviluppo software. L'esecuzione della ORR prima del lancio aumenta la tua capacità di utilizzare il carico di lavoro in sicurezza. Riesegui periodicamente la ORR sul carico di lavoro per cogliere eventuali scostamenti dalle best practice. Puoi usare gli elenchi di controllo ORR per il lancio di nuovi servizi e le ORR per le revisioni periodiche. In tal modo puoi tenerti aggiornato sulle nuove best practice che emergono e incorporare le lezioni apprese dall'analisi post-incidente. Man mano che l'utilizzo del cloud cresce, puoi creare i requisiti di ORR nella tua architettura come valori predefiniti. 

 **Risultato desiderato:**  hai un elenco di controllo ORR con le best practice per la tua organizzazione. Le ORR vengono eseguite prima dell'avvio dei carichi di lavoro. Le ORR vengono eseguite periodicamente nel corso del ciclo di vita del carico di lavoro. 

 **Anti-pattern comuni:** 
+ Avvii un carico di lavoro senza sapere se puoi utilizzarlo. 
+ I requisiti di governance e sicurezza non sono inclusi nella certificazione di un carico di lavoro per l'avvio. 
+ I carichi di lavoro non vengono rivalutati periodicamente. 
+ I carichi di lavoro vengono avviati senza le procedure richieste. 
+ Si osserva la ripetizione di errori con la stessa causa principale in più carichi di lavoro. 

 **Vantaggi dell'adozione di questa best practice:** 
+  I tuoi carichi di lavoro includono le best practice di architettura, processo e gestione. 
+  Le lezioni apprese sono incorporate nel processo ORR. 
+  Le procedure richieste sono in atto all'avvio dei carichi di lavoro. 
+  Le ORR vengono eseguite durante l'intero ciclo di vita del software dei carichi di lavoro. 

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

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

 Una ORR è composta da un processo e un elenco di controllo. Il processo ORR deve essere adottato dall'organizzazione e supportato da uno sponsor esecutivo. Come minimo, le ORR devono essere eseguite prima che il carico di lavoro venga lanciato nella disponibilità generale. Esegui la ORR durante tutto il ciclo di vita dello sviluppo software per mantenerlo aggiornato con le best practice o i nuovi requisiti. L'elenco di controllo ORR deve includere elementi di configurazione, requisiti di sicurezza e governance e best practice dell'organizzazione. Nel tempo, puoi utilizzare i servizi, come [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html), [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)e [AWS Control Tower Guardrails](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html)per creare le best practice dalla ORR nei guardrail per il rilevamento automatico delle best practice. 

 **Esempio del cliente** 

 Dopo diversi incidenti di produzione, AnyCompany Retail ha deciso di implementare un processo ORR. Ha creato un elenco di controllo composto da best practice, requisiti di governance e conformità e lezioni apprese dalle interruzioni. I nuovi carichi di lavoro conducono le ORR prima dell'avvio. Ogni carico di lavoro esegue una ORR annuale con un sottoinsieme di best practice per incorporare nuove best practice e requisiti che vengono aggiunti all'elenco di controllo ORR. Nel tempo, AnyCompany Retail ha utilizzato [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) per individuare le best practices, accelerando il processo ORR. 

 **Passaggi dell'implementazione** 

 Per ulteriori informazioni sulle ORR, consulta il [whitepaper Operational Readiness Reviews (ORR) (Revisioni della prontezza operativa (ORR))](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html). Fornisce informazioni dettagliate sulla cronologia del processo ORR, su come creare la procedura ORR e su come sviluppare il proprio elenco di controllo ORR. I passaggi seguenti costituiscono una versione abbreviata di quel documento. Per una comprensione approfondita di cosa sono le ORR e di come crearne una, ti consigliamo di leggere il whitepaper. 

1. Riunisci gli stakeholder importanti, inclusi i rappresentanti della sicurezza, delle operazioni e dello sviluppo. 

1. Chiedi a ogni stakeholder di indicare almeno un requisito. Per la prima iterazione, prova a limitare il numero di elementi a trenta al massimo. 
   +  [Appendix B: Example ORR questions (Appendice B: Domande ORR di esempio)](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/appendix-b-example-orr-questions.html) del whitepaper Operational Readiness Reviews (ORR) (Revisioni della prontezza operativa (ORR)) contiene domande di esempio che puoi utilizzare per iniziare. 

1. Raccogli i tuoi requisiti in un foglio di calcolo. 
   + Puoi utilizzare [gli obiettivi personalizzati](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) nella funzione [AWS Well-Architected Tool](https://console.aws.amazon.com/wellarchiected/) per sviluppare la ORR e condividerla tra i tuoi account e l'organizzazione AWS. 

1. Identifica un carico di lavoro su cui condurre la ORR. L'ideale è un carico di lavoro pre-lancio o un carico di lavoro interno. 

1. Scorri l'elenco di controllo ORR e prendi nota di tutti i rilevamenti fatti. I rilevamenti potrebbero non essere validi se è in atto una mitigazione. Aggiungi qualsiasi rilevamento privo di mitigazione al tuo backlog di elementi e implementalo prima del lancio. 

1. Continua ad aggiungere le best practice e i requisiti all'elenco di controllo ORR nel corso del tempo. 

 I clienti di Supporto con supporto Enterprise possono richiedere il [workshop Operational Readiness Review (Revisione sulla prontezza operativa)](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) al proprio Technical Account Manager (TAM). Il workshop è una sessione interattiva *di lavoro a ritroso* per sviluppare il tuo elenco di controllo ORR. 

 **Livello di impegno per il piano di implementazione:** alto. L'adozione di una procedura ORR nella tua organizzazione richiede la sponsorizzazione dell'esecutivo e l'adesione degli stakeholder. Crea e aggiorna l'elenco di controllo con input provenienti da tutta l'organizzazione. 

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

 **Best practice correlate:** 
+ [OPS01-BP03 Valutazione dei requisiti di governance](ops_priorities_governance_reqs.md) - I requisiti di governance sono una scelta naturale per un elenco di controllo ORR. 
+ [OPS01-BP04 Valutazione dei requisiti di conformità](ops_priorities_compliance_reqs.md) - I requisiti di conformità sono talvolta inclusi in un elenco di controllo ORR. Altre volte costituiscono un processo separato. 
+ [OPS03-BP07 Fornitura di risorse appropriate ai team](ops_org_culture_team_res_appro.md) - La capacità del team è un buon requisito ORR. 
+ [OPS06-BP01 Preparazione di un piano in caso di esito negativo delle modifiche](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) - Prima di avviare il carico di lavoro, è necessario stabilire un piano di rollback o rollforward. 
+ [OPS07-BP01 Verifica della capacità del personale](ops_ready_to_support_personnel_capability.md) - Per supportare un carico di lavoro è necessario disporre del personale necessario. 
+ [SEC01-BP03 Identificazione e convalida degli obiettivi di controllo](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_control_objectives.html) - Gli obiettivi di controllo della sicurezza costituiscono eccellenti requisiti ORR. 
+ [REL13-BP01 Definizione degli obiettivi di ripristino in caso di downtime e perdita di dati](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_objective_defined_recovery.html) - I piani di ripristino di emergenza sono un buon requisito ORR. 
+ [COST02-BP01 Sviluppo di politiche basate sui requisiti dell'organizzazione](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_govern_usage_policies.html) - Le policy di gestione dei costi sono utili da includere nell'elenco di controllo ORR. 

 **Documenti correlati:** 
+  [AWS Control Tower - Guardrails in AWS Control Tower (Guardrail in AWS Control Tower)](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 
+  [AWS Well-Architected Tool - Custom Lenses (Obiettivi personalizzati)](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) 
+  [Operational Readiness Review Template by Adrian Hornsby (Modello di revisione della prontezza operativa di Adrian Hornsby)](https://medium.com/the-cloud-architect/operational-readiness-review-template-e23a4bfd8d79) 
+  [Whitepaper Operational Readiness Reviews (ORR) (Revisioni della prontezza operativa (ORR))](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html) 

 **Video correlati:** 
+  [Supporto AWSs You \$1 Building an Effective Operational Readiness Review (ORR) (AWS ti supporta \$1 Creazione di un'efficace revisione della prontezza operativa (ORR))](https://www.youtube.com/watch?v=Keo6zWMQqS8) 

 **Esempi correlati:** 
+  [Sample Operational Readiness Review (ORR) Lens (Esempio di obiettivi per la revisione della prontezza operativa (ORR))](https://github.com/aws-samples/custom-lens-wa-sample/tree/main/ORR-Lens) 

 **Servizi correlati:** 
+  [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) 
+  [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) 
+  [AWS Well-Architected Tool](https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html) 

# OPS07-BP03 Utilizzo di runbook per eseguire le procedure
<a name="ops_ready_to_support_use_runbooks"></a>

 Un *runbook* è un processo documentato finalizzato al raggiungimento di un determinato risultato. I runbook sono composti da una serie di passaggi che è necessario eseguire per conseguire un obiettivo. L'uso dei runbook può essere fatto risalire agli albori dell'aviazione. Nelle operazioni cloud, è possibile utilizzare i runbook per ridurre i rischi e ottenere i risultati desiderati. In estrema sintesi, un runbook è un elenco di controllo da seguire per completare un'attività. 

 I runbook costituiscono una parte essenziale del funzionamento dei carichi di lavoro. Dall'inserimento di un nuovo membro in un team all'implementazione di una versione principale, i runbook sono processi codificati che garantiscono risultati coerenti indipendentemente da chi li utilizza. I runbook devono essere pubblicati a livello centralizzato e aggiornati in base all'evoluzione del processo. L'aggiornamento dei runbook rappresenta infatti un elemento chiave dell'intero processo di gestione delle modifiche. Devono inoltre includere le linee guida relative a gestione degli errori, strumenti, autorizzazioni, eccezioni ed escalation in caso di problemi. 

 A mano a mano che l'organizzazione cresce, è consigliabile automatizzare i runbook. Inizia con runbook concisi e di frequente utilizzo. Utilizza un linguaggio di scripting per automatizzare le procedure o semplificarne l'esecuzione. Dopo aver automatizzato i primi runbook, potrai dedicare altro tempo all'automazione dei runbook più complessi. Gradualmente dovrai automatizzare la maggior parte dei runbook. 

 **Risultato desiderato:** il team dispone di una raccolta di linee guida dettagliate per l'esecuzione delle attività relative ai carichi di lavoro. I runbook contengono il risultato desiderato, gli strumenti e le autorizzazioni necessari e le istruzioni per la gestione degli errori. Vengono archiviati in una posizione centralizzata e aggiornati di frequente. 

 **Anti-pattern comuni:** 
+  Ricorso alla memoria per completare i singoli passaggi di un processo. 
+  Implementazione manuale delle modifiche senza utilizzare un elenco di controllo. 
+  Vari membri dei team eseguono lo stesso processo con procedure o risultati diversi. 
+  Mancato aggiornamento dei runbook in base alle modifiche o ai processi di automazione del sistema. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Riduzione della percentuale degli errori per le attività manuali. 
+  Le operazioni vengono eseguite in modo coerente. 
+  I nuovi membri dei team possono essere operativi da subito. 
+  I runbook possono essere automatizzati per semplificare le operazioni più impegnative. 

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

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

 I runbook possono avere vari formati, a seconda del livello di "maturità" dell'organizzazione. Nella loro formulazione minima, devono essere un documento di testo in cui sono dettagliate le procedure. Il risultato desiderato deve essere indicato in modo chiaro e preciso. Devono inoltre documentare in modo chiaro le autorizzazioni e gli strumenti speciali necessari. Devono includere linee guida dettagliate relative alle gestione degli errori e ai livelli di escalation nel caso in cui si verifichino problemi o errori. I runbook devono riportare il nome del proprietario ed essere pubblicati in una posizione centralizzata. Dopo averlo compilato, un runbook deve essere convalidato. A tale scopo, devi far eseguire il runbook da un membro diverso del tuo team. A mano a mano che la procedura si evolve, aggiorna i runbook in base al processo di gestione delle modifiche. 

 I runbook in formato testuale devono essere automatizzati a seconda dell'evoluzione dell'organizzazione. Utilizzando servizi come [Automazioni AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), puoi trasformare un testo non formattato in automazioni che possono essere eseguite nell'ambito di un carico di lavoro. Queste automazioni possono essere eseguite in risposta a eventi, per ridurre il carico operativo a salvaguardia del carico di lavoro. 

 **Esempio del cliente** 

 AnyCompany Retail deve eseguire aggiornamenti dello schema del database durante le implementazioni del software. Il team responsabile delle operazioni cloud ha lavorato assieme al team addetto all'amministrazione del database per redigere un runbook per l'implementazione manuale di queste modifiche. Nel runbook sono incluse le procedure dettagliate sotto forma di elenco di controllo. È presente anche una sezione sulla gestione degli errori in caso di problemi. Il runbook è stato pubblicato assieme ad altri runbook sul wiki interno. Il team responsabile delle operazioni cloud pensa di pianificare l'automazione del runbook in futuro. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>

 Se non è presente un repository di documenti, è consigliabile creare una libreria di runbook utilizzando un repository per il controllo delle versioni. Puoi creare i runbook utilizzando Markdown. Di seguito è riportato un modello di runbook di esempio che è possibile utilizzare come riferimento per la creazione dei runbook. 

```
# Titolo runbook ## Informazioni runbook | ID runbook | Descrizione | Strumenti utilizzati | Autorizzazioni speciali | Autore runbook | Data ultimo aggiornamento | POC escalation | |-------|-------|-------|-------|-------|-------|-------| | RUN001 | Argomento runbook Risultato desiderato | Strumenti | Autorizzazioni | Nome e cognome | 21-09-2022 | Nome escalation | ## Passaggi 1. Passaggio 1 2. Passaggio 2
```

1.  Se non disponi di un repository o di un wiki per la documentazione, crea un repository per il controllo delle versioni nel sistema di controllo delle versioni in uso. 

1.  Individua un processo che non ha un runbook. Un processo ideale è un processo eseguito a cadenza più o meno regolare, con un numero limitato di passaggi e con errori a basso impatto. 

1.  Nel repository di documenti, crea una nuova bozza di documento Markdown utilizzando il modello. Compila il campo `Titolo runbook` e i campi obbligatori nell'area `Informazioni runbook`. 

1.  Partendo dal primo passaggio, compila l'area `Passaggi` del runbook. 

1.  Associa il runbook a un membro del team. Chiedi a tale membro di utilizzare il runbook per convalidare i passaggi. In caso di informazioni mancanti o poca chiarezza, aggiorna il runbook. 

1.  Pubblica il runbook nell'archivio della documentazione interna. Comunica l'avvenuta pubblicazione al team e alle altre parti interessate. 

1.  In questo modo, nel corso del tempo creerai una libreria di runbook. A mano a mano che la libreria cresce, comincia a pensare di automatizzare i runbook. 

 **Livello di impegno per il piano di implementazione:** basso Lo standard minimo previsto per i runbook è una guida dettagliata in formato testo. L'automazione dei runbook può aumentare l'impegno a livello di implementazione. 

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

 **Best practice correlate:** 
+  [OPS02-BP02 Assegnazione di proprietari identificati a processi e procedure](ops_ops_model_def_proc_owners.md): i runbook devono avere un proprietario responsabile della loro manutenzione. 
+  [OPS07-BP04 Utilizzo dei playbook per analizzare i problemi](ops_ready_to_support_use_playbooks.md): i runbook e i playbook sono pressoché simili, con un'unica differenza, ovvero in un runbook è previsto un risultato desiderato. In molti casi, i runbook vengono attivati dopo che un playbook ha individuato una causa principale. 
+  [OPS10-BP01 Utilizzo di un processo per la gestione di eventi, incidenti e problemi](ops_event_response_event_incident_problem_process.md): i runbook costituiscono una best practice per la gestione di eventi, incidenti e problemi. 
+  [OPS10-BP02 Definizione di un processo per ogni avviso](ops_event_response_process_per_alert.md): i runbook e i playbook devono essere utilizzati in risposta agli avvisi. Nel corso del tempo queste reazioni devono essere automatizzate. 
+  [OPS11-BP04 Gestione delle informazioni](ops_evolve_ops_knowledge_management.md): la gestione dei runbook è un elemento fondamentale della gestione delle conoscenze. 

 **Documenti correlati:** 
+ [Achieving Operational Excellence using automated playbook and runbook (Eccellenza operativa mediante playbook e runbook automatizzati)](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/) 
+ [AWS Systems Manager: Working with runbooks (AWS Systems Manager: Utilizzo dei runbook)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+ [Migration playbook for AWS large migrations - Task 4: Improving your migration runbooks (Playbook per la migrazione per migrazioni AWS di grandi dimensioni - Attività 4: Ottimizzazione dei runbook per la migrazione)](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-migration-playbook/task-four-migration-runbooks.html) 
+ [Use AWS Systems Manager Automation runbooks to resolve operational tasks (Utilizzo dei runbook di Automazione AWS Systems Manager per la risoluzione delle attività operative)](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/) 

 **Video correlati:** 
+  [AWS re:Invent 2019: DIY guide to runbooks, incident reports, and incident response (SEC318-R1) (Guida fai da te per runbook, report e risposte relativi agli incidenti [SEC318-R1])](https://www.youtube.com/watch?v=E1NaYN_fJUo) 
+  [How to automate IT Operations on AWS \$1 Amazon Web Services (Procedure di automazione delle operazioni IT in AWS \$1 Amazon Web Services)](https://www.youtube.com/watch?v=GuWj_mlyTug) 
+  [Integrate Scripts into AWS Systems Manager (Integrazione di script in AWS Systems Manager)](https://www.youtube.com/watch?v=Seh1RbnF-uE) 

 **Esempi correlati:** 
+  [AWS Systems Manager: Automation walkthroughs (Procedure di automazione dettagliate)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) 
+  [AWS Systems Manager: Restore a root volume from the latest snapshot runbook (Runbook per il ripristino di un volume root volume dallo snapshot più recente)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-document-sample-restore.html)
+  [Building an AWS incident response runbook using Jupyter notebooks and CloudTrail Lake (Creazione di un runbook per le risposte agli incidenti AWS mediante notebook Jupyter e data lake CloudTrail)](https://catalog.us-east-1.prod.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US) 
+  [Gitlab - Runbooks (Runbook)](https://gitlab.com/gitlab-com/runbooks) 
+  [Rubix - A Python library for building runbooks in Jupyter Notebooks (Rubix - Libreria Python per la creazione di runbook in notebook Jupyter)](https://github.com/Nurtch/rubix) 
+  [Using Document Builder to create a custom runbook (Utilizzo di Document Builder per creare un runbook personalizzato)](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html) 
+  [Well-Architected Labs: 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/) 

 **Servizi correlati:** 
+  [AWS Systems Manager Automation (Automazione AWS Systems Manager)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 

# OPS07-BP04 Utilizzo dei playbook per analizzare i problemi
<a name="ops_ready_to_support_use_playbooks"></a>

 I playbook sono guide dettagliate che vengono utilizzate quando si verificano incidenti per analizzare, valutare l'impatto e identificare la causa principale del problema. I playbook sono utili in molti scenari diversi, dalle implementazioni non riuscite agli incidenti di sicurezza. In molti casi, i playbook identificano la causa principale che viene poi mitigata tramite un runbook. I playbook costituiscono un componente essenziale dei piani di risposta agli incidenti di ogni organizzazione. 

 Un buon playbook include diverse funzionalità chiave che guidano l'utente, passo dopo passo, nel processo di rilevamento. Ma quali passaggi deve eseguire l'utente per diagnosticare un incidente? Illustra chiaramente nel playbook se sono necessari strumenti speciali o autorizzazioni elevate. È essenziale predisporre un piano di comunicazione per aggiornare gli stakeholder sullo stato dell'analisi. Nelle situazioni in cui non è possibile identificare la causa principale, il playbook deve prevedere un piano di escalation. Se viene identificata la causa principale, il playbook deve includere il riferimento di un runbook che descrive come risolvere il problema. I playbook devono essere archiviati centralmente e aggiornati regolarmente. Se i playbook vengono utilizzati per avvisi specifici, fornisci al team i riferimenti dei playbook all'interno degli avvisi. 

 Man mano che l'organizzazione acquisisce maturità, puoi automatizzare i playbook. Inizia con i playbook che trattano incidenti a basso rischio. Utilizza gli script per automatizzare i passaggi di rilevamento. Assicurati di avere i relativi runbook per mitigare le cause principali più comuni. 

 **Risultato desiderato:** l'organizzazione dispone dei playbook per gli incidenti comuni. I playbook sono archiviati in una posizione centrale e disponibili per i membri del team. I playbook vengono aggiornati frequentemente. Per qualsiasi causa principale nota, vengono creati i relativi runbook. 

 **Anti-pattern comuni:** 
+  Non esiste un modo standard per analizzare un incidente. 
+  I membri del team confidano nella "memoria muscolare" o nelle conoscenze istituzionali per risolvere i problemi di un'implementazione non riuscita. 
+  I nuovi membri del team apprendono come analizzare i problemi attraverso tentativi ed errori. 
+  Le best practice per l'analisi dei problemi non sono condivise tra i team. 

 **Vantaggi dell'adozione di questa best practice:** 
+  I playbook rendono più efficaci le tue attività per mitigare gli incidenti. 
+  Uno stesso playbook può essere utilizzato da diversi membri del team in modo da identificare la causa principale in modo coerente. 
+  Le cause principali note possono già disporre di runbook appositamente sviluppati, accelerando i tempi di ripristino. 
+  I playbook accelerano la collaborazione tra i membri del team. 
+  I team possono applicare i processi su vasta scala tramite i playbook ripetibili. 

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

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

 Il modo in cui crei e utilizzi i playbook dipende dalla maturità della tua organizzazione. Se non hai familiarità con il cloud, crea i playbook in formato testo in un repository per i documenti centrale. Man mano che l'organizzazione acquisisce maturità, i playbook possono diventare semi automatizzati tramite script scritti in linguaggi come Python. Questi script possono essere eseguiti all'interno di un notebook Jupyter per accelerare il rilevamento. Le organizzazioni avanzate dispongono di playbook completamente automatizzati per i problemi comuni che vengono risolti automaticamente con i runbook. 

 Inizia a creare i playbook elencando gli incidenti comuni che si verificano nel tuo carico di lavoro. Scegli i playbook per gli incidenti a basso rischio e in cui la causa principale è riconducibile a pochi problemi. Una volta creati i playbook per gli scenari più semplici, passa agli scenari a rischio più elevato o in cui la causa principale non è ancora nota. 

 I playbook in formato testo vengono automatizzati man mano che l'organizzazione acquisisce maturità. Utilizzando servizi come [Automazione AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), il testo normale può essere trasformato in automazioni che possono essere eseguite sul carico di lavoro per accelerare le analisi. Queste automazioni possono essere attivate in risposta agli eventi, riducendo il tempo medio per rilevare e risolvere gli incidenti. 

 I clienti possono utilizzare [Strumento di gestione degli incidenti AWS Systems Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) per rispondere agli incidenti. Questo servizio fornisce un'unica interfaccia per valutare gli incidenti, informare gli stakeholder circa il rilevamento e la mitigazione e collaborare per tutta la durata dell'incidente. Utilizza Automazione AWS Systems Manager per accelerare il rilevamento e il ripristino. 

 **Esempio del cliente** 

 Si è verificato un incidente che ha avuto un impatto sulla produzione della società AnyCompany Retail. L'ingegnere di turno utilizza un playbook per analizzare il problema e man mano che esegue i passaggi, mantiene aggiornati gli stakeholder indicati nel playbook. L'ingegnere identifica la causa principale come una race condition di un servizio di back-end. Utilizzando un runbook, l'ingegnere riavvia il servizio e riporta quindi AnyCompany Retail online. 

## Passaggi dell'implementazione
<a name="implementation-steps"></a>

 Se non è già presente, è consigliabile creare un repository per i documenti con il controllo delle versioni per la libreria di playbook. Puoi creare i tuoi playbook utilizzando Markdown, che è compatibile con la maggior parte dei sistemi di automazione dei playbook. Se parti da zero, utilizza il seguente modello di playbook come esempio. 

```
# Titolo del playbook ## Informazioni sul playbook | ID playbook | Descrizione | Strumenti utilizzati | Autorizzazioni speciali | Autore del playbook | Ultimo aggiornamento | POC di escalation | Stakeholder | Piano di comunicazione | |-------|-------|-------|-------|-------|-------|-------|-------|-------| | RUN001 | A cosa serve questo playbook? Per quale incidente viene utilizzato? | Strumenti | Autorizzazioni | Il tuo nome | 21-09-2022 | Nome dell'escalation | Nome dello stakeholder | Come vengono comunicati gli aggiornamenti durante l'analisi? | ## Passaggi 1. Passaggio 1 2. Passaggio 2
```

1.  Se non disponi di un repository o di un wiki per i documenti, crea nel sistema di controllo delle versioni in uso un nuovo repository con il controllo delle versioni per i tuoi playbook. 

1.  Identifica un problema comune che richieda un'analisi, vale a dire uno scenario in cui la causa principale è riconducibile a pochi problemi e la risoluzione è a basso rischio. 

1.  Utilizzando il modello Markdown, compila la sezione `Titolo del playbook` e i campi in `Informazioni sul playbook`. 

1.  Includi i passaggi per la risoluzione dei problemi. Illustra nel modo più chiaro possibile le azioni da eseguire o le aree da analizzare. 

1.  Chiedi a un membro del team di esaminare e convalidare il tuo playbook. Se manca un'informazione o è necessario un chiarimento, aggiorna il playbook. 

1.  Pubblica il tuo playbook nel repository per i documenti e informa il tuo team e tutti gli stakeholder. 

1.  Questa libreria diventerà sempre più ricca man mano che aggiungi altri playbook. Una volta che sono disponibili diversi playbook, inizia ad automatizzarli con strumenti come Automazione AWS Systems Manager per mantenere sincronizzati l'automazione e i playbook. 

 **Livello di impegno per il piano di implementazione:** basso. I playbook sono documenti di testo archiviati in una posizione centrale. Le organizzazioni che hanno acquisito maturità applicano l'automazione dei playbook. 

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

 **Best practice correlate:** 
+  [OPS02-BP02 Assegnazione di proprietari identificati a processi e procedure](ops_ops_model_def_proc_owners.md): i playbook devono avere un proprietario responsabile della manutenzione. 
+  [OPS07-BP03 Utilizzo di runbook per eseguire le procedure](ops_ready_to_support_use_runbooks.md): i runbook e i playbook sono praticamente simili con un'unica differenza, ovvero in un runbook è previsto un risultato desiderato. In molti casi, i runbook vengono utilizzati dopo che un playbook ha individuato la causa principale. 
+  [OPS10-BP01 Utilizzo di un processo per la gestione di eventi, incidenti e problemi](ops_event_response_event_incident_problem_process.md): i playbook costituiscono una best practice per la gestione di eventi, incidenti e problemi. 
+  [OPS10-BP02 Definizione di un processo per ogni avviso](ops_event_response_process_per_alert.md): i runbook e i playbook devono essere utilizzati in risposta agli avvisi. Nel corso del tempo queste reazioni devono essere automatizzate. 
+  [OPS11-BP04 Gestione delle informazioni](ops_evolve_ops_knowledge_management.md): la manutenzione dei playbook è un elemento chiave della gestione delle conoscenze. 

 **Documenti correlati:** 
+ [ Achieving Operational Excellence using automated playbook and runbook (Eccellenza operativa mediante playbook e runbook automatizzati) ](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/)
+  [AWS Systems Manager: Utilizzo di runbook](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+ [ Use AWS Systems Manager Automation runbooks to resolve operational tasks (Utilizzo dei runbook di Automazione AWS Systems Manager per la risoluzione delle attività operative) ](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/)

 **Video correlati:** 
+ [AWS re:Invent 2019: DIY guide to runbooks, incident reports, and incident response (SEC318-R1) (Guida fai da te per runbook, report e risposte relativi agli incidenti (SEC318-R1)) ](https://www.youtube.com/watch?v=E1NaYN_fJUo)
+ [Strumento di gestione degli incidenti AWS Systems Manager - AWS Virtual Workshops (Workshop virtuali AWS) ](https://www.youtube.com/watch?v=KNOc0DxuBSY)
+ [ Integrate Scripts into AWS Systems Manager (Integrazione di script in AWS Systems Manager) ](https://www.youtube.com/watch?v=Seh1RbnF-uE)

 **Esempi correlati:** 
+ [AWS Customer Playbook Framework (Framework di playbook del cliente AWS) ](https://github.com/aws-samples/aws-customer-playbook-framework)
+ [AWS Systems Manager: Automation walkthroughs (Procedure di automazione dettagliate) ](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html)
+ [ Building an AWS incident response runbook using Jupyter notebooks and CloudTrail Lake (Creazione di un runbook per le risposte agli incidenti AWS mediante notebook Jupyter e data lake CloudTrail) ](https://catalog.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US)
+ [ Rubix - A Python library for building runbooks in Jupyter Notebooks (Rubix - Libreria Python per la creazione di runbook in notebook Jupyter) ](https://github.com/Nurtch/rubix)
+ [ Using Document Builder to create a custom runbook (Utilizzo di Document Builder per creare un runbook personalizzato) ](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html)
+ [ Well-Architected Labs: 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/)
+ [ Well-Architected Labs: Incident response playbook with Jupyter (Well-Architected Labs: playbook di risposta agli incidenti con Jupyter) ](https://www.wellarchitectedlabs.com/security/300_labs/300_incident_response_playbook_with_jupyter-aws_iam/)

 **Servizi correlati:** 
+ [ Automazione AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)
+ [Strumento di gestione degli incidenti AWS Systems Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html)

# OPS07-BP05 Adozione di decisioni informate per implementare sistemi e modifiche
<a name="ops_ready_to_support_informed_deploy_decisions"></a>

Predisponi processi per la gestione delle modifiche efficaci e infruttuose al carico di lavoro. Si definisce "pre-mortem" un esercizio in cui il team simula un errore per sviluppare strategie di mitigazione. Utilizza questo esercizio per prevedere errori e creare procedure ove opportuno. Valuta i vantaggi e i rischi dell'implementazione di modifiche nel carico di lavoro. Verifica che tutte le modifiche siano conformi ai requisiti di governance. 

 **Risultato desiderato:** 
+  Adozione di decisioni informate durante l'implementazione di modifiche nel carico di lavoro. 
+  Le modifiche sono conformi ai requisiti di governance. 

 **Anti-pattern comuni:** 
+ Implementazione di una modifica nel carico di lavoro senza un processo per la gestione di un'implementazione errata.
+ Applicazione di modifiche all'ambiente di produzione che non sono conformi ai requisiti di governance.
+ Implementazione di una nuova versione del carico di lavoro senza stabilire valori di riferimento per l'utilizzo delle risorse.

 **Vantaggi dell'adozione di questa best practice:** 
+  L'azienda è preparata all'effetto di modifiche infruttuose al carico di lavoro. 
+  Le modifiche apportate al carico di lavoro sono conformi ai criteri di governance. 

 **Livello di rischio associato alla mancata adozione di questa best practice:** basso 

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

 Usa esercizi pre-mortem per sviluppare processi per la gestione di modifiche infruttuose. Documenta i processi di gestione delle modifiche infruttuose. Verifica che tutte le modifiche siano conformi ai requisiti di governance. Valuta i vantaggi e i rischi dell'implementazione di modifiche nel carico di lavoro. 

 **Esempio del cliente** 

 AnyCompany Retail svolge regolarmente esercizi pre-mortem per convalidare i propri processi di gestione delle modifiche infruttuose. L'azienda documenta i propri processi in un Wiki condiviso che aggiorna spesso. Tutte le modifiche sono conformi ai requisiti di governance. 

 **Passaggi dell'implementazione** 

1.  Prendi decisioni informate durante l'implementazione di modifiche nel carico di lavoro. Definisci ed esamina i criteri per un'implementazione corretta. Sviluppa scenari o criteri che attiverebbero il ripristino dello stato precedente a una modifica. Soppesa i vantaggi dell'implementazione di modifiche rispetto ai rischi di una modifica infruttuosa. 

1.  Verifica che tutte le modifiche siano conformi ai requisiti di governance. 

1.  Usa esercizi pre-mortem per pianificare la gestione delle modifiche infruttuose e documentare le strategie di mitigazione. Esegui un esercizio di simulazione di un'emergenza per modellare una modifica infruttuosa e convalidare le procedure di ripristino dello stato precedente. 

 **Livello di impegno per il piano di implementazione:** moderato. L'implementazione di una procedura di pre-mortem richiede il coordinamento e l'impegno degli stakeholder in tutta l'organizzazione 

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

 **Best practice correlate:** 
+  [OPS01-BP03 Valutazione dei requisiti di governance](ops_priorities_governance_reqs.md) – I requisiti di governance sono un fattore chiave per determinare se implementare una modifica. 
+  [OPS06-BP01 Preparazione di un piano in caso di esito negativo delle modifiche](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) – Predisponi piani per mitigare un'implementazione non riuscita e usa esercizi di pre-mortem per convalidarli. 
+  [OPS06-BP02 Test e convalida delle modifiche](ops_mit_deploy_risks_test_val_chg.md) – Ogni modifica software deve essere testata nel modo adeguato prima dell'implementazione per ridurre gli errori nell'ambiente di produzione. 
+  [OPS07-BP01 Verifica della capacità del personale](ops_ready_to_support_personnel_capability.md) – La presenza di personale qualificato sufficiente per supportare il carico di lavoro è essenziale per prendere una decisione informata riguardo all'implementazione di una modifica di sistema. 

 **Documenti correlati:** 
+ [Amazon Web Services: rischio e conformità](https://docs.aws.amazon.com/whitepapers/latest/aws-risk-and-compliance/welcome.html)
+ [ Modello di responsabilità condivisa AWS](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [ Governance nel Cloud AWS: il giusto equilibrio tra agilità e sicurezza ](https://aws.amazon.com/blogs/apn/governance-in-the-aws-cloud-the-right-balance-between-agility-and-safety/)

# OPS07-BP06 Abilitazione dei piani di supporto per i carichi di lavoro di produzione
<a name="ops_ready_to_support_enable_support_plans"></a>

 Abilita il supporto per qualsiasi software e servizio a cui si affida il tuo carico di lavoro di produzione. Seleziona un livello di supporto adeguato per soddisfare le esigenze di assistenza della produzione. I piani di supporto per queste dipendenze sono necessari nel caso si verifichi un'interruzione del servizio o un problema di software. Documenta i piani di supporto e come chiedere assistenza per tutti i servizi e i fornitori di software. Implementa meccanismi di verifica per controllare che i riferimenti del supporto siano aggiornati. 

 **Risultato desiderato:** 
+  Implementa piani di supporto per software e servizi a cui si affidano i carichi di lavoro di produzione. 
+  Scegli un piano di supporto adeguato in base alle esigenze di assistenza. 
+  Documenta i piani e i livelli di supporto e come richiedere assistenza. 

 **Anti-pattern comuni:** 
+  Non hai piani di supporto per un fornitore software strategico. Il tuo carico di lavoro è coinvolto e non puoi fare nulla per accelerare un intervento risolutivo o per ricevere aggiornamenti tempestivi dal fornitore. 
+  Uno sviluppatore, che era il punto di contatto primario di un fornitore di software, ha lasciato l'azienda. Non puoi contattare direttamente l'assistenza del fornitore. Devi investire il tuo tempo per cercare le informazioni e orientarti tra sistemi di contatto generici, aumentando così il livello di impegno richiesto per intervenire quando necessario. 
+  Si verifica un'interruzione della produzione con un fornitore di software. Non esiste una documentazione su come inserire una richiesta di assistenza. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Con il livello di supporto adeguato, puoi ottenere una risposta nei tempi previsti per soddisfare le esigenze in termini di livelli di servizio. 
+  In caso di problemi in produzione, puoi inoltrare il problema se sei un cliente assistito. 
+  Fornitori di software e servizi possono essere di aiuto per la risoluzione dei problemi durante un incidente. 

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

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

 Abilita i piani di supporto per qualsiasi fornitore di software e servizi a cui si affida il tuo carico di lavoro di produzione. Configura piani di supporto adeguati per soddisfare le esigenze di assistenza. Per i clienti AWS, questo significa abilitare il supporto Business di AWS o superiore su qualsiasi account su cui hai carichi di lavoro di produzione. Incontra con regolarità i fornitori del servizio di assistenza per ricevere aggiornamenti sulle offerte di supporto, sui processi e sui contatti. Documenta come richiedere assistenza ai fornitori di software e servizi, incluso come inoltrare il problema in caso si verificasse un'interruzione. Implementa meccanismi di aggiornamento dei contatti del supporto. 

 **Esempio del cliente** 

 In AnyCompany Retail, tutte le dipendenze di servizi e software commerciali hanno piani di supporto. Ad esempio, hanno il supporto Enterprise di AWS abilitato su tutti gli account con carichi di lavoro di produzione. In caso di problemi, qualsiasi sviluppatore può inserire una richiesta di assistenza. Esiste una pagina wiki con informazioni su come richiedere assistenza, chi contattare e quali best practice seguire per accelerare il processo di risoluzione. 

 **Passaggi dell'implementazione** 

1.  Lavora con le parti interessate all'interno della tua organizzazione per identificare i fornitori di software e servizi su cui si basa il tuo carico di lavoro. Documenta queste dipendenze. 

1.  Stabilisci le esigenze in termini di assistenza del tuo carico di lavoro. Seleziona un piano di supporto in linea con tali esigenze. 

1.  Per software e servizi commerciali definisci un piano di supporto con i fornitori. 

   1.  Sottoscrivere il supporto Business di AWS o un livello superiore per tutti gli account di produzione garantisce tempi di risposta più rapidi da Supporto AWS ed è una scelta fortemente consigliata. Se non hai il supporto premium, devi avere un piano di azione per gestire i problemi, che richiede l’aiuto di Supporto AWS. Supporto AWS offre un mix di strumenti e tecnologie, persone e programmi progettati per aiutarti in modo proattivo a ottimizzare le performance, ridurre i costi e innovare più rapidamente. Il supporto Business di AWS offre vantaggi aggiuntivi, tra cui l'accesso a AWS Trusted Advisor e ad AWS Personal Health Dashboard, nonché tempi di risposta più rapidi. 

1.  Documenta il tuo piano di supporto nello strumento di gestione delle conoscenze. Includi come richiedere assistenza, chi avvertire se viene inviata una richiesta di assistenza e come inoltrare il problema durante un incidente. Un wiki è un buon meccanismo che consente a tutti di apportare gli aggiornamenti necessari alla documentazione, nel momento in cui vengono a conoscenza di modifiche a processi o contatti del supporto. 

 **Livello di impegno per il piano di implementazione:** Basso. La maggior parte di fornitori di servizi e software offre piani di supporto da attivare. Documentando e condividendo le best practice di supporto sul tuo sistema di gestione delle conoscenze puoi verificare che il tuo team sappia cosa fare quando si verifica un problema in produzione. 

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

 **Best practice correlate:** 
+  [OPS02-BP02 Assegnazione di proprietari identificati a processi e procedure](ops_ops_model_def_proc_owners.md) 

 **Documenti correlati:** 
+ [ Piani Supporto AWS](https://docs.aws.amazon.com/awssupport/latest/user/aws-support-plans.html)

 **Servizi correlati:** 
+ [ Supporto del Business AWS](https://aws.amazon.com/premiumsupport/plans/business/)
+ [ Supporto Enterprise AWS](https://aws.amazon.com/premiumsupport/plans/enterprise/)