Che cos'è DevOps?

Completato

La fusione di "Dev" e "Ops" fa riferimento alla sostituzione di attività di sviluppo (Development) e operative (Operations) gestite in compartimenti stagni. L'idea è quella di creare team multidisciplinari che collaborino con procedure e strumenti efficienti e condivisi. Le procedure DevOps essenziali includono la pianificazione agile, l'integrazione continua, la distribuzione continua e il monitoraggio delle applicazioni. DevOps è un percorso costante.

Diagramma del ciclo DevOps di collaborazione composto da pianificazione, creazione, integrazione continua, distribuzione, operatività e feedback continuo.

Comprendere la durata del ciclo

Tenere presente un presupposto di base dello sviluppo software che verrà descritto con il ciclo OODA (Osservare, Orientare, Decidere, Agire). Originariamente progettato per evitare che i piloti militari comparissero all'improvviso nel cielo, il ciclo OODA è un ottimo modo per riflettere su come agire in anticipo rispetto agli avversari. Si inizia con l'osservazione dell'azienda, del mercato, delle esigenze, del comportamento dell'utente corrente e dei dati di telemetria disponibili. Ci si orienta quindi con l'enumerazione delle opzioni rispetto a ciò che è possibile offrire, eventualmente con tentativi. Successivamente, si decide l'obiettivo da perseguire e si agisce fornendo software funzionante agli utenti reali. È possibile visualizzare tutti gli eventi che si verificano in una durata ciclo.

Diagramma di Osservare, orientare, decidere e agire come ciclo.

Prendere decisioni basate sui dati

È consigliabile usare i dati per informare sulle azioni da intraprendere nel ciclo successivo. Molti report sull'esperienza indicano che circa un terzo delle distribuzioni avrà risultati aziendali negativi. Circa un terzo avrà risultati positivi e un terzo non farà alcuna differenza. L'ideale sarebbe fallire sulle distribuzioni che non apportano valore all'azienda e raddoppiare i risultati su quelle che la supportano. A volte questo tipo di approccio viene definito cambio di rotta o perseveranza.

Impegnarsi nell'apprendimento convalidato

La velocità con cui è possibile fallire o raddoppiare è determinata dalla durata del ciclo e dal tempo necessario per il ciclo. La durata del ciclo determina la velocità con cui è possibile raccogliere feedback per determinare cosa accade nel ciclo successivo. Il feedback raccolto con ogni ciclo deve consistere di dati effettivi e gestibili. Per questo motivo, viene definito apprendimento convalidato.

Diagramma di Strive per l'apprendimento convalidato. Buono, indifferente e negativo.

Ridurre la durata del ciclo

Quando si adottano le procedure di DevOps:

  • È possibile ridurre la durata del ciclo lavorando in batch più piccoli.
  • Aumentare l'uso dell'automazione.
  • Rafforzare la pipeline di versione.
  • Migliorare i dati di telemetria.
  • Distribuire più frequente.

Diagramma dell'apprendimento convalidato e della frequenza di distribuzione. Ciclo buono, indifferente e negativo.

Ottimizzare l'apprendimento convalidato

Maggiore è la frequenza di distribuzione, maggiore è la possibilità di sperimentare. Maggiore è l'opportunità di cambiare rotta o perseverare e quindi di ottenere apprendimento convalidato a ogni ciclo. Questa accelerazione nell'apprendimento convalidato costituisce il valore del miglioramento. Può essere considerato come la somma dello stato di avanzamento che si ottiene e degli errori che si evitano.

Diagramma dell'apprendimento convalidato e della frequenza di distribuzione. Ciclo buono, indifferente e negativo. Valore della metrica di miglioramento.