Questo sito utilizza cookie per raccogliere informazioni sull'utilizzo. Cliccando su questo banner o navigando il sito, acconsenti all'uso dei cookie. Leggi la nostra cookie policy.OK

DevOps: integrare i tool, automatizzare per migliorare i team

pittogramma Zerouno

Technology HowTo

DevOps: integrare i tool, automatizzare per migliorare i team

11 Ago 2017

di Giorgio Fusari

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

 

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.

Giorgio Fusari
Giornalista

Nel settore giornalistico dal 1989, Giorgio Fusari negli anni ha collaborato per numerose pubblicazioni nel panorama tecnologico e ICT italiano, tra cui la rivista NetworkWorld Italia (gruppo IDG); il settimanale di tecnologia @alfa, del quotidiano Il Sole 24 Ore, la testata Linea EDP. Dal 2012 collabora con il gruppo Digital360 e in particolare con ZeroUno. Tra le aree di maggior specializzazione di Giorgio, il crescente universo dei servizi cloud, il networking, le tecnologie di cybersecurity.

Articolo 1 di 4