Accedi / Registrati Account

DevOps

Cos'è la gestione del ciclo di vita delle applicazioni?

Jump to section

La gestione del ciclo di vita delle applicazioni (ALM) è un approccio che include tutte le persone, gli strumenti e i processi necessari per gestire il ciclo di vita di un'applicazione, dalla sua concezione alla dismissione. 

Questo tipo di gestione accorpa varie discipline che con le vecchie metodologie di sviluppo, come quelle a cascata, e i vecchi metodi di gestione dei progetti erano spesso separate in gestione dei requisiti, sviluppo software, test e controllo qualità, deployment e manutenzione. 

L'ALM supporta le metodologie di sviluppo agile e DevOps , integrando tutte queste discipline fra loro e promuovendo una più efficace collaborazione tra i team a vantaggio dell'azienda. 

L'adozione di ALM comporta inoltre la distribuzione continua di software e aggiornamenti con rilasci frequenti, anche più volte al giorno, anziché pubblicare le nuove versioni a distanza di vari mesi o solo una volta l'anno.

Tale approccio fornisce inoltre un framework per lo sviluppo del software, semplificando al tempo stesso la gestione del software a lungo termine. Le procedure ALM consentono di trasformare un'idea in un'applicazione utilizzando piani e requisiti minimi prestabiliti. 

Quando si adotta una approccio ALM per lo sviluppo del software, è importante considerare l'intera durata dell'applicazione, tenendo conto di manutenzione e aggiornamenti futuri, fino alla dismissione dell'applicazione. 

Combinando tutti questi aspetti, l'approccio ALM consente di accelerare l'implementazione, aumentare la visibilità del flusso di lavoro, migliorare la qualità dei prodotti e accrescere la soddisfazione degli sviluppatori.

 

Fasi dell'application lifecycle management

L'approccio ALM garantisce visibilità su tutto il processo di sviluppo. Trattandosi di un processo integrato, consente di vedere i progressi compiuti, le fasi da portare a termine, il tempo richiesto dalle varie attività, i test completati e molto altro ancora.

Governance delle applicazioni

La governance descrive le decisioni prese in merito a una determinata applicazione. Quando si crea una nuova applicazione, si parte dall'idea iniziale dell'app e si individua la relazione con le esigenze e gli obiettivi aziendali.

Questo aiuta a identificare i requisiti della nuova applicazione, che devono essere definiti e concordati durante la fase di governance. 

Anche la gestione delle risorse, i dati, la sicurezza e l'accesso utente fanno parte della governance di un'applicazione. 

Standardizzando questi processi, è possibile automatizzare la governance, e automatizzando i processi di governance è possibile accelerare la distribuzione delle applicazioni.

Sviluppo applicativo

Una volta definiti e concordati i requisiti dell'applicazione o dell'aggiornamento, è possibile iniziare la fase di sviluppo. I team che adottano la metodologia agile possono sviluppare ed eseguire il deployment di applicazioni anche più volte al giorno. 

Le attività di progettazione, la generazione, i test e il deployment dell'applicazione possono essere tutte considerate parte della fase di sviluppo.

Test del software

Terminato lo sviluppo della nuova applicazione, occorre testarla e risolverne i bug, prima di passare alla fase di produzione. 

Per i team agile e DevOps i test dovrebbero essere eseguiti parallelamente allo sviluppo, restituendo un feedback agli sviluppatori in maniera continuativa. 

Anche l'integrazione continua dovrebbe fare parte del processo di sviluppo, al fine di evitare la creazione di conflitti fra gli aggiornamenti frequenti. 

La fase di test ha lo scopo di verificare che i requisiti definiti nella fase di governance siano soddisfatti e che l'applicazione funzioni come previsto, prima di essere rilasciata agli utenti.

Operazioni e manutenzione

Una volta completati i test e corretti i bug necessari, l'applicazione può essere distribuita agli utenti. 

La fase operativa e di manutenzione dell'approccio ALM prosegue per tutta la vita utile dell'applicazione. Le operazioni non terminano con la distribuzione dell'applicazione. Occorre prevedere interventi di manutenzione e aggiornamenti regolari, 

considerando anche la dismissione di un'applicazione o servizio nell'ambito della manutenzione. I team devono identificare il momento in cui una determinata applicazione non sarà più supportata o verrà rilasciata una nuova versione.

ALM e SDLC

L'approccio ALM viene talvolta confuso con il ciclo di vita di sviluppo del software (SDLC), perché riguardano entrambi il processo di sviluppo del software. La differenza principale è data dal fatto che, mentre SDLC si concentra soprattutto sulla fase di sviluppo, ALM copre l'intero ciclo di vita di un'applicazione, dalla concezione alla manutenzione, fino all'eventuale smantellamento, e prosegue anche oltre lo sviluppo dell'applicazione. 

SDLC può essere considerato parte della gestione del ciclo di vita di un'applicazione, soprattutto durante le fasi di sviluppo, test e distribuzione. L'approccio ALM può invece includere vari cicli di sviluppo per una determinata applicazione.

 

Strumenti per l'application lifecycle management

Gli strumenti ALM sono sostanzialmente strumenti di gestione dei progetti, che consentono di coordinare persone e processi. Scegli uno strumento che offra il controllo delle versioni, consenta ai team di comunicare in tempo reale e includa funzionalità di gestione dei requisiti, stima e pianificazione dei progetti, gestione del codice sorgente e gestione dei test.

Potresti trovare un singolo strumento che include tutte le funzionalità necessarie oppure avere l'esigenza di integrare componenti aggiuntivi, ad esempio gli strumenti di sviluppo. L'importante è optare per uno strumento ALM che supporti anche il tuo processo di sviluppo, che può essere agile, a cascata, DevOps o qualsiasi altra cosa.

Esempi di strumenti ALM:

  • Atlassian Jira
  • Soluzioni IBM ALM
  • CA Agile Central
  • Microsoft Azure DevOps Server
  • Tuleap
  • Basecamp

 

Tecnologia enterprise a supporto dell'approccio ALM

La gestione ALM supporta un approccio DevOps, che si integra perfettamente con i container Linux®. I container offrono al team la tecnologia sottostante necessaria per uno stile di sviluppo cloud native e supportano un ambiente unificato per sviluppo, distribuzione, integrazione e automazione.

Kubernetes offre una strategia moderna per automatizzare le operazioni dei container Linux, consentendo di gestire in modo semplice ed efficace i cluster che eseguono i container Linux su cloud privati, pubblici o ibridi.

Red Hat® OpenShift®, la piattaforma Kubernetes di livello enterprise, offre ai team operativi e di sviluppo una piattaforma comune e un set di strumenti indispensabili per la creazione, la distribuzione e la gestione di applicazioni containerizzate su qualsiasi infrastruttura, per consentirti di realizzare i tuoi obiettivi ALM. 

Tutti gli strumenti essenziali per la gestione delle applicazioni

Red Hat OpenShift product logo

Una piattaforma container per le imprese basata su Kubernetes, che offre operazioni automatizzate in tutto lo stack per gestire deployment di cloud ibridi e multicloud. 

Red Hat Ansible Automation

Una tecnologia di automazione semplice e agentless in grado di migliorare i processi esistenti, di garantire l'ottimizzazione attraverso la migrazione delle applicazioni e di fornire un unico linguaggio per le attività di DevOps dell'intera organizzazione.

DevOps offre molte altre possibilità