Oggi, il livello di efficienza, qualità e velocità portato dalla trasformazione digitale nella gestione dell’IT fa emergere esigenze di ‘time-to-market’ e ‘quality assurance’ che impongono un radicale cambio di paradigma anche nella gestione del ciclo di sviluppo e fornitura del software, quindi dell’infrastruttura SDLC (software development life cycle) in tutta la sua complessità. Questo paradigma si chiama Agile/DevOps, e sovverte profondamente il tradizionale modello ‘waterfall’, improntato su fasi sequenziali, instaurando un metodo di sviluppo parallelo e iterativo, costituito da diversi cicli di sviluppo e rilascio del software. Nel fare ciò, il modello DevOps, chiarisce Gartner, pone l’accento sul cambiamento culturale dell’IT, puntando a migliorare la collaborazione tra i team di sviluppo e le operation aziendali. Sono presenti sul mercato diversi tools per il DevOps, esaminiamone alcuni.
Diverse categorie di strumenti per diverse fasi del ciclo di sviluppo
Adottare la metodologia DevOps significa introdurre velocità, efficienza, affidabilità nel ciclo di sviluppo software: tuttavia, per implementare questo metodo, oltre a trasformare i processi organizzativi, occorre anche dotarsi degli strumenti corretti, necessari a presidiare le fasi chiave del ciclo di sviluppo. Per gestire ciascuna fase esistono infatti sul mercato molti tool, in continua crescita, sia open source sia proprietari, e classificabili in diverse categorie di strumenti, l’offerta disponibile include:
- tool per gestire la pianificazione delle iterazioni (sprint) e le release del software;
- tool per la scrittura del codice sorgente e la creazione delle build;
- tool CI/CD (continuous integration/continuous delivery) per automatizzare l’integrazione continua e il rilascio continuo del codice;
- tool di provisioning, controllo versione, e gestione delle configurazioni; strumenti dedicati al test e al deployment delle build; tool di monitoraggio, registrazione, auditing delle modifiche, e reporting dei problemi e bug;
- strumenti software per la gestione del ‘continuous feedback’ degli utenti;
- vi sono poi i tool per l’amministrazione dei container, della virtualizzazione, della sicurezza delle implementazioni all’interno dei team, e molto altro.
Una volta identificati i diversi strumenti, la sfida, nelle imprese, è riuscire a modellare la pipeline DevOps, implementando uno specifico set di tools (toolchain), il più possibile integrati e standardizzati, in grado di facilitare la collaborazione tra i team e rendere fluida l’amministrazione del workflow. L’alternativa è adottare un approccio DevOps as-a-service (DaaS), in cui è il provider del servizio a combinare, integrare, e far lavorare assieme, gli strumenti software necessari a coprire le vari fasi del ciclo di sviluppo.
Di seguito, forniamo una breve selezione di strumenti per la gestione dell’infrastruttura DevOps. Naturalmente, si tratta di una mini-rassegna che non può, né vuole, essere esaustiva, ma solo indicare alcune soluzioni interessanti di cui abbiamo potuto raccogliere informazioni attraverso le segnalazioni delle principali società di analisi internazionali.
I tools per implementare un’infrastruttura DevOps
CA Release Automation
Produttore: CA Technologies
Scheda tecnica di: CA Release Automation
Distribuzione: on premise
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
CA Release Automation permette di standardizzare, semplificare e automatizzare la pipeline di continuous delivery (CD), gestendo a livello ‘end-to-end’ il rilascio delle applicazioni. La soluzione è costituita da due componenti distinti in grado di operare in modo sinergico: uno è il motore di automazione, che centralizza la distribuzione delle release di applicazioni in server, data center, infrastrutture cloud, in maniera veloce e affidabile; l’altro è CA Release Automation Continuous Delivery Edition, che pianifica, gestisce e ottimizza la pipeline CD. Tra i pregi si collocano la scalabilità e l’apertura della piattaforma, integrabile anche con altre catene di strumenti di CD. Tra le caratteristiche più apprezzate, la possibilità di usare un ‘single pane of glass’, ossia un unico punto di controllo, per amministrare le operazioni di pianificazione ed esecuzione delle release. Le dashboard personalizzabili aiutano a mantenere visibilità e controllo sui processi di rilascio nella pipeline CD. Alcuni utilizzatori segnalano rallentamenti, di tanto in tanto, nell’utilizzo dell’interfaccia utente.
CloudBees Jenkins Enterprise
Produttore: CloudBees
Scheda tecnica di: CloudBees Jenkins Enterprise
Distribuzione: on premise e in cloud
Supporto e assistenza in Italia: clicca qui o qui
Jenkins è un server di automazione open source, che si colloca nella categoria degli strumenti di continuous delivery (CD). Questo server può essere utilizzato per automatizzare qualunque tipo di task connesso allo sviluppo, al testing, alla fornitura o all’implementazione del software. Jenkins è installabile attraverso i pacchetti di sistema nativi, oppure tramite container Docker, ma può funzionare anche come applicazione standalone su macchine con installato Java Runtime Environment (JRE). Il limite della versione open source è talvolta la carenza di funzionalità, sicurezza, scalabilità, solitamente riscontrabili nelle versioni commerciali.
CloudBees Jenkins Enterprise è uno strumento creato da CloudBees, società di San Jose, California, che occupa un ruolo di rilievo nella community di Jenkins. CloudBees Jenkins Enterprise fornisce un ‘Operation Center’ con funzionalità ‘enterprise-grade’ e caratteristiche che aiutano le organizzazioni a scalare i processi di continuous integration e delivery (CI/CD). Ad esempio, il tool è in grado di erogare funzioni di ‘continuous delivery as a service’ ai team interni; e può rispondere alle esigenze di sicurezza, gestendo gli accessi e la compliance dei team da una dashboard centralizzata.
Electric Cloud ElectricFlow
Produttore: Electric Cloud
Scheda tecnica di: Electric Cloud ElectricFlow
Distribuzione: on premise
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
Nel sottolineare la capacità della soluzione ElectricFlow di accrescere l’efficienza dell’IT nell’orchestrazione delle release software, nell’automazione della pipeline e del deployment e gestione dell’ambiente, Electric Cloud ricorda di essere stata posizionata dalla società di analisi Gartner, per il terzo anno consecutivo, come ‘leader’ nel ‘Magic Quadrant’ del report sulle applicazioni ARO (application release orchestration). Come piattaforma di fascia enterprise, ElectricFlow è in grado di supportare molteplici team che lavorano in molte sedi e programmano per differenti piattaforme e sistemi target. Oltre a fornire una gestione centralizzata e un’ampia scalabilità, il sistema è progettato per supportare procedure riutilizzabili, una pronta disponibilità delle best practice per i singoli team, e per eliminare la duplicazione delle attività. Da rilevare, accanto alle funzionalità di orchestrazione delle release, automazione del deployment, gestione pipeline e ambiente, l’esistenza di tool analitici con metriche e KPI di valutazione delle performance delle singole attività.
IBM UrbanCode Deploy
Produttore: IBM
Scheda tecnica di: IBM UrbanCode Deploy
Distribuzione: on premise
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
Si tratta di una soluzione di automazione dei processi di rilascio delle applicazioni che consente di eseguire il deployment delle stesse in data center distribuiti, ambienti virtualizzati e nel cloud. È possibile automatizzare il deployment, l’aggiornamento, il rollback, la disinstallazione delle applicazioni. Le funzionalità di controllo e verifica permettono di tener traccia della pipeline di sviluppo, includendo la capacità di determinare quali versioni sono implementate in quali ambienti. Il provisioning dei nuovi ambienti e il deployment e aggiornamento delle applicazioni può avvenire su vari cloud, pubblici e privati. Tra le integrazioni, IBM UrbanCode Deploy può eseguire operazioni aututomatizzate su oltre 100 applicazioni IBM e di terze parti, come IBM WebSphere Application Server, CICS TS, Jenkins, Apache Tomcat e Docker, attraverso una libreria di plug-in supportati. Alcuni utenti segnalano che l’esecuzione di molteplici deployment in una volta sola influenza le prestazioni del tool; altri ritengono complessa la gestione e manutenzione degli agent.
Jira Software
Produttore: Atlassian
Scheda tecnica di: Jira Software
Distribuzione: on premise e in cloud
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
La piattaforma integra in un solo software DevOps diverse funzionalità, tra cui quelle di project management ispirate al modello Agile, e quelle per la gestione delle release software, e consente ai diversi membri del team di sviluppo software di pianificare e organizzare compiti, workflow, report.
Tramite le bacheche personalizzabili è possibile pianificare sprint e distribuire task nell’ambito del gruppo di lavoro, classificare i compiti per priorità, e organizzare le attività con i membri del team, con la consapevolezza che le informazioni a disposizione sul progetto, e sul suo stato di avanzamento, restano sempre aggiornate e condivise. Non mancano funzionalità di gestione della timeline e dei KPI (key performance indicator) sulle prestazioni del team. In generale, Jira Software viene valutato dagli utenti come uno strumento estremanente robusto negli ambienti enterprise, anche se talvolta il layout dell’interfaccia, e la lista progetti, possono risultare complessi da controllare e padroneggiare, nelle navigazione e nella ricerca d’informazioni.
Microsoft Azure DevOps
Produttore: Microsoft
Scheda tecnica di: Microsoft Azure DevOps
Distribuzione: in cloud
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
La suite di tools DevOps di Azure, spiega Microsoft, è il frutto di 15 anni di investimenti e apprendimenti nella fornitura di tool per supportare i team di sviluppo software. La suite include svariati strumenti che l’utente può adottare in toto, o solo in parte, in funzione delle necessità. Ad esempio, Azure Pipelines permette di automatizzare le compilazioni e le distribuzioni applicative. È possibile compilare, collaudare e distribuire app in vari linguaggi (Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, iOS). Inoltre, i team possono implementare la distribuzione continua del software in cloud differenti, tra cui Azure, Amazon Web Services (AWS), GCP (Google Cloud Platform). In aggiunta ad Azure Pipelines, la suite comprende diversi altri componenti, tra cui servizi di testing (Azure Test Plans), di repository (Azure Repos); servizi di condivisione del codice (Azure Artifacts), e servizi di pianificazione, verifica e analisi del lavoro svolto in diversi team (Azure Boards). Attraverso un marketplace per le estensioni (Extensions for Azure DevOps), gli utenti possono accedere a numerose estensioni, app e servizi, creati dalla community.
Puppet Enterprise
Produttore: Puppet
Scheda tecnica di: Puppet Enterprise
Distribuzione: on premise
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze
Il software DevOps Puppet Enterprise è costruito sulla base di progetti open source e, rispetto a questi ultimi, si arricchisce di un insieme completo di funzionalità ‘out-of-the-box’ per automatizzare i processi di delivery e le attività delle operation in infrastrutture di fascia enterprise. Sono, ad esempio, incluse funzionalità di automazione della configurazione dell’infrastruttura, che evitano il ricorso a script e operazioni manuali, spaziando su sistemi operativi, dispositivi di rete, midddleware, e applicazioni che possono girare on-premise, in container o nel cloud. Non mancano funzioni di automazione del provisioning, di orchestrazione applicativa, di gestione dei task, di visualizzazione e reporting, di gestione del codice, di amministrazione dei nodi fisici, virtuali e sul cloud; e funzioni di ‘role-based access control’ (RBAC) per consentire ai team di lavorare in maniera sicura e conforme alle policy. Per alcuni utenti il tool non è molto ‘user friendly’ e, in taluni casi, rende molto difficile la migrazione tra ‘community edition’ e ‘enterprise edition’.
XebiaLabs XL Deploy
Produttore: XebiaLabs
Scheda tecnica di: XebiaLabs XL Deploy
Distribuzione: on premise
Supporto e assistenza in Italia: clicca qui per trovare il partner che risponde alle tue esigenze, oppure qui
Progettato per imprese che devono amministrare ambienti IT complessi, il software DevOps XL Deploy si colloca idealmente in tutti quei team di sviluppo che hanno l’esigenza d’implementare un crescente numero di applicazioni su sistemi target differenti e in aumento. La soluzione permette di automatizzare e standardizzare il deployment delle applicazioni in diversi ambienti e con differenti toolchain. È possibile accelerare la velocità d’implementazione delle nuove funzionalità, e renderle disponibili più rapidamente ai clienti, riducendo al contempo in modo significativo gli errori e abbassando il rischio di implementazioni fallite. Tra i pregi chiave, l’azienda indica XL Deploy come un eccellente complemento per strumenti come Jenkins, Puppet, Chef, Ansible e Salt. Altre caratteristiche di rilievo includono l’architettura ‘agentless’ e una gestione evoluta delle funzionalità di enterprise security. Alcuni utenti riportano che, rispetto ad altri tools DevOps, la dashboard di questo non sempre segnala le informazioni in modo affidabile, e riferiscono anche qualche problema di stabilità con alcuni plug-in.