devops introduzione

in Informatica

DevOps – Introduzione

Reading Time: 2 minutes

Rapidità. Questa è la parola chiave per le aziende che sviluppano software, per le quali è sempre piu’ richiesta da parte dei clienti, una rapida risposta. DevOps è il risultato della fusione della parole Developer e Operation, definendo in maniera netta la collaborazione tra team di sviluppo ed il team di sistemisti.

L’obiettivo comune di questa iterazione è quello di creare un flusso univoco, che deve essere definito e pianificato a priori e deve essere il più rapido possibile. Nell’approccio tradizionale, il team di sistemisti ha una visione nettamente distinta rispetto a quella dei team di sviluppatori: DevOps cerca di minimizzare questa distanza di competenze.

Da una parte, infatti, troviamo gli sviluppatori che necessariamente devono rincorrere le esigenze dei clienti implementando nuovi prodotti, dall’altra troviamo le soluzioni dei sistemisti che devono mantenere sistemi stabili.

Spesso all’interno dell’azienda, questa differente visione, può comportare:

  • conflitti tra l’area sistemistica e l’area di sviluppo
  • incomprensioni architetturali
  • rallentamenti nello sviluppo
  • limitazione delle potenzialità dello sviluppo

Alla base di DevOps si possono definire tre principi:

  • System Thinking: in cui viene data prevalenza ai risultati ottenuti globalmente, rispetto a quelli che possono essere ottenuti dai singoli dipartimenti
  • Culture of Continual Experimentation and learning: l’intero processo di sviluppo deve essere composto da una percentuale di sperimentazione
  • Amplify Feedback Loops: i feedbacks provenienti dagli utilizzatori ricoprono un ruolo importante per il lavoro dei developers.

Spesso DevOps viene approcciato come una vera e propria piattaforma di sviluppo (tipicamente incentrata nel cloud), che offre, al team di sviluppatori, una serie di strumenti che possono essere configurate per la pubblicazione delle applicazioni.

I concetti fondamentali di DevOps sono:

  • Continuous Integration (CI): lo sviluppo del software avviene utilizzando un sistema di versioning (tipicamente GIT), effettuando rapidi aggiornamenti del codice. Questo tipo di approccio consente di diminuire la percentuale di errore e le inconsistenze.
  • Continuos Delivery (CD): un insieme di procedure che vengono attivate in base a particolari trigger (es. push all’interno di branch specifici, …) e che consentono di rilasciare prodotti funzionanti. Il prodotto viene rilasciato a seguito di operazioni automatiche di test e di pubblicazione

Nei prossimi post analizzerò alcuni degli strumenti utilizzati per l’implementazione di DevOps all’interno di aziende di sviluppo software.