Cos'è DevOps?

27 maggio 2025

Autori

Gregg Lindemulder

Staff Writer

Matthew Kosinski

Enterprise Technology Writer

Cos'è DevOps?

DevOps è una metodologia di sviluppo software che accelera la fornitura di applicazioni e servizi ad alte prestazioni combinando e automatizzando il lavoro dei team di sviluppo software (Dev) e delle operazioni IT (Ops).

DevOps delinea sia un processo di sviluppo software sia un cambiamento nella cultura organizzativa che promuove il coordinamento e la collaborazione tra il team di sviluppo e i team di operazioni IT . Solitamente, questi due gruppi lavoravano separatamente l'uno dall'altro in silo distinti. Nella metodologia DevOps, invece, lavorano come un unico team con strumenti e pratiche condivise.

Le caratteristiche di DevOps sono l'integrazione continua e la distribuzione continua (CI/CD), che supportano aggiornamenti software più piccoli e veloci. Con la CI/CD, piccoli frammenti del nuovo codice vengono uniti alla base di codice a intervalli frequenti, per poi essere integrati, testati e preparati automaticamente per l'implementazione nell'ambiente di produzione.

DevOps è un'evoluzione della metodologia di sviluppo software agile, emersa come alternativa alla metodologia a cascata. Nell'approccio a cascata, i team di sviluppo software trascorrevano mesi a sviluppare grandi corpi di codice che poi venivano sottoposti a mesi di test prima del rilascio. Al contrario, lo sviluppo agile adotta un approccio iterativo al ciclo di vita della distribuzione del software.

DevOps aggiunge nuovi processi e strumenti alla metodologia agile, in particolare l'automazione di gran parte della pipeline CI/CD.

In definitiva, DevOps mira a soddisfare la domanda da parte degli utenti di software di nuove funzionalità frequenti e innovative e di prestazioni e disponibilità ininterrotte.

IBM DevOps

Cos'è DevOps?

Andrea Crawford spiega cos'è DevOps, il suo valore e in che modo le pratiche e gli strumenti DevOps ti aiutano a spostare le tue app nell'intera delivery pipeline, dall'ideazione alla produzione. Guidato dai principali leader di pensiero IBM, il curriculum è progettato con lo scopo di aiutare i leader aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti nell'AI che possono promuovere la crescita.

Come funziona DevOps

DevOps comporta sia una serie di workflow automatizzati, chiamati "ciclo di vita DevOps", sia un cambiamento culturale per supportare tali workflow.

Il ciclo di vita di DevOps

Il ciclo di vita DevOps è progettato per ottimizzare la distribuzione rapida di software di alta qualità. Include una serie di workflow iterativi e automatizzati che vengono eseguiti all'interno di un ciclo di vita di sviluppo automatizzato e iterativo più ampio.

I nomi e gli ordini dei workflow possono variare tra le organizzazioni, ma il DevOps include in genere otto passaggi principali.

Pianificazione

Innanzitutto, i team individuano nuove caratteristiche e funzioni per la prossima versione. Durante questo workflow, attingono al feedback degli utenti, ai case study e agli input degli stakeholder interni, come ingegneri di piattaforma e infrastruttura, team di sicurezza, alla conformità, alla governance, alla gestione del rischio e ai team di linea di business.

L'obiettivo della fase di pianificazione è creare un documento di backlog, cioè un un elenco prioritario di nuove caratteristiche, miglioramenti e correzioni di bug che verranno aggiunti al prodotto nel tempo.

Codifica

Il team DevOps codifica le caratteristiche nuove e migliorate identificate nel backlog. Le pratiche di codifica comuni di DevOps includono:

  • Sviluppo basato sui test (TDD): gli sviluppatori per prima cosa creano i test che il codice deve superare, per poi scrivere il codice stesso.

  • Programmazione in coppia: due programmatori collaborano sulla stessa postazione di lavoro, in cui uno scrive il codice e l'altro lo valuta.

  • Revisione del codice tra pari: i membri del team di sviluppo rivedono il codice degli altri per individuare bug, errori o aree da migliorare.

Gli sviluppatori solitamente utilizzano le proprie postazioni locali per scrivere e testare il codice prima di inviarlo al passaggio successivo della pipeline di distribuzione continua.

Creazione

Il nuovo codice viene integrato nella base di codice esistente, quindi testato e inserito in un pacchetto per il rilascio e l'implementazione. In questa fase, le attività che spesso vengono automatizzate includono l'unione delle modifiche al codice in una copia master, l'inserimento del codice aggiornato in un repository e la compilazione, il test e il confezionamento del codice in un file eseguibile.

