Casi d'uso del cloud

Completato

Con la rapida evoluzione delle tecnologie cloud, ogni giorno emergono nuovi casi d'uso. In questa sezione vengono illustrati alcuni dei casi d'uso più comuni e più interessanti per il cloud e vengono presentati alcuni esempi reali.

Applicazioni Web e per dispositivi mobili

Un elemento importante per l'evoluzione del cloud computing è l'hosting Web. In genere i siti Web e le applicazioni Web sono ospitati in un server con una connessione Internet dedicata. I servizi di hosting Web meno recenti offrivano server dedicati ai clienti o assegnavano a più clienti una frazione di un sistema UNIX più grande. Ora, con l'avvento del cloud computing, le applicazioni Web e per dispositivi mobili si possono creare sulla base di servizi IaaS, PaaS e anche SaaS esistenti.

  • Basato su SaaS: usando il modello SaaS, le organizzazioni possono distribuire applicazioni di dimensioni uno-size-all sul Web. Esempi comuni sono posta elettronica Web, i siti di social networking e siti Web di utilità come agende elettroniche personali e calendari.

  • Basato su PaaS: gli sviluppatori di applicazioni possono usare una gamma di piattaforme e strumenti online per creare applicazioni PaaS e per dispositivi mobili. Alcune piattaforme, ad esempio Google App Engine, Parse e AppScale, sono particolarmente diffuse per la compilazione delle applicazioni Web e per dispositivi mobili.

  • Basato su IaaS: le applicazioni che richiedono ancora più personalizzazione e flessibilità possono adottare il modello IaaS noleggiando macchine virtuali da provider come EC2 e Rackspace e distribuiscono uno stack di software completamente personalizzato per eseguire l'applicazione Web.

Si considerino gli scenari seguenti:

  • Animoto, un autore di presentazioni video online, ha deciso di distribuire un'applicazione Facebook. Il traffico verso il servizio è aumentato e Animoto ha dovuto passare da 50 server a 3.500 server in 3 giorni. Una tale elasticità della scalabilità è possibile grazie al cloud computing.

  • I punti vendita al dettaglio online che usano il cloud computing, ad esempio Amazon e Target.com, hanno potuto ridimensionare l'infrastruttura per i picchi di attività, ad esempio il giorno dopo una festività importante. Salesforce.com ospita clienti il cui numero di utenti va da 2 a oltre 20.000 e tutti usano la stessa piattaforma Web.

Domino's Pizza si affida a una combinazione di servizi offerti da AWS e da Azure per potenziare le attività aziendali. Ad esempio, usa Servizio app di Azure e Azure Cosmos DB, entrambi servizi PaaS, per la ricezione degli ordini e il monitoraggio delle consegne online, con la possibilità di ridimensionare il servizio in base alla domanda. Domino's usa anche Microsoft Dynamics ERP, basato su SaaS, per soddisfare le esigenze di pianificazione delle risorse aziendali 1.

Analisi dei Big Data

Molte organizzazioni devono gestire grandi quantità di dati. Questi dati possono provenire da diverse aree, ad esempio sensori, esperimenti, dati transazionali e attività di pagine Web. L'elaborazione dei Big Data richiede in genere numerose risorse di calcolo e di archiviazione, ma, a seconda delle esigenze dell'organizzazione, può essere periodica o stagionale. Ad esempio, Amazon può avere impostato processi di business intelligence e analisi per la fine della giornata, operazione che può richiedere alcune ore di tempo da un centinaio di server. In questi scenari il cloud computing ha senso perché queste risorse possono essere acquisite su richiesta. Molte aziende hanno anche pipeline di analisi completamente automatizzate che raccolgono, analizzano e archiviano automaticamente i dati, con risorse di cui viene effettuato il provisioning su richiesta. Ecco alcuni scenari di esempio per i Big Data:

  • Union Pacific Railroad monta termometri a infrarossi, microfoni e scanner a ultrasuoni lungo la ferrovia. Questi sensori analizzano ogni treno mentre passano e inviano le letture ai data center ferroviari, in cui il software di corrispondenza dei modelli identifica le apparecchiature a rischio di errori.

  • I rivenditori tradizionali, ad esempio Walmart, stanno seguendo i passi dei rivenditori online, ad esempio Amazon, analizzando le abitudini di spesa dei consumatori per offrire campagne di marketing personalizzate e offerte ai singoli clienti.

  • Alcune aziende, ad esempio Time Warner e Comcast, usano i Big Data per tenere traccia delle abitudini di consumo dei media da parte degli abbonati e offrire informazioni a valore aggiunto a inserzionisti e clienti. Il settore dei videogiochi tiene traccia delle abitudini di gioco di milioni di proprietari di console. Alcune aziende, ad esempio Riot Games, setacciano 500 GB di dati strutturati e più di 4 TB di log operativi ogni giorno.

