Dopo averne paralato qui, e dopo aver approfondito lo studio di Google App Engine voglio condividere con voi le mie esperienze.
GAE è stato studiato come il metodo da seguire per creare applicazioni web (HTTP- driven) da ospitare sui web server di Google. A differenza di EC2, e GoGrid, GAE scende nel campo delle piattaforme cloud fornendo un framework di tecnologie rigide, con le quali creare applicazioni senza preoccuparsi della loro architettura e dei picchi di traffico e carico. Il software è realmente open source, infatti nelle pagine dedicate alla cloud di Google si trova tutto, ivi compresi i listati dei sorgenti (Python). La prima caratteristica della rete che si riscontra è la mancata scalabilità hardware della rete stessa. Per ogni account, infatti, il Google App Engine associa solo una CPU (intel con clock pari a 1.2 GHz con architettura X86 32-bit). Nonostante questa grossa limitazione che rende la rete abbastanza rigida, le sue caratteristiche sono tutte monitorate, come: il carico della CPU, la banda trasmissiva impiegata, le risorse realmente impiegate per ogni singola applicazione. Un dettagliato pannello di controllo, infatti, riporta un lungo elenco di voci che indicano i consumi effettivi (in continuo aggiornamento).
Un’ulteriore caratteristica che discosta GAE dalle comuni reti cloud è la completa mancanza di virtualizzazione di sistemi operativi di ogni tipo; esso, infatti, permette la sola esecuzione di codice Python, eventualmente associato ad un framework proprietario o ad una versione alleggerita di Django. Per usufruire della rete GAE e, quindi, iniziare a sviluppare le applicazioni, è necessario scaricare l’ambiente di sviluppo, che ricreerà le stesse condizioni tecniche di GAE sulla propria macchina locale; l’SDK contiene, infatti, un web server, un database, le strutture per recuperare indirizzi HTTP(s), quelle per l’invio di email e per la manipolazione d’immagini.
Per poter controllare il consumo effettivo di risorse, GAE mette a disposizione tutta una serie di servizi che le applicazioni possono sfruttare:
Il Datastore: database un po’ particolare denominato BigTable, formato da una piattaforma distribuita operante sul file system proprietario, GFS.
Google Accounts: è una API che permette di avere automaticamente un sistema di login per le applicazioni, basato sugli accounts Google
URL Fetch: le applicazioni possono accedere all’esterno, recuperando il contenuto di URLs remoti sfruttando API basate sulla stessa infrastruttura che Google usa per altri suoi prodotti
Mail: usata per inviare email con o senza allegati anche verso l’”admins” delle applicazioni.
Memcache: è uno storage di tipo “in-memory key-value”. Permette di inserire in cache strutture, valori, risultati di query complesse e rendere, quindi, il recupero degli stessi più veloce.
Image Manipulation: permette di ridimensionare, ruotare ed effettuare operazioni basilari su immagini in formato JPEG e PNG.
Sandbox: è un ambiente sicuro, affidabile, indipendente dall’hardware, dal sistema operativo e dalla ubicazione fisica del sistema di servizio di web in cui vengono conservate le richieste di rete dei vari utenti. Questo metodo garantisce accessi sicuri, contemporanei e multipli alla rete GAE
Ogni operazione (richiesta) sottoposta all’GAE, sia in entrata che in uscita, consuma un certo livello di risorse addizionali che vengono addebitate sul proprio account.
L’idea fondo è all’incirca la stessa dei cellulari prepagati. Esistono due tipi di “abbonamento” o profilo quello “Free” (o gratis) e quello “Billing” (o a pagamento). Il profilo gratis è associato per default ad ogni account.
Se le risorse consumate dall’utente sono inferiori a quelle previste per il profilo free l’utente non paga nulla, altrimenti, se supera il limite, va in “burst” e cambia automaticamente profilo e passa a quello billing. Chiaramente esiste un metodo per controllare la tariffazione delle risorse addizionali ed è accessibile anche all’utente: Google Checkout.
Conclusioni
Un sistema rigido come la Rete GAE comporta anche diversi limiti. Non si tratta, infatti, di un prodotto completamente nuovo: la piattaforma, infatti, è la stessa alla base di molti attuali servizi di casa Google, come Google Earth, Google Sites, o Google Finance e al suo interno integra una serie di applicazioni e funzionalità che Google utilizza già da tempo in tutto il mondo.
Google ha comunque espresso la volontà di migliorare le potenzialità del proprio servizio cloud. Attualmente Google è in continua ricerca di soci validi per il progetto cloud, aziende del settore interessate (si è appena associata ad Salesforce), o singoli utenti e/o sviluppatori disposti a testare ed eventualmente migliorare i servizi forniti dalla rete. Il sistema GAE è ancora in fase di studio ed è offerto a tutti nella versione previous release che permette ai team tecnici un continuo testing real-time del prodotto e quindi l’individuazione delle carenze dell’architettura stessa.