In DevOps, l'output della fase di creazione viene spesso memorizzato in un repository binario che, a differenza di un repository di codice sorgente, memorizza gli output, per esempio librerie e file eseguibili, per riutilizzarli in altre fasi del ciclo di vita dello sviluppo.

Test

I team di DevOps utilizzano i test, solitamente automatizzati, per assicurarsi che l'applicazione aggiornata soddisfi gli standard e i requisiti appropriati.

L'approccio DevOps classico include una fase di test discreta che si verifica tra la creazione e il rilascio. Tuttavia, DevOps è progredito in modo tale che alcuni elementi di test possono avere luogo durante tutto il processo. Durante la fase di codifica è possibile eseguire gli unit test, ovvero il test di piccole parti di codice in isolamento che viene analizzato dai programmi di linting alla ricerca di errori.

Il test continuo aiuta a implementare il principio di test shift-left, un approccio nello sviluppo software che anticipa le attività di test nel processo di sviluppo. Questo approccio aiuta le organizzazioni a identificare i problemi prima e a risolverli in modo più efficace. 

Rilascio

La fase di rilascio è l'ultimo workflow prima che gli utenti possano accedere all'applicazione. Questa fase comprende una serie di test finali per garantire che il software soddisfi gli standard di qualità, conformità e sicurezza e che sia pronto per l'uso esterno.

Se vengono rilevati errori o difetti, il team può intercettare e risolvere eventuali problemi prima che gli utenti li vedano. Una volta risolti tutti i problemi e soddisfati tutti i requisiti, l'applicazione può essere rilasciata nell'ambiente di produzione. Nella maggior parte delle pipeline DevOps, questo processo è ampiamente automatizzato.

La fase di rilascio può anche includere la fornitura di componenti infrastrutturali come server, database e bilanciatori di carico. Per automatizzare questo processo, DevOps utilizza spesso l'infrastruttura come codice

Distribuisci

In questa fase, il progetto viene spostato in un ambiente di produzione a cui gli utenti possono accedere per utilizzare l'applicazione aggiornata.

Molte organizzazioni distribuiscono prima l'applicazione a un sottoinsieme di utenti finali per garantire che funzioni correttamente. Una volta raggiunta la stabilità, viene distribuita a tutti.

Operare

In questa fase, i team DevOps verificano che le nuove caratteristiche funzionino senza intoppi e siano disponibili per gli utenti senza interruzioni di servizio utilizzando strumenti di osservabilità e gestione automatizzati per monitorare e ottimizzare continuamente le operazioni e assicurarsi che la rete, lo storage, la piattaforma, la capacità di elaborazione e il livello di sicurezza funzionino correttamente.

Monitora

In questa fase, i team raccolgono e analizzano il feedback degli utenti e le lezioni apprese dai workflow precedenti per migliorare i processi e i prodotti in futuro. Questo monitoraggio continuo di caratteristiche, funzioni, prestazioni e valore aziendale crea la base di informazioni per pianificare le caratteristiche e i miglioramenti delle nuove versioni.

Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Cultura DevOps

La cultura DevOps è caratterizzata da un profondo impegno per la collaborazione, la comunicazione e l'automazione.

A livello di gestione dei progetti, DevOps richiede una comunicazione continua e una responsabilità condivisa tra tutti gli stakeholder alla distribuzione del software per innovare rapidamente e concentrarsi sulla qualità sin dall'inizio. Gli stakeholder includono ovviamente i team di sviluppo del software e delle operazioni IT, ma anche i team di conformità, governance, rischio, linea di business e sicurezza.

A livello tecnico, DevOps richiede un impegno verso gli strumenti automatizzati che mantiene i progetti in movimento all'interno dei workflow e tra l'uno e l'altro. Ad esempio, i test automatizzati, l'implementazione e la fornitura di componenti infrastrutturali contribuiscono ad accelerare la distribuzione dei progetti e a ridurre gli errori.

DevOps richiede anche feedback e misurazione per consentire ai team di ottimizzare continuamente i cicli e migliorare la qualità e le prestazioni del software.

Per adottare una cultura DevOps, le organizzazioni devono spesso abbattere i silo e riorganizzare il personale in team DevOps interfunzionali e autonomi che lavorino sui progetti dall'inizio alla fine (cioè dalla pianificazione al feedback) senza passare il testimone né attendere l'approvazione di altri team. Nel contesto dello sviluppo software agile, la responsabilità e la collaborazione condivise sono la base di un focus condiviso sul valore e per raggiungere risultati di livello superiore.

Che cos'è DevSecOps?

DevSecOps è l'abbreviazione di sviluppo, sicurezza e operazioni, un'estensione di DevOps che include pratiche di cybersecurity e team di sicurezza in ogni fase dello sviluppo del software.

In passato, la sicurezza veniva "aggiunta" alla fine del ciclo di sviluppo, quasi come un ripensamento. Un team di sicurezza separato applicava le misure di sicurezza e poi un altro team separato che si occupava del controllo qualità (QA) verificava tali misure.

DevSecOps integra la sicurezza delle applicazioni e dell'infrastruttura nelle pratiche e negli strumenti DevOps dall'inizio del ciclo di vita dello sviluppo software. Affronta i problemi di sicurezza nel momento in cui emergono, quando è più facile, più veloce e meno costoso risolverli, e prima della messa in produzione.

Grazie a questa capacità di accelerare la distribuzione del software, ridurre i costi e migliorare il livello di sicurezza, molte organizzazioni hanno iniziato ad adottare DevSecOps come approccio a DevOps.

Benefici di DevOps

Collaborazione migliore

Avvicinando il lavoro degli sviluppatori e delle operazioni, DevOps aumenta l'efficienza e riduce i workload. Poiché gli sviluppatori e i team operativi condividono workflow e responsabilità, ci sono meno sorprese man mano che i progetti avanzano. I team in questo modo possono capire più chiaramente come dovrebbe funzionare il loro codice nell'ambiente di runtime.

Consegna accelerata

I team DevOps possono distribuire più rapidamente il nuovo codice attraverso una maggiore collaborazione e l'uso di architetture di microservizi, in cui ogni applicazione è composta da più componenti liberamente accoppiati e distribuibili in modo indipendente.

Con i microservizi, i team separati possono lavorare contemporaneamente su più componenti delle nuove versioni per accelerare i cicli di sviluppo. Questo approccio promuove un miglioramento continuo, le innovazioni e le correzioni dei bug prima che raggiungano il mercato.

Inoltre, DevOps accelera e automatizza il processo di creazione, test e distribuzione delle versioni del software attraverso pratiche di distribuzione e integrazione continua. Le organizzazioni in questo modo possono adattarsi ai cambiamenti del mercato più rapidamente e soddisfare meglio le esigenze dei clienti.

Maggiore affidabilità

I test automatizzati aiutano a garantire la qualità e l'affidabilità degli aggiornamenti del software e dell'infrastruttura. Il monitoraggio e la registrazione verificano le prestazioni delle applicazioni in tempo reale.

Scalabilità più rapida

L'automazione DevOps accelera lo sviluppo, il test e la produzione di codice in modo che le organizzazioni possano scalare più velocemente e con maggiore efficienza.

Ad esempio, se un'organizzazione deve aggiungere rapidamente altre applicazioni per soddisfare la domanda aziendale, DevOps elimina la necessità di processi di codifica lunghi, lenti e soggetti a errori per implementare tali modifiche. 

Maggiore sicurezza

Con DevSecOps, la sicurezza viene integrata nel processo di sviluppo fin dall'inizio, anziché essere aggiunta alla fine. I team possono integrare test e audit di sicurezza nei workflow per aiutare a far rispettare gli standard di sicurezza e monitorare la conformità ai requisiti normativi.

Strumenti DevOps

Per supportare i metodi e la cultura DevOps, le implementazioni DevOps richiedono toolchain specializzate che abilitino la collaborazione asincrona, la perfetta integrazione dei workflow DevOps e la massima automazione possibile durante tutto il ciclo di vita DevOps.

Le categorie di strumenti DevOps includono:

Sistemi di controllo delle versioni

Gli ambienti di codifica controllati dalla versione permettono a più sviluppatori di gestire le modifiche al codice, tenere traccia delle modifiche e lavorare in modo collaborativo sulla stessa base di codice. Questi repository di codice solitamente si integrano con CI/CD, strumenti di test e sicurezza attraverso interfacce di programmazione delle applicazioni (API), in modo che, quando il codice viene eseguito il commit nel repository, possa automaticamente passare al passaggio successivo. I sistemi di controllo delle versioni più diffusi includono Git (spesso utilizzato su GitHub), Apache Subversion e Mercurial.

Pipeline CI/CD

La pipeline CI/CD aiuta ad automatizzare le principali attività di sviluppo software, come l'integrazione del codice, la verifica della qualità del codice, la compilazione e il confezionamento del codice e la distribuzione del software. Gli strumenti più diffusi in questa categoria includono Jenkins, CircleCI e TeamCity.

Piattaforme e strumenti di containerizzazione

La containerizzazione incapsula le app in pacchetti semplificati e portatili chiamati "container" che possono essere eseguiti su qualsiasi piattaforma. Questa funzionalità rende la containerizzazione utile per i cicli rapidi di rilascio e gestione di DevOps. Le organizzazioni spesso utilizzano strumenti open source come Docker e Kubernetes per creare, orchestrare e automatizzare la distribuzione di app containerizzate. 

La maggior parte dei principali provider di cloud, tra cui Amazon Web Services (AWS), Google, Microsoft Azure e IBM Cloud, offrono soluzioni gestite di pipeline DevOps che includono strumenti per la containerizzazione.

Strumenti di gestione della configurazione

Gli strumenti di gestione della configurazione aiutano i team DevOps a configurare infrastruttura, software e applicazioni in vari ambienti IT. Questi strumenti automatizzano le attività di configurazione come l'impostazione e l'implementazione dell'hardware o l'applicazione di patch software per garantire la coerenza, ridurre gli errori e migliorare l'affidabilità. Gli strumenti di gestione della configurazione più diffusi includono Puppet, Chef e SaltStack.

Strumenti di Infrastructure as code (IaC)

IaC utilizza un linguaggio di codifica descrittivo di alto livello per automatizzare il provisioning dell'infrastruttura IT. Invece di istruire un sistema su come eseguire il provisioning dell'infrastruttura, gli sviluppatori descrivono lo stato finale desiderato e il software IaC gestisce il resto.

Questa automazione elimina la necessità per gli sviluppatori di dedicare tempo e fatica allo scripting manuale delle modifiche all'infrastruttura IT ogni volta che sviluppano, testano o distribuiscono un'applicazione software.

Gli strumenti IaC più diffusi includono Terraform, Pulumi e AWS CloudFormation.

Strumenti di monitoraggio e osservabilità

Gli strumenti di monitoraggio e osservabilità aiutano i team DevOps a identificare e risolvere problemi di sistema, come tempi di risposta lenti o consumo eccessivo di risorse. Inoltre, raccolgono e analizzano i dati in tempo reale per rivelare in che modo le modifiche al codice influiscono sulle prestazioni delle applicazioni.

Gli strumenti di osservabilità e monitoraggio più diffusi includono Prometheus, Datadog, IBM Instana®, New Relic e Splunk.

Strumenti di feedback continuo

Questi strumenti raccolgono il feedback degli utenti, tramite mappe di calore (registrazione delle azioni degli utenti sullo schermo), sondaggi o emissione di ticket self-service. Alcuni strumenti monitorano anche i social media per raccogliere il feedback degli utenti e misurare la soddisfazione riguardo agli aggiornamenti delle applicazioni. 

DevOps e l'ingegneria dell'affidabilità del sito (SRE)

L'ingegneria dell'affidabilità del sito (SRE) e DevOps sono strategie complementari nell'ingegneria del software che abbattono i silo e portano a una distribuzione del software più efficiente e affidabile. I team DevOps si concentrano sugli aggiornamenti e sulla distribuzione di nuove caratteristiche, mentre le pratiche di progettazione dell'affidabilità del sito (SRE) proteggono l'affidabilità dei sistemi nella fase della scalabilità.

La progettazione dell'affidabilità del sito (SRE) combina DevOps e operazioni IT tradizionali per automatizzare attività che gli amministratori di sistema dovrebbero altrimenti eseguire manualmente, come la gestione del sistema di produzione, la gestione del cambiamento e la risposta agli incidenti. La SRE cerca di trasformare il classico amministratore di sistema in un ingegnere.

La SRE si propone di bilanciare il desiderio di un'organizzazione di sviluppare rapidamente le applicazioni con la necessità di soddisfare i livelli di prestazioni e disponibilità specificati negli accordi sul livello di servizio (SLA) con i clienti.

I tecnici dell'affidabilità del sito raggiungono questo equilibrio determinando un livello accettabile di rischio operativo causato dalle applicazioni, chiamato "budget di errore", e automatizzando le operazioni per soddisfarlo.