Il cloud svolge un ruolo anche nell'analisi offrendo implementazioni gestite di strumenti diffusi, ad esempio Apache Hadoop e Apache Spark, che possono essere pronti all'uso in pochi minuti e successivamente eliminati quando non sono più necessari. L'acquisto, la distribuzione e la configurazione di un cluster Spark possono richiedere mesi e un livello significativo di esperienza. Con il cloud e con servizi come Azure Databricks e Databricks in AWS, i cluster di cui è stato effettuato il provisioning con la versione più recente di Spark possono essere distribuiti con pochi clic.

HPC (High Performance Computing) su richiesta

La scienza moderna è impossibile senza l'elaborazione ad alte prestazioni. Oltre alla sperimentazione fisica, la simulazione basata su computer si è molto diffusa nei campi che vanno da astrofisica e meccanica quantistica a oceanografia e biochimica. Questi carichi di lavoro sono complessi dal punto di vista del calcolo e vengono in genere eseguiti in cluster dedicati o in strutture di "supercomputing".

Gli scienziati sono sempre più interessati al cloud per soddisfare le esigenze delle risorse HPC. Per l'uso di HPC, AWS, Azure e GCP offrono macchine virtuali estremamente potenti con CPU più veloci e GPU all'avanguardia. Gli scienziati considerano positivamente la disponibilità di grandi quantità di potenza di calcolo, in particolare per progetti di piccole dimensioni o analisi complesse in cui il fattore tempo è essenziale, ad esempio le esecuzioni sperimentali che precedono la consegna finale dei documenti di ricerca. Di seguito sono riportati alcuni esempi di HPC nel cloud:

  • Un cluster EC2 a 3.809 istanze è stato configurato da Cycle computing, Inc. per una società farmaceutica per l'esecuzione di processi di modellazione molecolare. Il cluster ha un totale di 30.472 core, 26,7 TB di RAM e 2 PB di spazio di archiviazione su disco.

  • Aziende come Pfizer, Unilever, Spiral Genetics, Integrated Proteomics Applications e Bioproximity eseguono carichi di lavoro di bioinformatica e genomica su istanze di Amazon EC2.

  • NASA JPL usa istanze di Amazon EC2 ad alte prestazioni per elaborare le immagini dei satelliti ad alta risoluzione.

Nel 2015 il team di gestione dei rischi e i servizi finanziari di Willis Tower Watson hanno collaborato con Microsoft per distribuire un cluster HPC contenente 100.000 core e usarlo per calcolare il costo della fornitura di assicurazioni a ogni persona nel mondo2. L'intero processo, dal provisioning al download dei risultati, ha richiesto meno di 12 ore. In una CPU a core singolo, per l'esecuzione dello stesso processo sarebbero necessari quasi 20 anni.

Archiviazione online

Una delle risorse importanti disponibili con il cloud computing è l'archiviazione. Dalle soluzioni di archiviazione personale, ad esempio Dropbox, a sistemi di archiviazione Internet su larga scala, ad esempio Amazon S3, l'archiviazione online è un caso d'uso prevalente per il cloud computing. Le opzioni di archiviazione online includono:

  • Archiviazione di oggetti basata sul Web: servizi come Amazon S3 e Archiviazione di Azure consentono agli utenti di archiviare terabyte di dati come oggetti semplici a cui è possibile accedere tramite HTTP. Molti siti Web usano Amazon S3 e Archiviazione di Azure per archiviare il contenuto statico, ad esempio le immagini.

  • Backup e ripristino: servizi come CrashPlan e Carbonite forniscono il backup online dei dati dei clienti, un'ottima opzione come soluzione di backup sicura e fuori sede.

  • Streaming multimediale e distribuzione di contenuti: servizi come Amazon CloudFront e Rete CDN di Azure non solo archiviare grandi quantità di dati, ma supportano la distribuzione di contenuti. Le richieste di pull dei dati da CloudFront vengono indirizzate automaticamente al server più vicino, riducendo in tal modo la latenza per i contenuti sensibili al tempo, ad esempio i video.

  • Archiviazione personale: i servizi come Dropbox e Google Drive sono popolari tra gli utenti per archiviare i documenti personali online in qualsiasi momento, ovunque ci si trovi.

Sviluppo e test rapidi delle applicazioni

Uno dei principali vantaggi del cloud è la possibilità di distribuire e testare rapidamente le applicazioni. Un intero ambiente di elaborazione può essere distribuito in pochi minuti e quindi eliminato e scartato dopo il completamento del test. Per molte aziende, il valore è poter consentire agli sviluppatori di creare rapidamente ottimizzazioni e nuove funzionalità e di testarle senza rischi. Non è necessario ordinare e installare componenti hardware e server specializzati. In pochi minuti è possibile far girare un server virtuale in Amazon EC2, in Macchine virtuali di Microsoft Azure o in Google Compute Engine. Le applicazioni possono anche essere sottoposte a test di carico e stress. Si possono anche clonare i server esistenti per eseguire studi di scalabilità.

