DevOps

DevOps (dalla contrazione inglese di development, "sviluppo", e operations, qui simile a "messa in produzione" o "deployment") è una metodologia di sviluppo del software utilizzata in informatica che punta alla comunicazione, collaborazione e integrazione tra sviluppatori e addetti alle…

DevOps (dalla contrazione inglese di development, "sviluppo", e operations, qui simile a "messa in produzione" o "deployment") è una metodologia di sviluppo del software utilizzata in informatica che punta alla comunicazione, collaborazione e integrazione tra sviluppatori e addetti alle operations della information technology (IT).

DevOps vuole rispondere all'interdipendenza tra sviluppo software e IT operations, puntando ad aiutare un'organizzazione a sviluppare in modo più rapido ed efficiente prodotti e servizi software.

Descrizione

Le aziende che tipicamente potrebbero avere maggiori benefici da un orientamento DevOps sono quelle con rilasci di software frequenti. Flickr ha utilizzato il metodo DevOps per supportare la necessità di dieci rilasci al giorno; tale ciclo di rilasci potrebbe essere più frequente in organizzazioni che producano applicazioni multi-focus o multi-funzione, spesso indicato come "deployment continuo" e associato spesso al metodo lean startup.

Sull'argomento sono nati gruppi di lavoro, ordini professionali e blog sin dal 2009.

Il metodo DevOps aiuta le aziende nella gestione dei rilasci, standardizzando gli ambienti di sviluppo. Le aziende con problemi di automazione dei rilasci solitamente hanno già un processo automatico in essere ma lo vorrebbero più flessibile e controllabile, senza per questo dover agire da riga di comando per ottenere ciò. Idealmente tale automazione potrebbe essere utilizzata anche da risorse non operative (non appartenenti alle IT operations) su ambienti non di produzione; in questo modo gli sviluppatori hanno a disposizione un maggiore controllo degli ambienti, dando all'infrastruttura una visione più incentrata sull'applicazione.

L'integrazione DevOps ha come obiettivo il rilascio del prodotto, il collaudo del software, l'evoluzione e il mantenimento (correzione di bug e release minori) in modo tale da aumentare affidabilità e sicurezza e rendere più veloci i cicli di sviluppo e rilascio. Molte delle idee che costituiscono DevOps provengono dalla gestione di sistemi aziendali e dalla Metodologia agile.

Storia

Il termine "DevOps" è stato coniato da Patrick Debois e reso popolare attraverso una serie di "DevOps Days" iniziati nel 2009 in Belgio.

Da allora si sono svolte conferenze "DevOps Days" in India, USA, Brasile, Australia, Germania, Svezia e Svizzera.

Le metodologie di sviluppo (ad esempio la Metodologia agile) che vengono attuate nelle organizzazioni tradizionali mediante distinte divisioni tra IT operations e QA da un lato, sviluppo e rilascio dall'altro, sono prive di una profonda integrazione interdipartimentale. DevOps promuove un insieme di processi e metodi indirizzati alla comunicazione e collaborazione tra le divisioni.

L'adozione della metodologia DevOps è guidata da diversi fattori, come:

Utilizzo della metodologia agile e altre metodologie di sviluppo del software

Necessità di incrementare la frequenza dei rilasci in produzione

Ampia disponibilità di un'infrastruttura virtualizzata e in cloud

Incremento nell'uso di data center automatizzati e strumenti di configuration management e Infrastructure as Code

La metodologia DevOps è spesso descritta come una relazione più collaborativa e produttiva tra i gruppi di sviluppo e quelli di operation. Ciò incrementa l'efficienza e riduce i rischi di frequenti modifiche in produzione. Per quantificare tale effetto si sta ragionando su alcuni possibili parametri.

Il ruolo di un professionista DevOps ricorda molto la figura dell'ingegnere capo all'interno del cosiddetto "Toyota Production System". Tali figure sono responsabili del successo del progetto ma senza alcuna formale autorità sui diversi gruppi coinvolti. È loro richiesta conoscenza tecnica adeguata al fine di convincere i manager di quali siano le necessità e può essere di loro aiuto il sostegno da parte della dirigenza aziendale.

Invece, in molte organizzazioni, lo sviluppo del software e la gestione dei sistemi sono in divisioni differenti e poiché lo sviluppo è generalmente guidato dalle necessità dell'utente, per continue modifiche e conseguenti rilasci, i gruppi operativi sono concentrati sulla disponibilità e affidabilità dei servizi, nonché sulla gestione dei costi. Ciò produce un "gap" tra sviluppo e gestione dei servizi che rallenta il passaggio in produzione.

Impatto sui rilasci applicativi

In molte aziende i rilasci applicativi sono eventi ad alto impatto e rischio, coinvolgendo più gruppi di lavoro. Con la metodologia DevOps tale rischio si riduce per i seguenti motivi:

Numero ridotto di modifiche

L'adozione del modello agile o modello incrementale, in contrasto con il tradizionale modello a cascata, comporta minori modifiche, anche se più frequenti, con minore impatto e rischio.

Accresciuto coordinamento dei rilasci

La presenza di una coordinazione del rilascio riduce le distanze tra sviluppo e gestione.

Automazione

Una completa automazione assicura la facile ripetibilità dei rilasci e riduce gli errori nell'operazione.

Servizi correlati

Altre voci

C

Customer relationship management

In economia aziendale, la gestione delle relazioni con i clienti, nota comunemente come customer relationship management (in sigla CRM), è un approccio strategico che integra tecnologie, processi e analisi dei dati per ottimizzare le interazioni di un'organizzazione con i suoi clienti.

Leggi la voce →
J

JD Edwards

JD Edwards World Solution Company o semplicemente JD Edwards, chiamata anche JDE, era una compagnia software fondata nel marzo 1977 a Denver (Colorado) da Jack Thompson, Dan Gregory e Ed McVaney. L'azienda iniziò la propria attività producendo software di contabilità per i minicomputer IBM,…

Leggi la voce →
C

Cloud computing

Il cloud computing, in italiano nuvola informatica o servizi nella nuvola, indica un paradigma di erogazione di servizi offerti su richiesta da un fornitore a un utente finale attraverso la rete internet (come l'archiviazione, l'elaborazione o la trasmissione dati), a partire da un insieme di…

Leggi la voce →
C

Customer communications management

Il Customer Communications Management (CCM) è un’attività che consente alle aziende di gestire le comunicazioni con i clienti che avvengono attraverso un’ampia gamma di canali. Originariamente, il customer communications management riguardava i documenti stampati, i documenti digitali…

Leggi la voce →
V

Versione (sviluppo software)

In informatica, ma soprattutto nello sviluppo software, la versione (di un software, programma o applicazione) corrisponde a un determinato stato nello sviluppo di un software secondo l'uso del versioning (lett. "versionamento"). Secondo il Grand dictionnaire terminologique, il versionnage…

Leggi la voce →
C

Customer Interaction Management

Per Customer Interaction Management (CIM) si intende la gestione dei contatti intercorsi fra aziende e clienti, sia a livello di customer care che nell'ambito delle vendite (teleselling) e della promozione di prodotti. A tal proposito possono essere utilizzati software aziendali dedicati alla…

Leggi la voce →