In un team DevOps interfunzionale, la SRE può fungere da ponte tra lo sviluppo e le operazioni. La SRE fornisce le metriche e gli strumenti di automazione di cui i team hanno bisogno per spingere le modifiche al codice e le nuove funzionalità attraverso la pipeline DevOps il più rapidamente possibile, senza violare i termini degli SLA dell'organizzazione.

DevOps e intelligenza artificiale (AI)

L'intelligenza artificiale (AI)  e l'apprendimento automatico (ML) stanno rapidamente trasformando il mondo di DevOps. Con la loro capacità di automatizzare le attività e di analizzare processi complessi, queste tecnologie aiutano a rendere DevOps più veloce, affidabile e sicuro. Secondo l'IBM Institute for Business Value, il 25% degli sviluppatori di applicazioni e il 40% dei tester di applicazioni affermano che AI e automazione hanno aumentato la loro produttività.

Alcune delle aree di impatto funzionali includono:

Risoluzione dei problemi

L'AI può analizzare grandi quantità di dati per prevedere e risolvere problemi di processo, come errori delle applicazioni o colli di bottiglia dei processi, prima che si verifichino. Ad esempio, l'AI può prevedere i picchi del traffico di rete e rendere automaticamente disponibili più risorse per aiutare a prevenire interruzioni di servizio o blocchi del sistema. 

Sicurezza

L'AI può identificare le vulnerabilità di sicurezza nelle applicazioni e nell'infrastruttura e scansionare i registri degli eventi per rilevare le potenziali minacce in tempo reale. Ad esempio, è in grado di individuare attività sospette che potrebbero indicare che un attacco informatico, come una violazione dei dati o un attacco alla supply chain, è probabile che si verifichi o sia già in corso.

Monitoraggio

Identificando bug nascosti, problemi di prestazioni e anomalie software, l'AI può aiutare gli sviluppatori ad affrontare i problemi delle applicazioni prima che i problemi si aggravino. Ad esempio, può segnalare problemi che richiedono attenzione, come un picco imprevisto nell'utilizzo della CPU o un guasto su più microservizi. 

Test

L'AI può rivedere e testare il codice per garantire che sia pronto per l'implementazione più velocemente rispetto ai metodi manuali. Ad esempio, gli strumenti di AI possono analizzare le modifiche al codice per individuare potenziali bug o identificare le vulnerabilità di sicurezza create per sbaglio durante un aggiornamento software.

Il futuro del DevOps

I processi e gli strumenti DevOps continuano ad espandersi ed evolversi per affrontare le sfide più recenti dell'IT e del business. Alcune delle tecnologie e delle pratiche che guidano il futuro di DevOps includono:

Ingegneria della piattaforma

L'ingegneria della piattaforma è la disciplina della creazione e della gestione di piattaforme con strumenti standardizzati, workflow automatizzati e ambienti coerenti per aumentare la produttività degli sviluppatori. L'ingegneria della piattaforma può aumentare la produttività e accelerare i processi DevOps fornendo ai team funzionalità self-service per attività come il provisioning delle risorse, la configurazione del software e la containerizzazione delle applicazioni. 

Observability

L'osservabilità è la capacità di comprendere lo stato interno o la condizione di un sistema complesso basandosi unicamente sulla conoscenza dei suoi output esterni, in particolare della sua telemetria. Gli strumenti di osservabilità possono fornire insight più approfonditi sui comportamenti del sistema rispetto alle pratiche di monitoraggio DevOps, che si concentrano invece sulle metriche.

Con la loro capacità di isolare le cause principali e identificare in modo proattivo i problemi nei sistemi complessi, gli strumenti di osservabilità stanno diventando componenti sempre più vitali dei workflow DevOps.

Low-code, no-code

Gli strumenti low-code e no-code consentono anche alle persone con conoscenze di codifica limitate di partecipare ai workflow DevOps. Grazie alle interfacce drag and drop, gli utenti aziendali possono creare app senza dover effettuare la codifica in modo tradizionale. Questo approccio semplifica la creazione e la distribuzione di applicazioni progettate per soddisfare esigenze aziendali specifiche.

Soluzioni correlate
IBM DevOps Accelerate

Automatizza la distribuzione del software per qualsiasi applicazione on premise, cloud o mainframe.

Esplora DevOps Accelerate
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fai il passo successivo

Sblocca il potenziale delle DevOps per costruire, testare e distribuire app cloud-native sicure, con integrazione e distribuzione continua.

Esplora le soluzioni DevOps Scopri DevOps in azione