Cloud Migration per ISV e IT: come iniziare e le strategie per essere davvero innovativi. Una nuova guida pratica nel cuore del progetto #DevRev. Dopo la prima straordinaria guida dedicata al DNA degli ISV e sviluppatori (qui trovate tutta la guida) come forme di vita preziosissime sul mercato, ora facciamo un passo in avanti raccontando il potere che il cloud mette nelle mani dei maghi del software. (Qui anche la classifica dei linguaggi di programmazione più utilizzati)

Il Cloud Computing ha aperto una nuova era nell’efficienza digitale, fatta di possibilità operative e gestionali in grado di superare la fisicità e i colli di bottiglia delle infrastrutture IT locali, per raggiungere dimensioni informatiche fino a pochi anni fa davvero inimmaginabili.

Per quale motivo la Cloud Migration sta diventando un appunto inderogabile nell’affollata to-do list degli IT aziendali? Come evolve il ruolo del software in questo contesto? La risposta a queste domande apre numerose opportunità di business per gli ISV (Independent Software Vendor) chiamati non solo a scrivere applicativi fini a sé stessi, ma a qualcosa di molto più profondo, dirompente, irrinunciabile: la nuova generazione di software ha la missione di ridefinire radicalmente la user experience online di miliardi di persone, grazie alle opportunità che le architetture Cloud sono finalmente in grado di supportare.

Vediamo quali sono i punti essenziali della Cloud Migration, una piccola guida orientativa, una bussola nella grande nuvola del web, in cui è davvero facile perdersi tra le innumerevoli opportunità che si prospettano all’orizzonte.

Cloud Computing: le tipologie di servizi IaaS, Paas e SaaS

A prescindere dalle implementazioni di Cloud Computing (privato, pubblico, ibrido) che l’IT decide di valutare nel processo migratorio di un’applicazione, di un database piuttosto che dell’intera infrastruttura aziendale, per inquadrare un contesto strategico è importante precisare quali sono le tipologie di servizi e cosa consentono di effettuare, sia per quanto concerne le nuove applicazioni che nell’ottica di una migrazione. Ne esistono molte, ma le principali tipologie di servizi cloud sono sostanzialmente tre: IaaS, PaaS e SaaS.

·       IaaS (Infrastructure as a Service)

L’infrastruttura distribuita come servizio, come suggerisce il termine stesso, offre all’utente le risorse su cui installare e gestire in totale autonomia le proprie applicazioni. Nell’offerta ritroviamo servizi come lo spazio e le funzioni per l’archiviazione dei dati, il networking, le macchine fisiche e virtuali oltre alla potenza di calcolo da allocare per eseguire le applicazioni particolarmente esose dal punto di vista computazionale (big data, machine learning, rendering, ecc.).

·       PaaS (Platform as a Service)

La piattaforma distribuita come servizio, oltre a possedere il livello infrastrutturale, è nativamente concepita per supportare l’intero ciclo di vita delle applicazioni erogabili via web: creazione, testing, distribuzione e successivi aggiornamenti. Per garantire questo obiettivo, il PaaS dispone pertanto di sistemi operativi, sistemi di sicurezza, sistemi di gestione dei database (es. SQL e NoSQL) e analisi approfondita dei dati, strumenti di business process management (BPM) e ambienti/framework di sviluppo software.

Rispetto ad un IaaS puro, la ricorrenza ad una piattaforma PaaS è particolarmente rilevante nel contesto in cui l’azienda sceglie di migrare da un’infrastruttura locale al Cloud, nonostante non sia sempre del tutto agevole l’integrazione dei servizi offerti dalla piattaforma online con i sistemi esistenti. I PaaS sono comunque dotati di molti tool ottimizzati per agevolare i vari aspetti dell’integrazione stessa, tramite connettori di servizi Cloud e on premise, integrazione Big Data e gestione API.

·       SaaS (Software as a Service)

Oltre alle infrastrutture ed alle piattaforme, è possibile utilizzare il Cloud anche per distribuire il software. In questo caso il SaaS si colloca ad un livello di fruizione ancora più alto rispetto a IaaS e PaaS, in quanto il provider è in grado di offrire delle vere e proprie applicazioni per l’utente finale.

A differenza della connotazione tradizionale, che vede l’acquisto di una licenza permanente ed un’installazione sempre in locale, il software distribuito come servizio è solitamente fruibile via web, con l’eventuale local app (desktop o mobile) con un accesso solitamente dall’acquisto di un abbonamento, che consente di utilizzare il software per un determinato periodo. È possibile articolare un piano di pricing rivolto sia agli utenti individuali che alle grandi aziende, che necessitano fino a migliaia di account differenti per abilitare i propri dipendenti.

I modelli a servizio sono pertanto una delle ragioni per cui il cloud sta diventando un campo d’azione privilegiato per gli ISV.

Cloud Migration: una questione di strategia e di rispetto dei valori aziendali

