Dallo sviluppo al cloud: il ciclo di vita delle applicazioni modern

SOFTWARE SOLUTIONS - 30 ottobre 2019

I nuovi paradigmi di computing come cloud, mobile e cognitive, stanno generando interessanti opportunità per le aziende sotto il profilo del risparmio, dell’efficienza e dell’innovazione. Tuttavia, l’adesione ai modelli IT di ultima generazione in sostituzione dei sistemi tradizionali, richiedono la modernizzazione delle applicazioni legacy, nonché un cambio nelle metodologie di sviluppo del software e gestione del ciclo di vita.

 

Le esigenze tecnologiche per un business che corre

Oggi le imprese di qualsiasi settore e dimensione devono fare i conti con un panorama competitivo internazionale e fortemente digitalizzato, che obbliga a una profonda revisione organizzativa con l’obiettivo di personalizzare l’offerta e accelerare il time-to-market. Il business chiede tecnologie a supporto delle attività aziendali in grado di sostenere più alti livelli di performance e flessibilità, riducendo tuttavia i costi di implementazione e manutenzione.

Le applicazioni modern diventano il cuore della nuova Digital Enterprise: veloci nella progettazione e nel deployment, rispondono alle attuali esigenze delle Lob garantendo interfacce user-friendly, accesso facile e sicuro da qualsiasi dispositivo, disponibilità sempre e ovunque.

La nuvola invece rappresenta l’architettura principe per i nuovi ecosistemi IT: si tratta di ambienti multi-cloud, dove non sono solo le infrastrutture a diventare ibride, ma le stesse applicazioni. I software infatti devono essere in grado di girare su sistemi differenti, in modalità tradizionale o as-a-service, nelle sedi aziendali o nei datacenter del provider. Si aprono quindi scenari di progettazione differenti, spaziando dall’adozione dei container (che permettono lo sviluppo rapido del software per ambienti legacy o cloud grazie all’utilizzo di risorse elementari standard) all’application modernization per la trasposizione dei programmi tradizionali verso i modelli as-a-service e sulla nuvola.

 

Le applicazioni vanno in cloud

L’obsolescenza delle applicazioni oggi è un problema spinoso per moltissime organizzazioni, che riguarda sia il personale IT sia l’utenza aziendale: l’impiego di software basati su framework ormai superati o addirittura giunti al fine vita (quindi rimasti senza aggiornamenti di funzionalità e sicurezza) comporta numerose criticità sia in termini di gestione e protezione sia sul piano delle performance e della semplicità d’uso.

Occorre pertanto perseguire una strategia di modernizzazione del parco software, nell’ottica di una strategia cloud first, che permetta di soddisfare le necessità applicative del business (accesso multi-device, disponibilità 24x7, usability, velocità di time-to-market e così via).

Le tattiche per conseguire l’obiettivo e adattare i programmi al paradigma as-a-service possono essere molteplici.

Il re-hosting (ovvero la cosiddetta strategia Lift-and-Shift) consiste nella semplice trasposizione dell’applicazione e dei dati associati sulla nuvola senza modifiche al codice o alle caratteristiche funzionali.

Il re-platforming (conosciuto anche come approccio Lift-Tinker-and-Shift) comporta la modifica più o meno profonda del codice con l’obiettivo di ottimizzare gli attributi funzionali e strutturali dell’applicazione per cogliere appieno i benefici della migrazione su infrastrutture as-a-service e semplificare le successive operazioni di manutenzione. L’applicazione, migliorata in termini di flessibilità e integrazione con le tecnologie cloud native, potrà quindi sfruttare e avvantaggiarsi di tutto un nuovo portfolio di servizi come ad esempio le architetture serverless o i database sulla nuvola.

A volte però si rendono necessari interventi più spinti e il programma va riscritto completamente partendo da zero ma preservandone le caratteristiche funzionali. Il re-building punta a sviluppare una nuova applicazione cloud nativa, utilizzando direttamente le architetture a microservizi e gli strumenti messi a disposizione dagli ambienti PaaS (Platform-as-a-Service). La tecnica della containerizzazione si rivela oggi tra le più accreditate per lo sviluppo di applicazioni moderne con un alto livello di scalabilità, velocità di deployment e portabilità tra ambienti eterogenei. Semplificando, un container è un server virtualizzato a livello di sistema operativo. A differenza delle macchine virtuali, infatti, non ricrea un’istanza di tutti gli asset fisici (sistemi di storage, unità di calcolo, apparati di rete e così via) ma solo dell’ambiente di esecuzione delle applicazioni. I container mettono sostanzialmente a disposizione delle applicazioni risorse reali condivise, accessibili secondo criteri stabiliti; rispetto a una VM, richiedono meno risorse computazionali e tempi di attivazione ridotti. 

Ovviamente non sempre è possibile eseguire il re-hosting applicativo e in certi casi le altre tecniche di modernizzazione possono risultare poco convenienti. Esistono infatti situazioni in cui si rende necessaria la sostituzione delle vecchie applicazioni con altre soluzioni cloud-native, in grado di svolgere analoghe funzionalità.

Come ultima considerazione, bisognerebbe valutare se le applicazioni in oggetto siano davvero indispensabili alle attività aziendali oppure potrebbero essere tranquillamente dismesse.

 

I passi verso la modernizzazione applicativa

È chiaro che il passaggio alle applicazioni moderne comporta uno sforzo non banale per l’intera organizzazione (i Sistemi Informativi devono impiegare tempo e risorse per la migrazione in cloud o l’eventuale software selection, ma anche gli utenti devono essere formati e abituarsi ai nuovi strumenti). È quindi preferibile studiare a monte quali software sono utili all’azienda e vanno mantenuti, lasciando aperta l’ipotesi di dismettere alcuni programmi.

La scelta di aprirsi all’application modernization implica anche una migliore collaborazione tra team informatico e utenza aziendale: è infatti sulla spinta del business che si attiva il processo di evoluzione applicativa, alla luce delle nuove necessità competitive. Saranno quindi le Lob a chiarire i propri bisogni e a richiedere nuove funzionalità software ai colleghi dell’IT. Importante risulta anche l’adozione di metodologie DevOps e Agile per la progettazione applicativa: lavorando in costante sinergia, i team di sviluppo e produzione possono accelerare i tempi di rilascio dei software, con la possibilità di apportare modifiche molto rapidamente, venendo incontro alle richieste del business.

New call-to-action

Topics: Software Solutions
Condividilo su: