Modernizzare per liberare il potenziale del cloud
23 Febbraio 2021
23 Febbraio 2021
Portare un'azienda sul cloud è solo l'inizio del viaggio: bisogna sfruttare al meglio l'enorme potenziale di efficienza e innovazione che esso offre. Ciò significa creare applicazioni e servizi specifici che massimizzino il valore dell'ambiente cloud.
Per i nuovi sviluppi greenfield questo non dovrebbe essere un problema. Che dire, però, del patrimomio legacy? Le grandi organizzazioni avranno nel loro portfolio centinaia, migliaia, forse anche decine di migliaia di applicazioni, molte delle quali mission-critical.
Per assicurarsi valore a lungo termine, è necessario decidere attentamente quali di queste applicazioni debbano essere modernizzate e in che misura. Bisogna anche considerare le scelte sull'infrastruttura e sull'architettura dei dati, sia che le applicazioni siano già state migrate con un approccio "lift and shift" o che sia appena stata avviata la migrazione al cloud.
Modernizzare le applicazioni: è probabile che già il rehosting delle applicazioni nel cloud riduca alcuni costi e risolva alcuni problemi di debito tecnico. Ma che differenza vedranno effettivamente gli utenti finali e quanto valore di business in più verrà effettivamente liberato? Per massimizzare davvero il valore del nuovo ambiente bisogna modernizzare le applicazioni per il cloud.
Modernizzare l'infrastruttura: mentre il mondo si muove verso un'infrastruttura definita dal software, i sistemi in grado di operare nel nuovo paradigma "infrastructure as code" stanno diventando essenziali. Modernizzare l'infrastruttura per questo tipo di ambiente, abilitando molta più automazione e intelligence-driven management, può ottimizzare in modo significativo non solo i costi, ma anche l'agilità e la flessibilità dell'azienda.
Modernizzare i dati: i dati sono il terzo pilastro chiave della strategia di modernizzazione. Oggi, in molte aziende, le architetture di dati legacy on-premise sono complesse, costose, non flessibili e difficili da mantenere. Le moderne architetture di dati del cloud, invece, permettono di usare i servizi di analisi avanzata degli hyperscaler, come il machine learning o il deep learning, a una velocità e con un livello di semplicità che in un vecchio data center sarebbe impossibile ottenere.
Si può scegliere tra vari approcci di modernizzazione, con costi diversi, diversi livelli di complessità e un diverso valore finale per l'azienda.
Il framework delle "7R" di Accenture suddivide questo spettro di possibilità in un set ben definito di opzioni per la migrazione. Man mano che si procede di livello, il grado di modernizzazione passa da zero (cioè rehosting e replacing) a una modernizzazione completa (cioè refactoring e reimagining).
Ecco alcune domande da porsi quando si deve decidere quale approccio del framework delle 7R è il più adatto per la propria azienda:
È una modernizzazione non essenziale, che però può determinare una migliore funzionalità delle applicazioni e produrre più valore.
Se alcuni aspetti dell'applicazione non sono compatibili con le operazioni cloud è necessario modernizzare. Non è possibile fare solo il rehosting.
In genere, quando si fa il replatforming di un'applicazione, si cerca di apportare al codice solo modifiche minime, quelle che servono per garantire che nella nuova piattaforma cloud essa abbia le stesse funzionalità.
Con il refactoring, l'applicazione viene di fatto smontata e ricostruita in una nuova architettura cloud native. Si può anche utilizzare un nuovo linguaggio di programmazione. Il grado di modifica del codice - e il testing che sarà di conseguenza necessario - saranno significativi.
Per alcune applicazioni può avere senso andare anche oltre e prendere in considerazione la scomposizione del servizio, processo per cui un'applicazione viene scomposta in una serie di componenti o microservizi riutilizzabili, che vengono esposti tramite API e utilizzati con un layer di orchestrazione come Kubernetes. Oppure si può scegliere per la propria applicazione un'architettura serverless, in cui si esegue il codice nel cloud senza gestire alcuna infrastruttura.
Il digital decoupling è una tecnica avanzata per modernizzare le grandi applicazioni legacy, come il software mainframe.
Le applicazioni meno recenti possono essere difficili da ricostruire nel cloud, soprattutto quando si tratta di replicare la logica e i dati aziendali integrati. Con il digital decoupling è possibile creare un nuovo sistema che si affianca al vecchio come sviluppo cloud native greenfield. Sincronizzando i dati del nuovo e del vecchio sistema quasi in tempo reale, si possono eseguire entrambi in parallelo. Ciò significa che si può modernizzare l'applicazione un pezzo alla volta, utilizzando architetture cloud native, tecniche moderne come DevSecOps e alti livelli di automazione.
È come se accanto ad una vecchia casa ne costruissi una nuova. È possibile vivere in entrambe, mentre a poco a poco viene colleagata ogni stanza e trasferiti i mobili. Alla fine sarà possibile vivere solo nella nuova casa, senza aver dovuto rinnovare la vecchia.
Evitare le insidie
La modernizzazione è la chiave per ridurre il debito tecnico e aumentare la velocità e l'agilità organizzativa nel cloud. Ma la modernizzazione full-scale non andrà bene per ogni applicazione, ogni circostanza e ogni azienda. A livello aziendale potrebbero esserci buone ragioni per concentrarsi inizialmente solo sul rehosting come mezzo per accedere rapidamente al cloud, ma anche se si decide di posticipare la modernizzazione, essa deve essere all'ordine del giorno per il futuro.
In conclusione, se si vuole trarre pienamente vantaggio dal valore del cloud, bisogna puntare ad applicazioni, infrastrutture e dati cloud native. Il modo per arrivarci è un programma di modernizzazione ben ponderato.