Gli approcci migratori al cloud comprendono un’ampia varietà di percorsi, che devono essere valutati funzionalmente alle specifiche esigenze di un’azienda, per cercare di raggiungere determinati obiettivi. Nel fare ciò, occorre tenere debitamente conto dei vincoli tecnologici e organizzativi da cui l’azienda stessa non può prescindere, se vuole evitare delle discontinuità di servizio, o più semplicemente in funzione del budget disponibile, ancor prima di prendere in considerazione le caratteristiche delle applicazioni da migrare e le competenze del team IT stesso nel gestire le operazioni previste.

Nella Cloud Migration esistono varie strategie di riferimento, tra cui possiamo identificarne fondamentalmente quattro, con riferimento alle tre tipologie di servizi cloud più ricorrenti. Il range d’azione varia dall’applicazione legacy già esistente nella pipeline aziendale all’applicazione cloud native, concepita ex novo per la distribuzione via web sulla nuvola.

–        Re-hosting (Lift and Shift) – (IaaS)

Consiste nel migrare in cloud l’infrastruttura on-premise, su cui girano abitualmente le applicazioni. Essendo un approccio “as is”, la componente software non necessita di radicali stravolgimenti, ma sarà chiamata a funzionare in un ambiente posizionato in cloud anziché su un’infrastruttura locale. È la ragione per cui si rende spesso necessaria variare l’interfaccia d’accesso alle applicazioni, con front end caratterizzati da una pagina web, cui gli utenti accedono in remoto.

–        Re-platforming – (PaaS)

Consiste nel migrare da una piattaforma locale ad una piattaforma in cloud, caratterizzata da un differente ambiente di esecuzione (runtime), cui il software va necessariamente adattato. Si tratta di un’ottimizzazione piuttosto complessa, in quanto anche se l’applicazione mantiene invariata la sua architettura logica, è necessario intervenire in profondità sul software di sistema, sul framework di sviluppo e sul codice sorgente. Ciò non è sempre conveniente, soprattutto nel caso di applicazioni che non sono nate per la distribuzione in cloud.

–        Re-factoring – (PaaS)

Consiste nella parziale o totale riscrittura del software, per renderlo come si suol dire “cloud ready”, prima di migrare su una piattaforma cloud. Il re-factoring risulta essenziale da una duplice prospettiva: consentire una migrazione funzionale dell’applicazione esistente, nel caso in cui lo stato di fatto non lo consenta, ma soprattutto prevedere una logica di ulteriore sviluppo e aggiornamento in grado di sfruttare davvero le opportunità concesse dai servizi in cloud. A differenza del re-platforming varia pertanto anche l’architettura logica del software, che da legacy diventa in buona sostanza equiparabile ad un cloud native.

–        Re-purchasing – (PaaS / SaaS)

Siamo nel cosiddetto ambito cloud native, nello specifico quando un software esistente viene dismesso a favore di una nuova applicazione, nativamente concepita con logiche cloud-based. Rispetto alle strategie elencate in precedenza, non riscontriamo una migrazione di qualcosa di esistente per quanto riguarda un software, ma alla sua sostituzione con un modello basato su una distribuzione SaaS. Dal punto di vista IT, questo approccio costituisce ovviamente il caso più semplice, ma non per questo sempre il più indicato, dal momento che nella scelta non incidono soltanto aspetti di natura tecnico-informatica.

Anche se, per ovvie ragioni, un approccio modernista costituisce una “scorciatoia” certamente allettante, il suo sbilanciamento in funzione del Cloud Native va ponderato con estrema attenzione, in quanto per molte aziende i sistemi e le applicazioni legacy costituiscono un patrimonio determinante, grazie ad archivi straordinariamente ricchi di dati e tradizione digitale, che andrebbero conservati anche in funzione della totale ridefinizione del software che li implementa.

Se dal punto di vista IT la metamorfosi può avvenire anche in maniera piuttosto radicale, la trasformazione digitale di un’azienda non equivale di certo a resettare la tradizione di un brand. Al contrario, le potenzialità del cloud consentono di valorizzare gli asset di un’azienda, rendendoli fruibili attraverso esperienze digitali molto più coinvolgenti.

Da sinistra a destra il continuum delle strategie migratorie in cloud, che vanno da uno spostamento “as is” fino alla totale riscrittura “cloud native” delle applicazioni (credit: Oracle)

Cloud per ISV: OCI (Oracle Cloud Infrastructure), l’ambiente di sviluppo su misura per DevOps

L’approccio a uno o più scenari strategici di Cloud Migration, che si tratti di modernizzare un software, piuttosto che di trasformarlo in maniera sostanziale, consente agli ISV di fare affidamento su contenitori e microservizi, nell’ottica di conservare l’investimento effettuato nello sviluppo e nell’aggiornamento delle applicazioni originali. È dunque possibile modernizzare il software con un approccio DevOps, per realizzare il progetto di sviluppo in maniera veloce ed efficiente, grazie all’automazione di tutte le fasi fondamentali. Si tratta dunque di un approccio pienamente compatibile con le metodologie Agile, tra cui il framework Scrum, sempre più utilizzato per la gestione ottimale dei progetti e dei prodotti.

