Il testing basato su cloud può essere la risposta ai costi sempre più alti di verifica e gestione delle prestazioni delle applicazioni sotto i picchi di carico, permettendo di pagare in base al consumo

Il testing basato su cloud può essere la risposta ai costi sempre più alti di verifica e gestione delle prestazioni delle applicazioni sotto i picchi di carico, permettendo di pagare in base al consumo di Valentino Magri (*) Ogni giorno le aziende interagiscono con migliaia (o anche milioni) di clienti, partner, dipendenti. Si parla di interazioni che spesso non prevedono alcun tipo di contatto fisico: nella realtà quotidiana, la principale relazione tra persona e azienda avviene attraverso le applicazioni. Pertanto, è fondamentale che i sistemi funzionino secondo le aspettative e siano accessibili in base alle più diverse esigenze. Di conseguenza, tali applicazioni sono innegabilmente sottoposte a uno stress continuo: sono sempre di più i clienti che accedono ai sistemi, specialmente in precisi momenti della giornata. Per esempio: è normale che le applicazioni bancarie siano sottoposte a picchi di domanda all’inizio della giornata, quando i clienti vanno a controllare il loro saldo. Oppure, simili sovraccarichi si registrano in alcuni particolari periodi dell’anno, come accade solitamente per i retailer e per gli agenti di viaggio durante le vacanze.

Il maggiore stress al quale le applicazioni sono sottoposte non è dovuto solo al volume di utenti, ma anche all’aumento della loro complessità. Le attuali applicazioni Web 2.0 sono sottoposte a un grande impiego di risorse, acuendo ulteriormente gli effetti derivanti da un maggior numero di richieste. Quando le applicazioni sono sottoposte a questo tipo di stress spesso generano errori, se non vengono testate opportunamente. Sovente picchi improvvisi o utilizzi prolungati spingono l’applicazione a comportarsi in modo inaspettato, con blocchi o rallentamenti, o addirittura possono impedire ai clienti l’accesso, scontentandoli e danneggiando l’azienda. Ogni minuto in cui l’applicazione risulta inaccessibile si traduce in una perdita potenziale di milioni di dollari.

Il testing per i picchi di carico colma il gap

I team responsabili dello sviluppo e della qualità del software già da tempo si sono posti il problema, cercando di elaborare una serie di strumenti e metodologie fondamentali per testare le prestazioni delle applicazioni nei momenti di massimo picco. Solitamente, tale strategia prevede l’implementazione di risorse di computing gestite internamente che simulano un ampio numero di utenti. Gli “utenti virtuali” replicano il comportamento di quelli reali, consentendo ai manager di individuare con rapidità punti critici e errori. Questi approcci hanno garantito alle applicazioni di soddisfare la domanda del mondo reale. In effetti, sono molto più efficaci ora e offrono ai manager responsabili del testing i migliori strumenti per individuare e correggere gli errori prima dell’utilizzo da parte degli utenti. Tuttavia, si tratta di un modello in cui non poche aziende hanno riscontrato dei limiti. È necessario assicurarsi che le applicazioni siano “pronte a tutto” e quindi in grado di resistere a un utilizzo massiccio, anche globale. Questo richiede la simulazione di carichi consistenti, ma spesso l’infrastruttura a disposizione è insufficiente. Il testing delle applicazioni potrebbe essere effettuato a un livello inferiore, ovvero potrebbe essere testata una quantità minore dei picchi di domanda, con il rischio che le applicazioni falliscano in una situazione reale. Oppure, il testing potrebbe essere ritardato fino a quando non vengono raccolte le necessarie risorse di computing. E ciò a sua volta comporta che i requisiti di business non vengano distribuiti, compromettendo l’agilità dell’azienda. Inoltre, l’infrastruttura di computing potrebbe essere insufficiente da un punto di vista geografico: nel caso di un’azienda che opera a livello internazionale, i clienti di tutto il mondo devono poter accedere ad applicazioni correttamente funzionanti. Se si sceglie di effettuare il testing delle applicazioni con utenti virtuali solo in un singolo luogo, si avrà un quadro parziale della situazione. La soluzione è semplice: basta disporre delle giuste infrastrutture nei luoghi più adatti, per assicurarsi che l’applicazione funzioni nel modo più corretto. Il modello tradizionale per gestire il testing di carico dei picchi di domanda richiede già in anticipo un significativo investimento. Le licenze hardware e software devono essere acquistate e configurate correttamente, e a tal proposito è necessaria una pianificazione anticipata e un budget adeguato, così da essere certi di disporre di tutte le risorse necessarie. È anche importante provvedere a priori alle licenze di load testing, nel caso in cui vengano condotti estesi test di carico periodici. La necessità di gestire ciclicamente il budget può ostacolare la flessibilità dell’azienda. Bisogna poter utilizzare le risorse giuste al momento giusto, e invece capita che occorrano mesi prima che l’hardware necessario sia disponibile. Inoltre, i costi di grandi data center operativi sono davvero considerevoli, se si pensa alle spese di gestione e ai costi di aggiornamento di software e hardware. Spesso è difficile giustificare tali spese, poiché non costituiscono l’attività principale dell’azienda. Così il crescere dei costi può diventare insostenibile, man mano che aumenta il volume degli utenti da testare.

