Spostare un’applicazione nel cloud può essere una vera e propria sfida. In ambienti on premises gli user non interagiscono direttamente con i server o con altri componenti sottostanti dell’infrastruttura IT in ambienti ma nel cloud è diverso. Lì tutti vedono e lavorano con un’applicazione, anche la stessa. È per questo che i test possono rappresentare un passaggio critico del processo di migrazione al cloud.
La formulazione di un framework può aiutare i team IT a costruire una strategia di test e appurare che un’applicazione funzioni in cloud come dovrebbe. All’interno di questo quadro generale ci sono aree su cui è necessario concentrarsi particolarmente, best practice da seguire e problemi da prevenire e risolvere.
Perché il test di migrazione al cloud è importante?
I test di migrazione verso il cloud aiutano garantiscono che un’app continui a funzionare come dovrebbe dopo il passaggio al cloud, oltre ad assicurare una migliore user experience. Per accertarsi di ciò è necessario valutare le prestazioni dell’app in entrambe le situazioni confrontando le loro performance on-premise e nella nuvola.
Le metriche dei test di migrazione al cloud aiutano a identificare e quantificare qualsiasi problema riscontrato, evitando così inutili e stancanti confronti basati solo su supposizioni. Tra le metriche chiave ci sono i tempi di avvio delle applicazioni e i tempi di risposta, le prestazioni durante i picchi di domanda e fuori orario, l’usabilità su varie piattaforme (desktop, connessioni remote e dispositivi mobile).
Può accadere anche che i cloud provider rilascino aggiornamenti causando alla app problemi di prestazioni, utilizzando le metriche si può verificare quando ciò accade. Se la risposta è sì, insieme al proprio fornitore si deve scoprire cosa è successo e quali interventi servono per correggere il problema. I test di migrazione al cloud rivelano anche dove i team IT possono intervenire su prestazioni o UX per legittimare il mantenimento dell’applicazione nel cloud.
Test di migrazione al cloud e test on premise: quali differenze per le app
La differenza principale nel testare applicazioni on premise e applicazioni che si spostano nel cloud è che, nel secondo caso, bisogna adattarsi alla scalabilità, alle integrazioni e ai possibili collegamenti aggiuntivi, compresi quelli difficili da identificare e comprendere. Il framework per un test nel cloud potrebbe essere diverso da quello per ambienti on premise, lo stesso vale per gli strumenti richiesti, per il test di carico o il pen testing.
Lo scopo finale dei test non dovrebbe cambiare passando dall’on-premise al cloud. Altrimenti significa che non si stanno testando alla pari e il confronto sarebbe difficile e insensato. È quindi meglio cercare di implementare gli stessi step e usare gli stessi strumenti per fornire un quadro chiaro anche dell’effort richiesto per migrare l’applicazione nel cloud. Ogni modifica al framework di test o alle metodologie può alterare i risultati.
Tipi di test per una migrazione al cloud
L’obiettivo dei test di migrazione al cloud non è quello di testare ogni possibile caratteristica e funzionalità. Per garantire che un’applicazione funzioni come previsto, una volta migrata, è necessaria una combinazione di test e metriche adatta. Ci sono alcuni tipi di test che sono particolarmente importanti per valutare una migrazione al cloud e devono essere quasi sempre eseguiti.
- Validazione operativa. Conferma che la struttura soddisfi i requisiti per il funzionamento dei componenti e dei servizi da ogni punto di vista. Qualsiasi mancanza in questa fase emerge rapidamente
- Prestazioni. Comprende diverse metriche per valutare come un’applicazione si comporta in situazioni reali: capacità di gestire i volumi di dati, carichi di portata, utilizzo di CPU e memoria
- Integrazione. L’applicazione probabilmente è collegata ad altre o ad altri servizi per condividere i dati, nel cloud e on premise (e possibilmente entrambi). L’IT deve verificare che queste connessioni funzionino ancora nel cloud, ciò non accade ad esempio se i servizi dipendenti sono in un cloud diverso oppure on premise
Altri aspetti da testare: Se l’applicazione ha un portale dedicato o richiede modifiche all’interfaccia per funzionare su mobile, va testata su piattaforme sia Android che Apple. Questo vale sia per un’applicazione migrata nel cloud, che per una che viene eseguita on premise. Testare ogni possibile tipo di dispositivo potrebbe non essere fattibile, però, quindi si può coinvolgere gli utenti per identificare la piattaforma con la migliore visualizzazione mobile.
Meglio anche testare l’app sia su reti cellulari che su reti wi-fi: le diverse velocità dei dati impattano sul suo comportamento. È consigliabile, però, evitare di usare la rete wi-fi della propria azienda, perché potrebbe accedere ai servizi in modo diverso rispetto a una esterna, causando anomalie di funzionamento dell’app o anche mancanza di funzionamento.
Da testare c’è anche la stampabilità. Ci sono ancora tante persone che stampano, per alcuni si tratta addirittura di una funzionalità critica. Non vanno quindi sottovalutati eventuali problemi tecnici che riguardano questo aspetto, perché potrebbero essere decisivi. La richiesta di una stampa da un’applicazione basata sul cloud a una stampante locale incontra problemi di sicurezza e di rete, cosa che non accade con un’app on premise.
Considerazioni sulla sicurezza per i test di migrazione al cloud
L’adeguata verifica della sicurezza dell’applicazione e le regolazioni dei privilegi da assegnare all’utente finale devono essere fatte prima di iniziare a spostare un’applicazione da on premise al cloud. L’ultima cosa che si desidera è introdurre ulteriori modifiche che possono confondere o complicare la comprensione del funzionamento di un’applicazione e delle sue interdipendenze.
Un test di migrazione al cloud dovrebbe includere una convalida della sicurezza che includa tre fattori chiave:
Chi ha accesso all’app? Si inizia con gli account e le funzionalità a cui gli utenti avrebbero accesso. Aggiungere altre variabili non aiuta né velocizza il test, quindi l’accesso degli utenti finali dovrebbe rispecchiare quello che avevano con l’app on premise, né più né meno.
Come è stato garantito il principio del minimo privilegio? Mentre i dati si spostano tra i diversi servizi nel cloud, quali passi garantiranno il minimo privilegio possibile? I cloud provider offrono servizi e report per supportare questo passaggio
Le modifiche alla sicurezza avranno un impatto sull’applicazione? Ripetere sempre il test dell’applicazione dopo aver apportato un cambiamento di sicurezza può servire, poiché potrebbero essere cambiate le prestazioni. La crittografia dei dati in movimento e a riposo, ad esempio, cambierà il tempo di risposta dell’applicazione o aggiungerà overhead ai cicli della CPU? Questo può essere un sottoinsieme del test generale, è necessario riverificare che l’applicazione funzioni ancora come impostazione e che le modifiche di sicurezza non l‘abbiano fatta andare offline.
Le 7 sfide dei test di cloud migration e best practice per affrontarle
Il test delle applicazioni è una sfida, ma non importa se non tutto scorre liscio: anche se si pianifica tutto alla perfezione potranno comunque emergere dei problemi. La buona notizia è che nella maggior parte dei casi sono risolvibili.
Sfida #1: Come dare priorità alle metriche di test delle applicazioni
L’UX e la sicurezza di un’applicazione sono importanti per la sua complessiva valutazione, ma l’essenziale è che funzioni come previsto. Un’applicazione senza funzionalità di base, anche se assolutamente sicura o fruibile per gli utenti, non va bene a nessuno.
Best practice: Bilanciare design e sicurezza con le funzionalità critiche. Dedicare tempo ed energie per affrontare tutti e tre gli aspetti — funzionalità, UX e sicurezza — all’inizio del processo di migrazione al cloud. Sono interconnessi e non devono essere considerati in fasi diverse.
Sfida #2: No alle scorciatoie pur di far funzionare l’applicazione
È fondamentale garantire che l’applicazione funzioni correttamente nel cloud, ma senza imboccare scorciatoie per raggiungere gli obiettivi in tempi più brevi. Il rischio? Per esempio ridurre o rimuovere totalmente i controlli di sicurezza per far funzionare un’applicazione in un nuovo ambiente e poi dimenticarsi di ripristinarli. Può far risparmiare tempo, inizialmente, ma successivamente crea complessità che rendono anche i test più difficili.
Best practice: Pianificare la strategia di sicurezza fin dall’inizio. Sorgono spesso problemi di autorizzazioni di sicurezza che possono ostacolare il funzionamento di un’app. È necessario però resistere alla tentazione di apportare modifiche su larga scala pur di far funzionare le cose subito. Meglio costruire nel tempo un piano di migrazione al cloud per affrontare questi problemi.
Sfida #3: L’IT da solo non può fare i test di migrazione cloud
Le migrazioni verso il cloud sono operazioni complesse che richiedono molte competenze per garantire che un’app, una volta spostata, funzioni su larga scala e in modo sicuro. L’IT ha un’importante responsabilità e può aiutare a guidare il passaggio ma non deve limitarsi all’operatività. Non può concentrarsi solo sul lato tecnico, senza badare allo sviluppo.
Best practice: Formare un team di test con skill diversificate. Serve un gruppo di lavoro interfunzionale per fornire supporto e identificare possibili problemi. Deve essere agile e includere vari esperti per garantire che tutti gli aspetti vengano esaminati. È però poi necessario trattare alcune tematiche solo all’interno delle riunioni, in modo da non sovraccaricare tutti con troppe informazioni. Alcuni potrebbero annoiarsi o evitare discorsi di tecnologia che non gli competono.
Sfida #4: Resistere agli aggiornamenti “facili” e allo scope creep
Implementare la crittografia per un’app che sta migrando al cloud può sembrare una idea buona e ingannevolmente semplice. Ogni cambiamento fatto in corsa, però, può avere un impatto su molti altri aspetti di funzionamento dell’app, aumentando sia le criticità tecniche che i costi. La crescita in complessità per via delle opzioni nei test di migrazione può rapidamente raggiungere livelli insostenibili.
Best practice: Testare e valutare le funzioni aggiuntive. Prima di tutto, meglio attenersi al piano originale per valutare il funzionamento di base dell’applicazione: la fase di test non è il momento adatto per espandere le funzioni. Se dovete aggiungere nuove caratteristiche o funzioni minori, va ottenuto il consenso di tutti e questi cambiamenti vanno poi testati e verificati per capire il loro impatto in modo più ampio.
Sfida #5: Bilanciare la cadenza dei test con le priorità concorrenti
L’ideale sarebbe eseguire test di sicurezza continui, almeno settimanalmente, per convalidare i dati e gestire i log degli errori. Il costo, il tempo e le mutevoli priorità dell’IT e del management possono però renderlo un piano impraticabile. Il cloud costa a seconda di quanto lo si usa, il personale richiede tempo e denaro e, dopo il rilascio di un’app, la maggior parte dei team operativi e di sviluppo passano ad altri progetti.
Best practice: Pianificare i principali aggiornamenti e insistere per realizzarne altri. L’IT trova sempre il modo di inserire ciò che è richiesto in ciò che è disponibile. Suddividere i test di migrazione al cloud in ciò che il management vuole, ha bisogno e si aspetta. Impostare un framework di test per i controlli giornalieri e settimanali sui principali cambiamenti dell’applicazione o della piattaforma di base. Poi premere per una maggiore regolarità di test se sono disponibili più risorse.
Sfida #6: Il test UX è limitato
Alcuni team IT si basano su un gruppo di utenti selezionati per i test on-premise o su alcuni esperti di uno specifico software. Quando si sposta l’applicazione nel cloud, è necessario avere una visione più completa dell’applicazione. Ciò significa raccogliere dati sulla UX complessiva da più punti di vista e non solo da quello tecnico.
Best practice: Ampliare i team di utenti dedicati ai test. Coordinare i test utente per un gruppo abbastanza ampio di tester con esperienze e ruoli diversi. Includere persone esperte in cloud e innovazione. La maggior parte degli utenti finali non conoscono o non si preoccupano dei meccanismi interni del cloud, ma vedono l’applicazione e hanno certe aspettative di performance e in alcuni casi li possono conoscere a fondo sorprendendoci.
Sfida #7: Le metriche di test trascurano i problemi di costo del cloud
In una migrazione on-premise solitamente si hanno tutti gli elementi legati all’applicazione. In una migrazione nel cloud emergono costi per ogni fase del processo, per ogni servizio e per i dati trasferiti in una cache o di nuovo on premise. Ci sono integrazioni e connessioni con altri servizi cloud da considerare e non tutti potrebbero risultare ovvi. Esistono anche nuovi strumenti di test basati sul cloud, ma quando si guardano i costi si può restare esterrefatti, trovandosi poi costretti a sistemare l’app o persino a rivalutare la migrazione al cloud.
Best practice: I test regolari rivelano anche l’andamento dei costi di un’app. La loro gestione non è una priorità durante i test di migrazione al cloud, ma può essere utile conoscere esattamente cosa fa un’app quando gira nel cloud. Test di migrazione al cloud frequenti possono aiutare un’organizzazione a farsi un’idea dei trasferimenti di dati, dei modelli di utilizzo e delle dipendenze chiave. Ciò significa non avere brutte sorprese quando arriva il conto.