Continuiamo il nostro percorso di supporto alla Province per la partecipazione al bando PNRR 1.2 - Abilitazione al Cloud, analizzando le modalità di migrazione dei dati e delle applicazioni.
Premesso che le Amministrazioni dovrebbero aver già svolto la classificazione dei dati e predisposto il Piano di migrazione come attività preliminare, dobbiamo tuttavia eseguire una verifica approfondita della "Cloud Readiness" delle applicazioni, ovvero la loro predisposizione tecnica, architetturale e funzionale a operare in un'infrastruttura cloud.
La Cloud Readiness analizza e valuta diversi fattori, come la modularità del codice, l'uso di componenti legacy, la scalabilità, la gestione delle dipendenze e il livello di automazione dei processi di deployment. Questa fase è fondamentale per garantire il raggiungimento dell'obiettivo finale: una migrazione completa, consistente e funzionante dell'applicazione (con i propri dati) nel nuovo ambiente.
I principali elementi da analizzare per poter identificare quali applicazioni migrare e con quale modalità, sono i seguenti:
Vediamo brevemente quale sono i punti principali per ogni elemento.
Architettura applicativa ed infrastrutturale: le architetture possono essere di due tipologie principali: monolite o microservizi.
Un'architettura monolitica è un modello di sviluppo software tradizionale che utilizza un'unica base di codice per eseguire più funzioni aziendali. Tutti i componenti software di un sistema monolitico sono interdipendenti per via dei meccanismi di scambio di dati all'interno del sistema.
Un'architettura a microservizi suddivide un'applicazione in una serie di servizi distribuibili in modo indipendente che comunicano tramite API. In questo modo, ogni singolo servizio può essere distribuito e ridimensionato in maniera indipendente. Questo approccio consente di distribuire in modo rapido e frequente le applicazioni grandi e complesse.
Le applicazioni monolitiche sono generalmente più difficili da migrare in termini di complessità e di rischio di errore, a differenza delle applicazioni a microservizi.
Tecnologie e dipendenze: nella valutazione è necessario tener conto delle dipendenze dell'applicazione (e dei dati) da sistemi legacy (mainframe, database on-premise), la compatibilità con i sistemi operativi (ad esempio, alcune librerie potrebbero non essere supportate in ambienti containerizzati come Docker) e dalle licenze software (alcune licenze non sono valide in ambienti cloud multi-tenant).
Sicurezza e compliance: è necessario valutare come i requisiti non funzionali relativi alla sicurezza ed alla compliance dei dati e delle applicazioni possano essere correttamente implementati nel cloud (ad esempio gestione profili ed utenze, log management, regole di business continuity, privacy by default) con le relative audit trail (la capacità di tracciare tutti gli accessi e le modifiche). A questo fine si invita a leggere quanto predisposto dal EDPB - European Data Protection Board nel documento "Coordinated Enforcement Action, use of cloud-based services by the public sector"
Prestazioni e scalabilità: è necessario analizzare come l’applicazione risponde a carichi variabili e, nel caso in cui l'applicazione dimostri scarsa scalabilità o prestazioni basse per utenti concorrenti, valutare la possibilità di una reingegnerizzazione, per non disperdere il principale beneficio del passaggio al cloud.
E' fondamentale effettuare un'analisi per verificare la compatibilità dell'applicazione nel nuovo ambiente cloud, in particolare su tre livelli:
- Compatibilità funzionale: l'applicazione deve garantire le stesse funzionalità dopo la migrazione;
- Compatibilità tecnologica: il linguaggio, i framework e le dipendenze devono essere supportate nella piattaforma cloud di destinazione;
- Compatibilità operativa: le modalità di gestione, aggiornamento e monitoraggio devono essere trasferibili o adattabili al cloud.
Svolgere questo tipo di attività non è semplice e potrebbe essere utile usufruire delle attività di fornitori specializzati. Consip mette a disposizione l'Accordo Quadro Cloud Enabling, oppure far svolgere al fornitore dei servizi Cloud le attività di assessment. Queste attività sono essenziali per la corretta migrazione al cloud, stante anche le tempistiche stabilite dal bando. Ricordiamo che il Bando finanzia anche questa tipologia di attività e servizi, come indicato all'art. 8, punto 4 del bando.
Come previsto dall'Allegato 2 del Bando, sono state definite due modalità per la migrazione dei dati e delle applicazioni:
"modalità A - trasferimento in sicurezza dell’infrastruttura IT”: migrazione verso il cloud effettuata secondo la strategia di migrazione denominata Lift&Shift (anche detta Rehost), ovvero la migrazione dell’intero servizio dell’amministrazione, comprensivo di applicazioni e dati su un hosting cloud senza apportare modifiche agli applicativi, ovvero replicando il servizio esistente in un ambiente cloud;
“modalità B - aggiornamento in sicurezza di applicazioni in cloud”: migrazione verso il cloud effettuata secondo le seguenti strategie:
Ogni modalità di migrazione ha un importo unitario diverso. Il bando prevede che la modalità sia indentificata in sede di domanda.