Il cloud favorisce anche gli investimenti in DevOps, che aumenta la capacità di un'organizzazione di distribuire il software in meno tempo ottenendo una qualità superiore. Le organizzazioni creano pipeline DevOps che includono server di compilazione virtuali abbinati a repository di codice sorgente basati sul cloud. Gli sviluppatori controllano le modifiche del codice nel repository, che attiva una compilazione automatica in un processo noto come integrazione continua. Un'altra funzionalità di DevOps è il recapito continuo, in cui le build aggiornate vengono testate e implementate automaticamente in un ambiente di gestione temporanea o di produzione. Prodotti come AWS CodePipeline, AWS CodeBuild e Azure DevOps abilitano questi tipi di scenario e stanno rapidamente diventando la colonna portante del processo di sviluppo del software per le aziende di grandi e piccole dimensioni.

Machine Learning e Intelligenza artificiale

Machine Learning (ML) e il subset di Machine Learning noto come intelligenza artificiale (IA) interessano tutti gli utenti quotidianamente. Le società di carte di credito usano modelli di ML/IA per verificare la presenza di illeciti in tempo reale, i rivenditori li usano per indurre i clienti ad acquistare ancora e per le previsioni della domanda, i linguisti li usano per tradurre gli interventi in tempo reale, i ristoranti li usano per migliorare la qualità dei piatti3 e i ricercatori li usano per analizzare il genoma umano e individuare indicatori del cancro4.

Il training dei modelli di Machine Learning e intelligenza artificiale richiede spesso grandi quantità di potenza di calcolo. Un esempio è la rete neurale convoluzionale, che eccelle nelle attività che coinvolgono la visione artificiale, ad esempio per determinare se una foto contiene un'immagine di un cane o di un gatto. Questi modelli vengono in genere sottoposti a training con batch di immagini di miliardi di pixel e contengono di frequente 100 o più livelli. Il training di una rete neurale di queste dimensioni non è pratico in un singolo computer, ma viene eseguito in modo relativamente efficiente in un cluster HPC con GPU per facilitare l'elaborazione parallela.

Una tendenza recente nel cloud computing è la disponibilità di ML e IA offerta dai provider come servizi SaaS. Con Servizio visione artificiale personalizzato di Azure, ad esempio, è possibile eseguire il training di una rete neurale per distinguere tra immagini di gatti e immagini di cani in pochi minuti e praticamente senza costi. Di seguito sono riportati alcuni esempi specifici di aziende che usano i servizi di Machine Learning e intelligenza artificiale basati sul cloud per migliorare i processi aziendali:

  • Expedia usa i servizi di Machine Learning basati sul motore di raccomandazioni di AWS per semplificare il processo di prenotazione degli alberghi5.

  • British Petroleum (BP) usa Azure Machine Learning per migliorare la capacità di prevedere i fattori di recupero, ovvero la percentuale di idrocarburi che possono essere estratti da un deposito sotterraneo, per i potenziali serbatoi di petrolio e gas6.

  • iGenius ha combinato le API Cloud AI per Machine Learning di Google con Google App Engine per creare il primo consulente di marketing digitale del mondo7.

L'esplosione della ricerca, degli investimenti, dei progressi e delle applicazioni degli ultimi anni per ML e IA è attribuibile principalmente al cloud computing, che rende disponibili le grandi quantità di potenza di calcolo necessarie per il training dei nuovi modelli e il miglioramento di quelli esistenti per i ricercatori di istituti di grandi e piccole dimensioni.

Riferimenti

  1. Microsoft (2017). Azure PaaS (Platform as a Service) è la salsiccia sulla pizza per Domino's. https://news.microsoft.com/en-au/features/azures-platform-service-pepperoni-pizza-dominos/

  2. Microsoft (2016). Che cosa si può fare con 100.000 core? - Big Compute su scala globale. https://azure.microsoft.com/blog/what-would-you-do-with-100000-cores-big-compute-at-global-scale/

  3. Tom's Guide (2019). Domino's Now Using AI and Cameras to Make 'Perfect' Pizzas (Domino's usa ora intelligenza artificiale e videocamere per fare pizze "perfette")

  4. Computational and Structural Biotechnology Journal (2015). Machine learning applications in cancer prognosis and prediction (Applicazioni di apprendimento automatico nella prognosi e nella previsione del cancro). https://www.sciencedirect.com/science/article/pii/S2001037014000464

  5. PhocusWire (2019). How Expedia is using deep learning to improve the hotel booking process (Uso di Deep Learning da parte di Expedia per migliorare il processo di prenotazione alberghiera). https://www.phocuswire.com/Expedia-Partner-Solutions-machine-learning

  6. Microsoft (2019). BP esplora Azure per intelligenza artificiale per migliorare la sicurezza, aumentare l'efficienza e promuovere il successo aziendale. https://customers.microsoft.com/story/bp-mining-oil-gas-azure-machine-learning

  7. Google. iGenius: Creating crystal, the first virtual digital marketing advisor (iGenius: creazione di crystal, il primo consulente di marketing digitale virtuale). https://cloud.google.com/customers/igenius/

Verificare le conoscenze

1.

Quale tra gli scenari seguenti NON si presta a una soluzione di cloud computing?