In un sondaggio con cui Oracle ha coinvolto oltre 2000 aziende in tutto il mondo, l’81% degli intervistati ha rivelato come la capacità di sviluppare rapidamente, testare e lanciare nuove applicazioni di business costituisce un fattore determinante, proprio grazie alla sua agilità. L’approccio cloud based allo sviluppo di nuovi applicativi consente un minor time to market rispetto alle metodologie tradizionali, un fattore enfatizzato dalla forte integrazione tra i vari modelli in cui gli sviluppatori sono chiamati ad intervenire: IaaS e soprattutto PaaS e SaaS.

Sulla base di questi presupposti, Oracle Cloud Infrastructure offre agli ISV e ai team IT aziendali una serie di servizi in grado di garantire maggior potenza, maggior scalabilità per ridurre sensibilmente i costi generali. L’approccio è fortemente orientato verso quattro operazioni fondamentali:

  • Trasferimento delle applicazioni al Cloud
  • Carichi di lavoro con performance intensive
  • Archivio dello storage basato sul Cloud
  • Gestione di sviluppo e DevTest nel Cloud

Se alcuni cloud architect sostengono che distribuire i servizi utilizzando più provider possa ridurre i rischi di lock-in, è al tempo stesso innegabile come un provider in grado di offrire un sistema cloud completamente integrato possa sollevare le risorse IT da una gestione che può essere del tutto automatizzata, consentendo loro di occuparsi di questioni più legate all’innovazione delle applicazioni aziendali. Questi aspetti sono particolarmente rilevanti nei contesti basati su architetture IT anche molto complesse, come quelle cloud-to-edge, strutturate su varie livelli. È il caso delle applicazioni IoT, dove le risorse IT sono chiamate ad un oneroso lavoro di gestione delle cosiddette periferie, dove i cosiddetti smart objects operano a bassa latenza, interconnessi con architetture IT caratterizzate da più livelli, che vanno dalle informazioni raccolte singolo sensore on board all’invio al cloud dei dati elaborati in locale.

Gli aspetti di infrastruttura IT (data storage, database, network, computing, sicurezza, ecc.), se allocati in cloud, sono ormai controllabili in maniera quasi del tutto automatizzata, il che consentirebbe all’azienda di concentrare le proprie risorse IT per le operazioni più strategiche in funzione del proprio business: che si tratti di gestire una linea di produzione interna piuttosto che la manutenzione predittiva degli impianti diffusi sul territorio, giusto per citare due tra gli esempi più ricorrenti in ambito industriale.

Lo stesso discorso vale naturalmente per gli ISV, che a fronte di un’elaborata strategia per diversificare in multicloud la distribuzione dei pacchetti applicativi, possono preferire un sistema integrato dove gestire tutte le risorse necessarie, attraverso un’unica interfaccia di gestione, con cui controllare lo status delle proprie macchine virtuali, dei container e degli strumenti di orchestrazione necessari.

Cloud Migration, come valutare i KPI: una questione di mindset

La migrazione al cloud non è riconducibile ad un solo assetto, esistono infinite possibilità e sta in primis ai cloud architect individuare la strategia più efficace per raggiungere determinati obiettivi. Per sfruttare appieno i vantaggi offerti dal cloud è comunque necessario acquisire e diffondere in azienda un nuovo mindset, per andare oltre il semplice fare in remoto ciò che prima si faceva in locale. Un trasferimento “As Is” privo di una prospettiva di reale innovazione dato dal modello a servizio, sarebbe infatti poco futuribile, come lo era il binario morto su cui l’applicazione stessa viaggiava prima di essere migrata.

I KPI (key performance indicator) con cui misurare l’efficace di una Cloud Migration andrebbero quindi impostati sia considerando gli aspetti tecnici, come le performance delle applicazioni (es. tempi di caricamento, utilizzo risorse computazionali, ecc) e la validità dell’infrastruttura (utilizzo risorse memoria, gestione di rete, ecc.), cui aggiungere aspetti relativi alla user experience, come la semplicità d’uso e gestione delle applicazioni stesse, sia da parte degli utenti finali, sia del team IT chiamato a supportarli quotidianamente.

Limitare i KPI alla sola componente tecnologica sarebbe pericoloso, se non addirittura fuorviante, in quanto le applicazioni, a maggior ragione quando vengono modellate come servizi, nascono e vivono in funzione delle esigenze degli utenti chiamate ad utilizzarle quotidianamente. È dunque importante coinvolgere l’utenza cercando di ottenere dai dipendenti e dalle user community dei software applicativi i feedback essenziali per migliorare progressivamente la qualità del servizio.

La bilancia su cui misurare il successo di una strategia Cloud Migration sarebbe opportuno si fondasse su valutazioni cross disciplinari, per capire come l’applicazione in cloud sia in grado di soddisfare gli obiettivi tecnologici, di design e di business, in funzione della maggior efficienza generale in termini di gestione dei costi e riduzione del time

Cloud Migration per ISV e IT: come iniziare e le strategie per essere davvero innovativi ultima modifica: 2021-03-26T11:03:56+00:00 da Francesco La Trofa

LEAVE A REPLY

Please enter your comment!
Please enter your name here