DevOps: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
rimetto incipit |
Ripristino alla versione 108975862 datata 2019-11-19 12:13:48 di 143.225.89.8 tramite popup |
||
Riga 47:
</ref>
==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;<ref>
{{Cita web
| url = http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr
| titolo = 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
| lingua = inglese
| accesso = 15 luglio 2015
}}</ref> tale ciclo di rilasci potrebbe essere più frequente in organizzazioni che producano applicazioni multi-focus o multi-funzione, spesso indicato come "''[[deployment]]'' continuo"<ref>{{Cita web
| url = http://www.cutter.com/promotions/itj1108/itj1108.pdf
| titolo = Why Enterprises Must Adopt Devops to Enable Continuous Delivery
| formato = PDF
| pagine = 6-12
| data = agosto 2011
| lingua = inglese
| accesso = 15 luglio 2015
}}
</ref> e associato spesso al metodo ''[[Lean Startup|lean startup]]''.<ref>
{{Cita web
| url = http://www.slideshare.net/pascallouis/applied-lean-startup-ideas-continuous-deployment-at-kaching
| titolo = Applied Lean Startup Ideas: Continuous Deployment at kaChing
}}
</ref>
Sull'argomento sono nati [[Gruppo di lavoro|gruppi di lavoro]], [[Ordine professionale|ordini professionali]] e [[blog]] sin dal 2009.<ref name=mixing/><ref name="devopsdaysghent">{{Cita web
|titolo=DevOps Days Ghent 2009
|url=http://www.devopsdays.org/events/2009-ghent/
| lingua = inglese
| accesso = 15 luglio 2015
|pubblicazione=DevopsDays}}
</ref><ref name="devopsdays">
{{Cita web
| url = http://www.devopsdays.org
| titolo = DevOps Days
| lingua = inglese
| accesso = 15 luglio 2015
}}
</ref><ref>
{{Cita web
| url = http://dev2ops.org/blog/2010/4/26/devops-meetup-recap.html
| titolo = DevOps Meetup Recap
| nome = Damon
| cognome = Edwards
| data = 26 aprile 2010
| lingua = inglese
| accesso = 15 luglio 2015
}}
</ref>
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]].<ref name=AgileInf2010>
{{Cita web
| titolo=Agile Infrastructure
| url=http://www.infoq.com/presentations/agile-infrastructure
| editore=InfoQ
| lingua = inglese
| accesso = 15 luglio 2015
}}
</ref>
===Storia===
Il termine "DevOps" è stato coniato da Patrick Debois<ref name=debois-devops>{{Cita web
| titolo=Patrick Debois on the State of DevOps
| url=http://www.infoq.com/interviews/debois-devops
| autore = Manuel Pais
| editore=InfoQ
| data = 6 aprile 2012
| lingua = inglese
| accesso = 15 luglio 2015
}}</ref> e reso popolare attraverso una serie di "DevOps Days" iniziati nel 2009 in Belgio.<ref name="devopsdaysghent"/>
Da allora si sono svolte conferenze "DevOps Days" in India, USA, Brasile, Australia, Germania, Svezia e Svizzera.<ref name="devopsdays"/>
[[File:Devops.svg|thumb|widthpx|L'illustrazione mostra la DevOps come intersezione di Sviluppo (software engineering), technology operations e garanzia di qualità (Quality Assurance)]]
Le metodologie di sviluppo (ad esempio la [[Metodologia agile]]) che vengono attuate nelle organizzazioni tradizionali mediante distinte divisioni tra IT operations e [[Garanzia di qualità|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.<ref>{{Cita web
|url = http://www.kartar.net/2010/02/what-devops-means-to-me/
|titolo = What DevOps means to me...
|nome = James
|cognome = Turnbull
|lingua = inglese
|accesso = 15 luglio 2015
|urlmorto = sì
|urlarchivio = https://web.archive.org/web/20101230030814/http://www.kartar.net/2010/02/what-devops-means-to-me/
|dataarchivio = 30 dicembre 2010
}}</ref>
L'adozione della metodologia DevOps è guidata da diversi fattori, come:
# Utilizzo della metodologia agile e altre metodologie di [[Ciclo di vita del software|sviluppo del software]]
# Necessità di incrementare la frequenza dei rilasci in produzione
# Ampia disponibilità di un'infrastruttura virtualizzata<ref>{{Cita web
| url = http://www.it20.info/misc/virtualizationscomparison.htm
| titolo = Virtual Infrastructure products: features comparison
| opera= Welcome to IT 2.0: Next Generation IT infrastructures
| lingua = inglese
| accesso = 15 luglio 2015
}}</ref> e in [[Cloud computing|cloud]]
# Incremento nell'uso di [[data center]] automatizzati<ref>{{Cita web
|url = http://www.information-management.com/infodirect/20071026/10000120-1.html
|titolo = Bringing Order to Chaos through Data Center Automation
|nome = Jennifer
|cognome = Ellard
|opera = Information Management
|editore = SourceMedia
|lingua = inglese
|accesso = 15 luglio 2015
|urlmorto = sì
|urlarchivio = https://web.archive.org/web/20100611073000/http://www.information-management.com/infodirect/20071026/10000120-1.html
|dataarchivio = 11 giugno 2010
}}</ref> 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.<ref>{{Cita web
| url = http://www.zeroturnaround.com/blog/how-to-measure-the-effectiveness-of-implementing-devops
| titolo = How to Measure the Effects of Development + Operations improvements, an OpenSpace conversation
| nome = David
| cognome = Booth
| lingua = inglese
| accesso = 15 luglio 2015}}</ref>
Il ruolo di un professionista DevOps ricorda molto la figura dell'ingegnere capo all'interno del cosiddetto "[[Toyota Production System]]".<ref>
{{Cita libro
| titolo = The Toyota Way
| editore = McGraw-Hill
| data = 17 dicembre 2003
| ed = 1
| id = ISBN 0-07-139231-9
}}
</ref> 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
[[File:Agile-vs-iterative-flow.jpg|thumb|widthpx|L' illustrazione mostra l'effetto della metodologia agile nell'incrementare la frequenza degli eventi di rilascio, spesso misurati in giorni o settimane, in contrasto a grossi, rari rilasci, misurati in quadrimestri o anni, con le tradizionali metodologie di sviluppo.]]
; Numero ridotto di modifiche: L'adozione del modello agile o [[modello incrementale]], in contrasto con il tradizionale [[modello a cascata]]
; Accresciuto coordinamento dei rilasci: La presenza di una coordinazione del rilascio riduce le distanze tra sviluppo e gestione.
; Automazione: Una
=== Coordinatore del Rilascio ===
Si tratta di un ruolo relativamente nuovo nelle aziende IT, il cui compito è di coordinare i rilasci in ambienti pre-produzione (di test). La necessità di tale figura viene da:
* La necessità di ridurre il "gap" tra sviluppo e gestione
* Accresciuta complessità dell'infrastruttura, ad esempio applicazioni multipiattaforma
* Incremento della frequenza dei rilasci, ad esempio per via dell'utilizzo della metodologia agile
* Gruppi delocalizzati, come nel caso dell'utilizzo di risorse esterne o in sedi diverse
Il ruolo del coordinatore del rilascio (anche indicato come coordinatore d'integrazione) è simile a quello di un [[Controllore del traffico aereo|controllore di volo]] che deve coordinare in tempo reale attività di diversi gruppi per raggiungere un obiettivo (atterraggi e decolli in sicurezza) usando risorse condivise (spazio aereo, sentieri di volo, piste e terminali).
Tale coordinamento non va confuso con la gestione del rilascio, che è focalizzata sulla pianificazione delle modifiche al software in ottica di una loro applicazione direttamente sulla produzione, mentre il coordinatore del rilascio si occupa del lavoro sistematico e tecnico inerente alla creazione e rilascio del software nei vari ambienti.
==Note==
|