

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# La cartina di CI/CD tornasole: la tua pipeline è completamente CI/CD?
<a name="introduction"></a>

*Steven Guggenheimer e Ananya Koduri, Amazon Web Services ()AWS*

*Agosto 2023* ([cronologia dei documenti](doc-history.md))

La tua pipeline è automatizzata? È una domanda semplice, ma molte organizzazioni affrontano la risposta in modo troppo semplice. La risposta è molto più complicata di un *sì* o di un *no*.

Le innovazioni tecnologiche avvengono costantemente e a volte può essere difficile per le organizzazioni tenere il passo. Questa novità è una moda passeggera o è la prossima grande novità? Devo rivedere le mie pratiche attuali o devo aspettare? Spesso, quando diventa chiaro che qualcosa è davvero la prossima grande novità, ci si ritrova a giocare a recuperare il ritardo. *L'integrazione continua e la distribuzione continua* (CI/CD) sono destinate a rimanere, ma non è sempre stato così. Molte persone hanno impiegato molto tempo per essere convinte, e alcune hanno ancora bisogno di essere convinte di più.

CI/CD is the process of automating the source, build, test, staging, and production stages of the software release process, and it is commonly described as a pipeline. Today, the cost savings and speed of CI/CDle automazioni hanno convinto la maggior parte delle organizzazioni del suo valore. Ma passare a questo nuovo approccio non è un compito facile. È necessario assicurarsi che il personale riceva la formazione giusta, è necessario potenziare alcune risorse e poi è necessario testare, testare, testare. C'è molto da fare. Nella maggior parte dei casi, si desidera apportare queste modifiche gradualmente per aiutare l'organizzazione ad adattarsi.

Lo scopo di questo documento è definire cosa significa avere un CI/CD processo completo. Fornisce uno strumento per valutare i propri processi e presenta un percorso da seguire per processi che non sono ancora disponibili. Questo percorso verso il futuro è raramente una conversione dall'oggi al domani. Questi processi sono complessi e dipendono da molti fattori, tra cui le attuali competenze dei dipendenti e le attuali esigenze di infrastruttura. Ti consigliamo di stabilire le priorità e apportare piccole modifiche incrementali.

## Obiettivi
<a name="objectives"></a>

Di seguito sono riportati i potenziali vantaggi derivanti dall'implementazione delle raccomandazioni contenute in questa guida:
+ **Efficienza**: un processo di CI/CD implementazione completo può ridurre la complessità, i carichi di lavoro e le innumerevoli ore dedicate al debug, all'esecuzione di processi manuali e alla manutenzione. Per ulteriori informazioni, consulta [Vantaggi della distribuzione continua](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/benefits-of-continuous-delivery.html). Secondo un [post TechAhead sul blog](https://www.techaheadcorp.com/blog/how-ci-cd-save-app-development-time/), l'implementazione del CI/CD processo può portare a un risparmio stimato del 20% in termini di tempo, impegno e risorse.
+ **Riduzione dei costi** — Secondo un [rapporto di Forbes Insight](https://www.forbes.com/sites/forbesinsights/2017/03/16/how-it-service-management-delivers-value-to-the-digital-enterprise/), «Tre dirigenti su quattro concordano sul fatto che la quantità di tempo, denaro e risorse spesi per la manutenzione e la gestione continue, rispetto allo sviluppo di nuovi progetti o nuove iniziative, influisca sulla competitività complessiva della loro organizzazione». Più breve è il ciclo di sviluppo, maggiori sono le possibilità che l'organizzazione possa raggiungere obiettivi ambiziosi time-to-market e cogliere le opportunità giuste al momento giusto.
+ **Velocità**: in genere, una CI/CD pipeline is able to release software changes to customers within a few hours. Especially in cases with quick fault isolations and small patch pushes, the CI/CD pipeline completa aiuta a migliorare il tempo medio di ripristino (MTTR). [Per ulteriori informazioni, vedere Riduzione dell'MTTR.](https://docs.aws.amazon.com/whitepapers/latest/availability-and-beyond-improving-resilience/reducing-mttr.html)
+ **Sicurezza**: CI/CD le pipeline complete proteggono anche il processo di rilascio riducendo i possibili punti di ingresso per gli attacchi e riducendo il rischio di errore umano. I vantaggi in termini di sicurezza derivanti da CI/CD pipeline completamente automatizzate aiutano a evitare le costose conseguenze di violazioni dei dati, interruzioni del servizio e altro ancora.
+ **Riduzione del tasso di attrito**: gli sviluppatori sono più soddisfatti quando possono dedicare più tempo alla creazione di ottime funzionalità e meno tempo a dedicare meno tempo a un ciclo infinito di manutenzione e debug. Per le organizzazioni, ciò significa acquisire e trattenere i migliori talenti per periodi di tempo più lunghi.
+ **Codice di qualità superiore**: gli sviluppatori rilasciano il codice in un repository condiviso in piccoli batch, il che consente loro di condurre [test paralleli](https://www.browserstack.com/guide/what-is-parallel-testing) (post BrowserStack sul blog). Piuttosto che lavorare in modo isolato, condividono spesso le loro build con il team e collaborano per identificare i bug critici. Ciò fornisce supporto agli sviluppatori, il che aiuta a impedire che codice errato venga messo in produzione. Il supporto dei colleghi sviluppatori contribuisce a rilasci di alta qualità e favorisce la crescita organizzativa.
+ **Manutenzione**: la manutenzione e gli aggiornamenti sono fondamentali per realizzare un ottimo prodotto. Tuttavia, non spegnete il sistema durante le ore di punta del traffico. È possibile utilizzare una CI/CD pipeline per eseguire la manutenzione durante le ore di utilizzo ridotto, in modo da ridurre al minimo i tempi di inattività e gli impatti sulle prestazioni.