Il cloud: una nuova strategia

Oggi, sempre più aziende considerano il cloud lo strumento che consente di migliorare le prestazioni It. Pensare di poter sfruttare l’efficacia dei più importanti data center internazionali per far fronte alle proprie esigenze di computing, nei momenti di maggior necessità: questo è quanto permette il cloud. Si tratta di un set virtuale di risorse di computing cui si può accedere in tutta sicurezza attraverso Internet. Le infrastrutture basate sul cloud sono già operative e offrono alle organizzazioni i seguenti vantaggi:

Una grande capacità di computing – I fornitori di infrastruttura per il cloud si basano sui più grandi data center del mondo; questo consente loro di disporre di un’enorme capacità di computing, a seconda delle esigenze.

Miglioramento sul fronte dei costi – Le aziende che offrono soluzioni in the cloud forniscono accesso a risorse di computing altamente efficienti, generando non solo economie di scala, ma anche infrastrutture adeguate. Di queste efficienze ne beneficia anche l’azienda, che dedicherà meno tempo e sforzi alla gestione dell’hardware e potrà focalizzarsi maggiormente sulla propria offerta, differenziandosi.

Politiche di prezzo flessibili – Per i servizi basati su cloud, i modelli di prezzo sono tanti, ma con un comune denominatore: il consumo. Ovvero: si spende in base a quello che si consuma e come si consuma, offrendo risparmi significativi sui costi iniziali.

Il meglio dei due mondi

Sicuramente il cloud consente alle organizzazioni It un grado significativo di efficienza. Ma può aiutare a testare le applicazioni in presenza di picchi di domanda? La risposta si ha prendendo in considerazione come vengono utilizzate le risorse in the cloud per generare utenti virtuali che simulino grandi carichi di stress. È possibile dirigere questi utenti virtuali basati su cloud su applicazioni accessibili via Internet, ospitate all’interno dell’azienda o nella stessa cloud. Fondamentalmente, nel test di carico basato su cloud viene replicato il modello di testing interno, ma con i vantaggi offerti dalla nuvola. I responsabili definiscono quanti utenti virtuali sono richiesti per un certo test, e programmano le necessarie risorse di elaborazione. Collocano geograficamente le istanze di richiesta, come da struttura reale. Quindi definiscono gli script che saranno utilizzati per simulare il comportamento dell’utente. A tali script si potrà poi accedere attraverso agenti di test basati su cloud ed elaborare quindi un programma di test prestazionale. Man mano che il testing procede, i manager potranno monitorarne i risultati. L’approccio più corretto consiste nel disporre di strumenti di report sulle operazioni interne all’applicazione o di tipo diagnostico. Le soluzioni che sono esclusivamente basate su cloud riscontrano però un difetto piuttosto evidente: non permettono ai manager di individuare i problemi di un’applicazione. Sono indispensabili informazioni più dettagliate per capire cosa si è verificato nell’applicazione, così da individuare quali transazioni, carichi di lavoro o codice stiano “consumando” alti livelli di risorse. Il migliore approccio possibile è quello che metterà a disposizione sia carichi basati su cloud sia monitoraggio e diagnostica onsite. (*) Regional Solutions Consulting Team Manager – Micro Focus IG&ME