Home topics Introduzione a Continuous Delivery Che cos'è la fornitura continua?
La fornitura continua consente ai team di sviluppo di automatizzare il processo che sposta il software attraverso il ciclo di vita del suo sviluppo
Iscriviti alla newsletter IBM
Sfondo nero e blu
Che cos'è la fornitura continua?

La fornitura continua permette ai team di sviluppo di automatizzare il processo che sposta il software attraverso il ciclo di vita del suo sviluppo, ed è in grado di fornire molti vantaggi durante il provisioning di un kit di strumenti integrato, fra cui:

  • Ridurre i tempi di implementazione attraverso test e sviluppo continui

  • Riduci i costi connessi allo sviluppo software tradizionale

  • Scala lo sviluppo del software in base alle dimensioni del progetto

  • Distribuisci il codice automaticamente in ogni fase del ciclo di sviluppo

Nel seguente video, Eric Minick spiega di più sulla fornitura continua:

Le procedure migliori di fornitura continua

Di seguito è riportato un insieme di procedure migliori da valutare quando si utilizza la fornitura continua:

  • Rendi rilasciabili tutte le modifiche: se si utilizza la fornitura continua per rendere rilasciabili tutte le modifiche, occorre includere documentazione utente, runbook operativi e informazioni sulle modifiche, a fini di verifica.

  • Adotta lo sviluppo basato su trunk: la fornitura continua si basa sull'integrazione continua. Evita rami che ritardano il più possibile l'integrazione in modo che ogni modifica venga creata, testata e distribuita insieme per un feedback più rapido.

  • Distribuisci tramite una pipeline automatizzata: per implementare con successo la fornitura continua, è necessaria una delivery pipeline automatizzata e ben costruita, per garantire che tutte le versioni del codice vengano spostate negli ambienti di test e di produzione in modo coerente.

  • Automatizza il più possibile: nella fornitura continua, è necessario automatizzare il maggior numero possibile di processi nel ciclo di vita di sviluppo del software per creare una pipeline di distribuzione valida e affidabile, non solo per le build e le distribuzioni del codice, ma anche per la creazione di nuovi ambienti di sviluppo.

  • Evita tempi di inattività: per garantire la disponibilità dell'applicazione mentre si effettuano aggiornamenti frequenti e continui, quando si invia una nuova funzione alla produzione, è necessario convalidarla prima di distribuirla all'istanza pubblica dell'applicazione in esecuzione.

  • Release alla quantità dei dettagli del test: se due parti di un sistema devono essere testate insieme, devono essere rilasciate insieme in modo da verificare che le parti del sistema siano compatibili. Gli strumenti di automazione della release sono efficaci per coordinare questo tipo di consegna. In alternativa, occorre disaccoppiare completamente.
Pipeline/framework continuo

Per sfruttare i vantaggi della fornitura continua, sono necessari altri elementi del framework continuo, come l'esplorazione continua, l'integrazione continua, la distribuzione continua e il release on demand.

Quando si utilizzano le fasi della pipeline di fornitura continua, occorre dividerle in job distinti, ovvero unità di esecuzione all'interno di uno stadio:

  • Job della build: compila il progetto nel job della build per prepararti alla distribuzione, dove è possibile generare artefatti da inviare a una directory di archiviazione della build.

  • Distribuisci processi: carica il progetto nella pipeline di fornitura continua come applicazione a cui puoi accedere da un URL. Dopo aver distribuito il progetto, lo visualizzerai nella dashboard.

  • Job di prova: personalizza e includi i job di prova prima o dopo la creazione e la distribuzione dei job in base alla tua suite di test unitari o test funzionali con servizi di test di terza parte.

La pipeline di fornitura continua può aiutare i team di sviluppo a:

  • Automatizzare le build, i test unitari e l'implementazione

  • Modificare e inviare codice utilizzando i repository del Git, il tracciamento dei problemi e l'IDE (Integrated Development Environment) basato sul web

  • Creare una casella degli strumenti integrata DevOps per creare, distribuire e gestire le app con servizi, strumenti open source e strumenti di terza parte

  • Modifica il tuo codice ovunque tu scelga di utilizzare l'IDE per creare, modificare, eseguire, eseguire il debug e completare attività di controllo del codice sorgente

  • Usa la pipeline automatizzata per fornire continuamente build, prove e implementazioni in modo ripetibile

  • Migliora la qualità comprendendo lo stato della build, i risultati della scansione di sicurezza, l'apertura del codice e il completamento test in modo da poter valutare se promuovere l'app nell'ambiente successivo (tramite politiche per garantire automaticamente la qualità prima della promozione)
Distribuzione continua e fornitura continua

La distribuzione continua può far parte di una pipeline di fornitura continua. Nello specifico, la fornitura continua è il movimento automatizzato del codice nel ciclo di vita dello sviluppo (a volte definito ciclo di vita di consegna); la distribuzione continua è lo spostamento automatizzato del codice in produzione, una volta superati i test automatizzati necessari.

