Panoramica
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 metodologie di sviluppo tradizionali, 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 e alla sostituzione dell'applicazione.
Combinando tutti questi aspetti, l'approccio ALM consente di accelerare il deployment, 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.
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 che 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.