Che cos'è DevOps?

Completato

DevOps è l'unione di persone, processi e prodotti per consentire la distribuzione continua di valore ai nostri clienti. Ma cosa significa esattamente? Mara spiega al team cos'è e cosa non è DevOps e illustra come un team con prestazioni straordinarie può raggiungere l'obiettivo.

Mara ha richiesto un breve incontro con i membri del team. Si sono presentati tutti, ma nessuno vorrebbe essere lì. Sul tavolo ha preparato una scatola di ciambelle.

Mara: Ciao, grazie per venire. Volevo approfondire la mappa di flusso del valore e spiegarvi in che modo possiamo rendere più efficienti i processi.

La mappa di flusso dei valori di Mara è ancora sulla lavagna della riunione precedente:

Screenshot of a whiteboard showing the value stream map.

Mara: la mappa del flusso di valori mostra dove si perde l'efficienza nel fornire valore agli utenti finali. Proprio come tutti gli altri, possiamo migliorare. E possiamo decidere quali aree affrontare per prime.

Andy: Dalla mappa capiamo dove abbiamo problemi, ma non cosa dobbiamo fare per risolverli.

Mara: Giusto, è un esercizio che ci aiuta a puntare nella giusta direzione. Per quanto riguarda cosa fare sui nostri problemi, penso che DevOps ci aiuterà. Nell'ultima azienda in cui ho lavorato le frequenze di distribuzione sono considerevolmente cresciute, i lead time si sono velocizzati molto e gli eventi imprevisti riscontrati nelle operazioni sono stati ridotti. È servito un po' di tempo, ma ne è valsa la pena. DevOps non è una correzione rapida.

Tim: Conosco qualcuno che ha appena ottenuto un lavoro come ingegnere DevOps. Credo che possa interessare per lo più gli sviluppatori. Interessa te, Andy.

Mara: DevOps non è un titolo di lavoro.

Amita: c'è un programma software che possiamo ottenere che ci aiuterà lungo, o un modello? ad esempio un foglio di calcolo DevOps?

Mara: DevOps non è un componente software.

Andy: È più simile a una metodologia.

Mara: Non proprio.

Andy, Amita, Tim: Allora cos'è?!

Mara: Ecco la definizione che mi piace usare:

DevOps è l'unione di persone, processi e prodotti per offrire recapito continuo di valore agli utenti finali.

Infatti, Abel Wang, cloud advocate di Microsoft, ha un ottimo set di video con risposte rapide ad alcune delle nostre grandi domande. Vediamo come Abel definisce DevOps:

Chiedi ad Abel

Il nostro obiettivo è offrire ai clienti giochi che ameranno. Possiamo raggiungere tale obiettivo lavorando insieme e adottando procedure e strumenti condivisi.

Amita: Cosa significa? Cosa si intende per procedure e strumenti condivisi?

Mara: Ecco cosa intendo per procedure:

  • Pianificazione agile: Insieme creeremo un backlog di lavoro che chiunque lavori nel team o nel management può visualizzare. Classificheremo gli elementi in ordine di priorità, in modo da sapere cosa affrontare per primo. Il backlog può includere storie utente, bug e qualsiasi altra informazione che possa essere utile.
  • Integrazione continua (CI): Automatizzeremo la compilazione e il test del codice. Verranno eseguiti ogni volta in cui un membro del team esegue il commit delle modifiche nel controllo della versione.
  • Recapito continuo (CD): È il processo di test, configurazione e distribuzione da un ambiente di compilazione a un controllo di qualità o a un ambiente di produzione.
  • Monitoraggio: Useremo la telemetria per ottenere informazioni sulle prestazioni e sui modelli di utilizzo di un'applicazione. Queste informazioni serviranno per ottimizzare l'esecuzione dell'iterazione.

Amita: Non conosco i test automatizzati. I miei test sono manuali e li faccio dopo che Andy consegna il codice a me. Non ho tempo di cambiare il mio modo di lavorare.

Tim: Non c'è modo di consentire a nessuno di voi di distribuirlo nell'ambiente di produzione.

Andy: Questo spaventerà la gestione. Non pensano mai oltre la prossima versione e lo vogliono sempre ieri.

Mara: So cosa intendi per la gestione. Ho creato questa dispensa per illustrare ciò che contraddistingue un team con prestazioni straordinarie.

Aspetti di un team con prestazioni straordinarie

Di seguito è riportata la dispensa preparata da Mara. Le informazioni si basano su report di ricerca di DevOps e sondaggi somministrati a tecnici di tutto il mondo.

DevOps aiuta le aziende a sperimentare modi per aumentare l'adozione e la soddisfazione dei clienti. Può portare a prestazioni organizzative migliori e spesso a una maggiore redditività e quota di mercato.

Usa le metriche per creare quattro categorie in base alle quali confrontare i performer elite con prestazioni basse.

Performer Elite:

  • Distribuiscono più frequentemente

    Alcuni team arrivano a distribuire fino a decine di volte al giorno.

    Le procedure come il monitoraggio, i test continui, la gestione delle modifiche del database e l'integrazione della sicurezza in precedenza nel processo di sviluppo software aiutano gli esecutori a distribuire più frequentemente e con maggiore prevedibilità e sicurezza.

  • Ridurre il lead time dal commit alla distribuzione

    Il lead time è il tempo necessario per rendere disponibile una funzionalità al cliente. Usando batch di dimensioni più piccole, automatizzando i processi manuali e distribuendo più frequentemente, i team con prestazioni straordinarie ottengono in ore o giorni i risultati che prima raggiungevano in settimane o addirittura in mesi.

  • Ridurre la percentuale di errori di modifica

    Una nuova funzionalità che non riesce nell'ambiente di produzione o che causa l'interruzione di altre funzionalità può creare un'opportunità persa tra l'utente e gli utenti. Man mano che i team con prestazioni elevate maturano, riducono la frequenza di errore delle modifiche nel tempo.

  • Recuperare da eventi imprevisti più velocemente

    Quando si verificano eventi imprevisti, i team con prestazioni straordinarie possono recuperare più velocemente. L'azione sulle metriche consente ai performer elite di recuperare più rapidamente e distribuirsi più frequentemente.

Anche la modalità di implementazione dell'infrastruttura cloud è un aspetto importante. Il cloud migliora le prestazioni di distribuzione del software e i team che adottano caratteristiche cloud essenziali sono più probabili diventare performer d'élite.

L'esternalizzazione può risparmiare denaro e fornire un pool di lavoro flessibile, ma deve essere usato nelle aree corrette. I team con prestazioni basse hanno maggiori probabilità di esternalizzare intere funzioni (ad esempio test e operazioni) rispetto alle controparti con prestazioni elevate.

La conclusione

DevOps è una ragione fondamentale per cui molti team con prestazioni straordinarie sono in grado di offrire valore ai clienti, sotto forma di nuove funzionalità e miglioramenti, più rapidamente rispetto ai loro concorrenti. In questo breve video, Abel spiega perché è necessario comprendere meglio DevOps:

Chiedi ad Abel

Che cosa non è DevOps

Per le considerazioni relative a DevOps, è importante anche assicurarsi di imparare cosa non è. DevOps non è:

  • Una metodologia.
  • Un componente software specifico.
  • Una correzione rapida per le problematiche di un'organizzazione.
  • Solo un team o una posizione, benché queste posizioni siano piuttosto comuni nel settore.