L'inclusione della distribuzione continua nella pipeline di distribuzione dipende dalle necessità di business. Se il business necessita che il team di consegna rilasci software nuovo o aggiornato in produzione in modo ripetuto, affidabile o il più rapidamente possibile o se la soluzione ha più dipendenze, è probabile che si possa beneficiare della distribuzione continua.

Per ulteriori informazioni sulle differenze tra distribuzione continua e fornitura continua, è disponibile questo video:

Strumenti di fornitura continua

Uno strumento di fornitura continua consente di utilizzare strumenti open source per creare, distribuire e gestire le applicazioni. Integrando set di strumenti, puoi creare attività ripetibili e gestibili, non solo per il tuo team di sviluppo, ma anche per il tuo gruppo operazioni.

La tua casella degli strumenti può includere gli attuali cloud service, strumenti open source e di terza parte, ma dovrai anche prendere in considerazione uno strumento di fornitura continua che includa quanto segue:

  • Modelli ripetibili per l'automazione della build e della distribuzione. Se funziona per una delle app, dovrebbe funzionare anche per altre. Non lasciare il team in difficoltà con la configurazione in autonomia.

  • Una pipeline, che consente di creare automaticamente quando apporti modifiche, distribuire nel cloud, incorporare build e implementazioni nelle toolchain e gestire le implementazioni nella toolchain.

  • Strumenti per la collaborazione del team, la pianificazione, la gestione del codice sorgente e i test.

  • Strumenti che evidenzino i punti in cui il team si muove rapidamente e quelli in cui si blocca, fornendo una guida per diventare "più continui".

Strumenti di fornitura continua open source utilizzabili per una solida pipeline di fornitura continua, tra cui Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD e GitLab CI.

Agile e DevOps

Fornitura continua agile

In precedenza, si rilasciava il software solo una volta e poi lo si aggiornava. Quindi si consultavano i clienti solo all'inizio e alla fine per capire se il software soddisfaceva le loro esigenze.

Agile è un modo di produrre software in brevi iterazioni su un programma di pianificazione continua e l'attuale processo di fornitura continua agile significa che è possibile rilasciare il codice al cliente non appena ogni caratteristica definita diventa disponibile. Lo sviluppo agile e la fornitura continua sono le chiavi per far arrivare le funzioni ai clienti non appena sono pronte per la produzione. L'obiettivo è avere ciascuna funzione pronta per il rilascio non appena esce dalla pipeline.

Maggiori informazioni sui vantaggi dei principi agili.

DevOps e fornitura continua

Negli ultimi due decenni, lo sviluppo del software ha subito cambiamenti significativi, passando dal concetto a cascata standard alla metodologia agile più efficiente. Per adattarsi, è necessario passare a un approccio incentrato su agile, DevOps e fornitura continua. Nell'ambito di una pipeline di fornitura continua, questi processi mirati consentono release e aggiornamenti del software più affidabili e di alta qualità.

Man mano che lo sviluppo agile consente release del software più rapide e di dimensioni più ridotte, l'attenzione si concentra sui singoli stadi di sviluppo del software. Al contempo, DevOps consente di concentrarsi sul "quadro generale" e sul cambiamento culturale, in quanto i dipartimenti sviluppo e operazioni si fondono strettamente in un unico team che lavora sull'intero ciclo di vita dello sviluppo del software, dalla codifica ai test, dalla distribuzione al supporto.

Per i dettagli del processo DevOps, guarda il video qui sotto:

Soluzioni correlate
IBM Cloud Continuous Delivery

IBM Continuous Delivery è un cloud service che aiuta il provisioning di toolchain, l'automatizzazione di build e test e il controllo qualità con l'analytics.

Esplora IBM Cloud Continuous Delivery
IBM UrbanCode

La famiglia di prodotti software IBM UrbanCode aiuta a distribuire software sul mercato più rapidamente accelerando la consegna delle applicazioni e riducendo i processi manuali.

Esplora IBM UrbanCode
Tekton on IBM® Cloud

Crea pipeline CI/CD native per Kubernetes con la massima velocità e flessibilità.

Esplora Tekton on IBM Cloud
Risorse Che cos'è DevOps?

DevOps accelera la consegna di software di qualità superiore combinando e automatizzando il lavoro dei team di sviluppo software e delle operazioni IT.

Che cos'è l'integrazione continua?

L'integrazione continua è un processo di sviluppo iterativo in cui gli sviluppatori integrano il nuovo codice nella base di codice almeno una volta al giorno.

Che cosa sono l'IR/CD e la pipeline CI/CD?

Guida pratica alla pipeline di integrazione continua/fornitura continua (CI/CD).

Fai il passo successivo

Vuoi avviare DevOps? Per fornire software e servizi alla velocità richiesta dal mercato, i team devono iterare e sperimentare rapidamente e distribuire frequentemente nuove versioni, guidati dal feedback e dai dati. I team di sviluppo cloud di maggior successo adottano cultura e pratiche DevOps moderne, architetture cloud-native e assemblano toolchain a partire dagli strumenti migliori della categoria per liberare la propria produttività.

Trova la tua soluzione DevOps