Quando si parla di sviluppo applicativo concepito alla maniera tradizionale, si tocca spesso un punto dolente per gli sviluppatori: prima di sviluppare un’applicazione è infatti necessario preparare il server e l’ambiente di sviluppo su cui si lavorerà.
Ciò significa, tipicamente, che prima di cominciare a programmare occorre occuparsi di molte altre operazioni, come la configurazione del sistema operativo e dei database; l’allocazione delle risorse di storage; l’orchestrazione dei container, l’impostazione del networking e quant’altro.
Dello stesso servizio fa parte anche il seguente articolo:
- Google, il suo universo cloud e il machine learning
“Alla fine, a nessuno piace perdere tempo in tutte queste operazioni, magari ripetutamente per preparare diverse macchine”, spiega David Cueva, Google Cloud Solutions Architect, presentando in una sessione specifica al recente Google Cloud Summit di Milano le tecnologie che il colosso di Mountain View è in grado di offrire agli sviluppatori, per liberarli da tutte questi interventi sull’hardware.
Who's Who
David Cueva
Il tema del seminario è infatti ‘Building Serverless Applications’, dove ‘serverless’, naturalmente, non significa letteralmente ‘senza server’: vuol dire piuttosto che oggi si ha la possibilità di adottare un paradigma informatico molto evoluto ossia un’architettura serverless, grazie alla quale non ci si deve più preoccupare della complessità associata alla gestione dei server. Ciò perché è sufficiente fornire codice e dati, dopodiché è il cloud provider stesso, in questo caso Google, a eseguire il provisioning delle risorse in funzione delle specifiche necessità.
Tra i vantaggi, la possibilità di eliminare tutte le attività ripetitive associate all’amministrazione dei server, che sono anche quelle in cui si commettono più errori; inoltre il provisioning dinamico consente di pagare solo per le risorse effettivamente utilizzate.
Tanti ‘mattoni’ serverless
Allo stato attuale, la piattaforma serverless di Google Cloud comprende numerosi prodotti: il fulcro è App Engine, il motore che permette di astrarre tutta l’infrastruttura e di concentrarsi solo sul codice per creare applicazioni web e mobili; oggi poi gli sviluppatori possono contare anche su Cloud Functions, per avviare il codice in automatico in risposta a un evento, ad esempio proveniente dall’infrastruttura IoT. Ma, sottolinea Cueva, serverless non è un termine da immaginare riferito alla sola componente di elaborazione (compute), perché la piattaforma di Google Cloud oggi comprende anche molti altri prodotti: Cloud Storage, Cloud Datastore, Cloud Dataflow, BigQuery, Cloud PubSub, Cloud Machine Learning.
In termini di casi utente concreti, l’adozione di App Engine come piattaforma di sviluppo applicativo, mostra Cueva, ha ad esempio abilitato Khan Academy – organizzazione no-profit con la missione, attraverso il proprio portale online, di fornire un’istruzione gratuita di livello internazionale per chiunque e ovunque – a focalizzare il 99% del proprio tempo sul funzionamento dell’applicazione.
L’uso di App Engine ha invece permesso al motore di ricerca per offerte di lavoro JobRapido, che nella pipeline di sviluppo doveva affrontare la sfida di superare best practice di lavoro non chiare e un’architettura IT mista, di fare un salto di paradigma passando al modello serverless. Quest’ultimo ha consentito agli sviluppatori di aumentare la scalabilità dell’applicazione online senza problemi, oltre che di focalizzarsi sulle attività di programmazione core, eliminando la necessità di tutte le classiche operazioni di configurazione dell’hardware.