Technology HowTo

DevOps: integrare i tool, automatizzare per migliorare i team

Per abbracciare una strategia di continuo rilascio di software e applicazioni stabili e di alta qualità, i team di sviluppo software devono possedere un corretto insieme di strumenti, ma ad oggi risulta ancora difficile reperire sul mercato soluzioni complete e ‘pronte all’uso’ e ciò impone ai team di sviluppo e delivery del software d’integrare in autonomia un complesso insieme di tool. L’analisi di Forrester

Pubblicato il 17 Lug 2017

Devops-Tool-Integration

In un mondo in cui sviluppo e delivery del software sono guidati da requisiti del mercato in continua evoluzione (si pensi a certe applicazioni web, o alle app per dispositivi mobili, di cui vengono rilasciate di continuo nuove versioni per aumentarne la stabilità, o in cui si aggiungono ulteriori funzionalità per rispondere alle richieste degli utenti) oggi i team AD&D (Application Development and Delivery) sono sotto pressione, e fanno fatica a tenere il passo. In altre parole, è difficile implementare una metodologia affidabile per sviluppare il software in base ai requisiti, costruire le diverse versioni, collaudarle e aggiornarle con facilità, e con rapidi rilasci, senza avere problemi.

Per adottare una strategia di questo genere, tali team devono passare dal tradizionale modello ‘waterfall’, in cui il processo di sviluppo software avviene ‘a cascata’ (in maniera sequenziale e non iterativa) e migrare verso il paradigma DevOps, che si focalizza sulla stretta cooperazione e interdipendenza tra team di sviluppo software e personale delle IT operation.

Tool troppo frammentati

Allo stesso tempo, per abbracciare una strategia di continuo rilascio di software e applicazioni stabili e di alta qualità, i professionisti AD&D devono possedere un corretto insieme di strumenti, che li aiutino a perseguire tale obiettivo, e a ridurre gli errori, automatizzando tutto il processo di sviluppo, test e rilascio del codice. Perseguire questo primo punto però non è facile, segnala la società di ricerche di mercato e consulenza Forrester nel Report The Quest For Speed-Plus-Quality Drives Agile And DevOps Tool Selection (disponibile sul sito della società di analisi), perché attualmente, anche se la situazione sta migliorando, il mercato di tool a supporto di questo approccio risulta ancora troppo complesso e frammentato, con nessun vendor in grado di coprire l’intero ciclo di sviluppo e delivery delle applicazioni. Ciò costringe gli addetti AD&D al difficile compito di integrare da sé l’insieme di tool specializzati per gestire lo sviluppo software lungo il ciclo di vita. Ad esempio, i tool usati dagli esperti di ‘customer experience’ per individuare le esigenze degli utenti finali risultano nella maggior parte dei casi disconnessi da quelli di progettazione e sviluppo del codice.

Automazione per migliorare l’efficacia del team

Da sempre gli sviluppatori hanno sfruttato l’automazione per semplificare il lavoro, ma se prima l’obiettivo era la produttività individuale, oggi il focus è migliorare l’efficacia a livello di team, attraverso una varietà di tool:

  • strumenti di controllo versione distribuiti e ‘cloud-hosted’, come Git, che, evidenzia Forrester, ha rivoluzionato i tool tradizionali;
  • strumenti di integrazione e distribuzione continua, applicati all’intero ciclo di fornitura del software;
  • tool di analisi statica del codice, per analizzare la conformità con regole definite, inclusa la compliance con standard di codifica e di architettura software;
  • strumenti di costruzione delle build, compilatori compresi;
  • soluzioni per tenere traccia delle versioni delle API (Application Programming Interface) e delle loro dipendenze;
  • repository di file binari e metadati, che aiutano a migliorare la qualità attraverso la standardizzazione dei componenti.

Classici tool Ops: non servono solo in produzione

Man mano che si afferma la progressiva attenuazione della linea di demarcazione tra ambienti di sviluppo (Dev) e IT operation (Ops), gli sviluppatori, evidenzia Forrester, adottano alcuni tool Ops tradizionali per fornire il software con maggior rapidità. In altre parole, per migliorare la coerenza del codice e rimuovere i rischi, anche i team di sviluppo necessitano degli stessi tool e processi automatici usati dalle IT operation per l’implementazione delle applicazioni in produzione.

Infine c’è anche da considerare il fatto che l’automazione sta cambiando la natura del processo di assicurazione di qualità (QA – quality assurance), portando a un cambiamento nelle competenze e tool che gli addetti QA utilizzano per collaudare il software. In particolare, il testing funzionale manuale sta perdendo terreno, a favore del collaudo funzionale automatizzato.

Inoltre la virtualizzazione dei servizi, simulando i sistemi di produzione, permette di evitare l’esatta replicazione di tali ambienti, tra l’altro poco pratica e costosa, nei reparti di sviluppo e test. Tra i cambiamenti per facilitare le attività di collaudo, i team in alcune organizzazioni stanno migrando verso processi di test automatizzati basati su API. Un ulteriore trend è lo spostamento del test di carico e prestazioni sempre più nelle fasi iniziali di progettazione, per consentire agli sviluppatori di collaudare le performance il più possibile in anticipo all’interno del processo di sviluppo.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4